AWS認定資格 WEB問題集&徹底解説

データエンジニア-アソシエイト

正解 D問題
分野1:データの取り込みと変換 分野2:データストアの管理 タスクステートメント1.3:データパイプラインのオーケストレーション タスクステートメント2.2:データカタログシステムの理解
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
あるサブスクリプション型 EC 企業は、Amazon RDS for SQL Server 上のテーブルをクロールし、その結果を基に抽出・変換・ロード処理を行って Amazon S3 のデータレイクに格納するパイプラインを構築しようとしています。データエンジニアは、クローラーの実行とジョブの実行を1つの管理単位としてオーケストレーションできる、最もコスト効率の良い方法を検討しています。

この要件に最も適したサービスまたは機能はどれですか。
  • AWS Glue Studio でジョブをビジュアルに作成し、クローラーの実行後に手動でジョブを起動する
  • AWS Step Functions でステートマシンを作成し、クローラーとジョブの呼び出しを個別に組み込んでオーケストレーションする
  • Amazon Managed Workflows for Apache Airflow (MWAA) 環境を構築し、DAG でクローラーとジョブの実行順序を管理する
  • AWS Glue ワークフローを使用し、クローラーとジョブを1つのパイプラインとして定義してオーケストレーションする
解説 頻出度★★★★
この問題は、「クローラー × ETL ジョブ × 1 つの管理単位でオーケストレーション × 最もコスト効率が良い」の要件で、AWS Glue に標準で備わり追加料金なしで使えるワークフロー機能を選べるかがポイント

A. AWS Glue Studio でジョブをビジュアルに作成し、クローラーの実行後に手動でジョブを起動する

AWS Glue Studio はジョブをビジュアルに作成するためのオーサリング機能であり、実行順序を管理する仕組みではありません。
「クローラーの実行後に手動でジョブを起動する」という運用は、そもそもオーケストレーションになっておらず、担当者の手作業と実行漏れのリスクが残ります。
1 つの管理単位として自動実行したいという要件を満たせないため不適です。

B. AWS Step Functions でステートマシンを作成し、クローラーとジョブの呼び出しを個別に組み込んでオーケストレーションする

AWS Step Functions でも Glue のクローラーとジョブを順に呼び出すステートマシンは組めます。ただし本問のようにGlue のリソースだけで完結する単純な直列フローでは、Glue の外に別サービスを 1 つ増やすことになります。
ステートマシンの定義・IAM ロール・完了待ちのポーリングを自前で設計する必要があり、状態遷移に対する課金も別途発生します。
Lambda や EMR など Glue 以外のサービスを織り交ぜた複雑な分岐・リトライ制御が必要になったときに真価を発揮する選択肢で、この要件には過剰です。

C. Amazon Managed Workflows for Apache Airflow (MWAA) 環境を構築し、DAG でクローラーとジョブの実行順序を管理する

Amazon MWAA は Apache Airflow のマネージド環境で、DAG による高度なオーケストレーションが可能です。
しかし MWAA は環境(ワーカー・スケジューラー)が常時起動し、ジョブを実行していない時間帯も時間単位で課金されます。クローラーとジョブを 2 つ繋ぐためだけに導入するには明らかに割高です。
Airflow の運用知識やプラグイン管理も必要になり、「最もコスト効率が良い」という判断軸から最も遠い選択肢です。

正解

D. AWS Glue ワークフローを使用し、クローラーとジョブを1つのパイプラインとして定義してオーケストレーションする

正解です。AWS Glue ワークフローは、複数のクローラー・ジョブ・トリガーを 1 つのエンティティとしてまとめ、依存関係を定義して実行・監視できる Glue 標準の機能です。
「クローラーが完了したらジョブを起動する」という条件付きトリガーを定義すれば、本問の要件がそのまま表現でき、実行状況もワークフロー単位で可視化・再実行できます。
ワークフローやトリガー自体に追加料金はなく、実際に消費したクローラーとジョブの DPU 時間のみが課金対象となるため、他サービスを追加する構成よりコスト効率に優れます。

