ある企業が完全サーバーレスのデータ処理パイプラインを設計しています。オンプレミスのシステムから毎日 100GB のデータを S3 に転送し、データのクレンジング・変換処理を行って、最終的に Amazon Redshift にロードします。処理には複数のステップがあり、各ステップの成功/失敗を追跡し、失敗した場合は自動的に再試行する必要があります。インフラの管理を完全に排除したいと考えています。実現するために使用するべきサービスを2つ選択してください。
- A. Amazon EC2 Auto Scaling グループで処理サーバーを管理し、SQS キューからジョブを取得する
- B. AWS Data Pipeline でジョブスケジューリングを管理する
- C. AWS Step Functions でパイプラインの各ステップのワークフローを管理し、失敗時の自動再試行と状態管理を実装する
- D. AWS Glue ETL ジョブでデータのクレンジング・変換を実行する
- E. Amazon EMR でデータ処理クラスターを管理し、Spark ジョブを実行する
解答と解説を見る
正解: C, D
AWS Glue(D)はサーバーレスの ETL サービスで、インフラ管理なしでデータのクレンジング・変換ができます。Glue の Spark エンジンは大規模データ処理に対応しており、Redshift へのロードも Glue Connector で実現できます。Step Functions(C)はサーバーレスのワークフローオーケストレーターで、各ステップの成功/失敗の追跡、失敗時の自動再試行(Retry)、エラーハンドリング(Catch)を設定ファイルで定義できます。 E: Amazon EMR はサーバーレスではなく、クラスターの管理が必要です(EMR Serverless を使えば変わりますが、選択肢には EMR クラスターと記載されています)。 A: EC2 Auto Scaling は完全にインフラ管理を排除できないため、「インフラ管理を完全に排除」という要件に反します。 B: AWS Data Pipeline はレガシーサービスで、Step Functions に比べて機能が限定的です。複雑なワークフロー管理には Step Functions が適しています。
📚 関連サービスの解説: AWS Step Functions ・ AWS Glue