Q16 — AWS SAA-C03 第17章

第 16/89 問 | ← 第17章

Q1316. ある企業は複数のソースからデータを受信し、そのデータを Amazon S3 のデータレイクに保存しています。同社はこのデータを変換して、データベースやデータウェアハウスなど、複数の下流データストアに取り込んでいます。ソリューションアーキテクトは、分析活動向けにデータを準備・ロードするための抽出・変換・ロード(ETL)パイプラインを設計したいと考えています。また、処理済みデータは、ダッシュボードおよび可視化を通じてステークホルダーが利用できる必要があります。これらの要件を満たす中で、開発工数が最も少ないソリューションはどれですか?

正解: B. AWS Glue を使用して ETL パイプラインを作成します。AWS Step Functions を使用してワークフローをオーケストレーションします。Amazon QuickSight を使用してダッシュボードおよび可視化を生成します。

解説

Amazon S3 からのデータ処理、下流ストアへのロード、およびダッシュボード・可視化の提供という要件を満たす中で、開発工数が最も少ない効率的なソリューションは、以下の選択肢 B です:「AWS Glue を使用して ETL パイプラインを作成し、AWS Step Functions でワークフローをオーケストレーションし、Amazon QuickSight でダッシュボードおよび可視化を生成する」。 ■ 選択肢 B が正しい理由: ・AWS Glue による ETL パイプライン(開発工数最小):AWS Glue は、完全マネージド型のサーバーレス ETL サービスであり、データ変換用の Python/Scala スクリプトを自動生成します。AWS Glue Data Catalog を通じてスキーマメタデータを自動検出でき、スケーリング、フォールトトレランス、モニタリングも最小限のコーディングで実現可能です。バッチおよびストリーミング ETL ジョブをサポートし、データレイクとの統合に最適です。 ・AWS Step Functions によるワークフローのオーケストレーション:サーバーレスのワークフロー管理サービスであり、Glue、Lambda、S3、DynamoDB などの複数 AWS サービスを状態マシンとして連携させることができます。カスタムスクリプト(選択肢 A/C の Lambda オーケストレーション)を書く必要がなく、ビジュアルデバッグやリトライ機構も備えています。 ・Amazon QuickSight によるダッシュボードおよび可視化:完全マネージド型の BI サービスで、S3、Redshift、RDS、Glue Data Catalog とシームレスに統合されます。インフラ構築不要で、インタラクティブなダッシュボード、機械学習によるインサイト、埋め込み分析を提供します。 ■ 他の選択肢が不適切な理由: A:Amazon EMR + カスタム Scala スクリプト + Lambda + OpenSearch Service — 高い開発工数(EMR 向け Scala、オーケストレーション用 Lambda の手動記述が必要)。OpenSearch はログ分析/検索用途に適しており、ビジネス向けダッシュボードには過剰かつ不適切です。EMR クラスターの運用負荷(コスト・複雑さ)も増加します。 C:Lambda を用いた ETL + Step Functions + QuickSight — Lambda は大規模 ETL に不向き(最大実行時間 15 分、メモリ制限あり)。Glue の自動生成スクリプトと比較して、手動コーディング量が多くなります。 D:EC2 上のカスタムスクリプト + AWS Glue オーケストレーション + Glue DataBrew によるダッシュボード — EC2 での ETL 実行は、サーバーレスな Glue と比べて運用負荷が高く非効率です。Glue DataBrew はデータ前処理ツールであり、ダッシュボード作成には対応しておらず、QuickSight が必要です。 ■ 選択肢 B の実装ステップ: 1. AWS Glue ETL ジョブの設定:Glue Crawler を使用して S3(CSV/JSON など)のメタデータを検出し、Data Catalog に登録。GUI または自動生成スクリプトで Glue ETL ジョブを作成し、データのクリーニング・集計などの変換処理を定義。処理結果を S3 や Redshift/Aurora などの下流データベースに出力。 2. AWS Step Functions によるオーケストレーション:Glue ETL ジョブの起動 → 完了待機(エラー処理・リトライ含む)→ 必要に応じて Lambda による後処理呼び出し、といったステートマシンを定義。AWS SDK 統合により Glue、S3 などと連携。 3. Amazon QuickSight によるダッシュボード構築:処理済みデータが格納された S3、または Redshift/RDS に QuickSight を接続し、折れ線グラフ・ピボットテーブルなどのインタラクティブな可視化を作成・公開。メール/SMS アラートや埋め込み URL でステークホルダーと共有。 ■ 主な考慮事項: ・コスト最適化:ETL ジョブには Glue のスポットインスタンスを活用。Step Functions では長時間実行ジョブに標準ワークフロー(Express より低コスト)を採用。 ・セキュリティ:S3 における静止時暗号化(SSE-S3/KMS)、通信時暗号化(SSL/TLS)を実施。Glue、Step Functions、QuickSight それぞれに最小権限の IAM ロールを適用。 ・スケーラビリティ:Glue はジョブ負荷に応じてコンピューティングリソースを自動スケール。Step Functions は数千もの同時実行をサポート。 ■ 結論: 選択肢 B は、AWS Glue、Step Functions、QuickSight という完全マネージドサービスを活用することで、開発工数を最小限に抑えながら、スケーラブルな ETL、信頼性の高いオーケストレーション、強力な可視化機能を実現します。他の選択肢は、不必要な複雑さ(例:OpenSearch をダッシュボード用途に使用)やミスマッチしたツール(例:EC2 を ETL に使用)を導入しており、推奨されません。