構成図

┌─ AWS Glue ワークフロー(1つの管理単位)───────────────┐
│ スケジュールトリガー → クローラー ──完了──▶ ETL ジョブ │
└──────────────────────────────────────────────────────┘
     ▲                                        │
Amazon RDS for SQL Server            Amazon S3(データレイク)
これだけ覚える(記憶フック)
Glue のクローラーとジョブだけを繋ぐなら Glue ワークフロー。追加サービスを持ち出した時点で割高。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
クローラーとジョブを 1 つの管理単位としてオーケストレーションしたい Glue ワークフローはクローラー・ジョブ・トリガーを 1 エンティティにまとめる専用機能
→選択肢(D)が正解
最もコスト効率が良いこと ワークフローは追加料金なし。MWAA は環境が常時課金、Step Functions は状態遷移課金が加わる
→選択肢(B・C)を消す
自動で順序制御したい(手作業を残さない) Glue Studio はジョブを作る画面であって実行順序を管理する仕組みではない
→選択肢(A)を消す
対象は Glue のリソースのみ(クローラーとジョブだけ) Glue 内で完結するなら外部のオーケストレーターは不要。Step Functions / MWAA は構成要素が増える
→選択肢(B・C)を消す
ひっかけポイント
  • Step Functions は「オーケストレーション=Step Functions」と反射的に選びがちだが、Glue だけで完結する処理では Glue ワークフローの方が安く簡単。分岐や他サービス連携が出てきて初めて優位になる
  • MWAA は DAG で何でも書ける万能さが魅力に見えるが、環境が起動しているだけで時間課金される。「最もコスト効率」という語が出たら真っ先に外す候補
  • 選択肢 A の Glue Studio はオーサリング(作成)機能であって実行制御の機能ではない。しかも「手動でジョブを起動する」と書かれており、要件のオーケストレーションを満たしていない
  • Glue ワークフローはワークフロー・トリガーそのものに課金されない。課金されるのはクローラーとジョブの DPU 時間だけ、という料金構造が判断の決め手
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「Glue ジョブに加えて Lambda・EMR・SageMaker など複数サービスを条件分岐付きで連携したい」 AWS Step Functions が正解軸に。Glue ワークフローは Glue リソースの制御に限られる。
「既存の Apache Airflow の DAG 資産をそのまま活用したい/複雑な依存関係を持つ多数のパイプラインを一元管理したい」 Amazon MWAA が正解軸に。運用スキルと環境コストを許容できるかが判断点。
S3 に新しいファイルが置かれたらパイプラインを起動したい」 EventBridge によるイベント駆動(Glue ワークフローの EventBridge トリガー)が正解軸に。
「クローラーを使わず、スキーマを都度推論せずに取り込みたい」 Data Catalog テーブルを手動定義するか、パーティション射影などの選択が論点に変わる。
関連サービスの解説 Amazon Managed Workflows for Apache Airflow (MWAA)
Amazon Simple Storage Service (Amazon S3)
AWS Glue
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 0%
No.18 解説
あるサブスクリプション型 EC 企業は、Amazon RDS for SQL Server 上のテーブルをクロールし、その結果を基に抽出・変換・ロード処理を行って Amazon S3 のデータレイクに格納するパイプラインを構築しようとしています。データエンジニアは、クローラーの実行とジョブの実行を1つの管理単位としてオーケストレーションできる、最もコスト効率の良い方法を検討しています。

この要件に最も適したサービスまたは機能はどれですか。
  • AWS Glue Studio でジョブをビジュアルに作成し、クローラーの実行後に手動でジョブを起動する
  • AWS Step Functions でステートマシンを作成し、クローラーとジョブの呼び出しを個別に組み込んでオーケストレーションする
  • Amazon Managed Workflows for Apache Airflow (MWAA) 環境を構築し、DAG でクローラーとジョブの実行順序を管理する
  • AWS Glue ワークフローを使用し、クローラーとジョブを1つのパイプラインとして定義してオーケストレーションする

(会員限定)当問題の評価をお願いします。改善に活用します。