資格道場
記事法人
Amazon Web ServicesLevel 3

難易度は Level 1(やさしめ)〜Level 5(難関) の5段階です。

AWS DEA-C01のサンプル問題(本番形式・解説付き)

AWS DEA-C01(Amazon Web Services・AWS Certified Data Engineer – Associate(DEA-C01))の出題形式を、実際の問題で確かめられます。ここに掲載する5問は、無料の会員登録で解ける模試 第1回(65問)の冒頭から抜粋したオリジナル問題です。当サイトは全650問を本番CBT準拠の形式で収録しており、この5問はそのごく一部にあたります。

設問1

小売企業のデータ基盤チームが、provisioned mode の Amazon Kinesis Data Streams に注文イベントを書き込んでいる。1シャードあたりの書き込みの上限として正しいものはどれか。

  • 最大 1 MB/秒 または 1,000 レコード/秒(正解)
  • 最大 2 MB/秒 または 2,000 レコード/秒
  • 最大 4 MB/秒 または 4,000 レコード/秒
  • 最大 10 MB/秒 または 10,000 レコード/秒

解説

provisioned mode の Kinesis Data Streams は、1シャードあたり書き込みが最大 1 MB/秒 または 1,000 レコード/秒です。2 MB/秒 または 2,000 レコード/秒は同じシャードの読み取り側の上限であり、書き込みの値ではありません。4 MB/秒 は on-demand mode の新規ストリームが既定で始まる書き込みスループットで、シャード単位の上限ではありません。10 MB と 10,000 レコードは GetRecords の1回の呼び出しで取得できる上限であり、毎秒の書き込み上限ではありません。

設問2

製造業のデータ基盤チームが、オンプレミスの Apache Kafka で動くプロデューサとコンシューマのコードをできるだけ書き換えずに AWS へ移したいと考えている。最も適した構成はどれか。

  • Amazon Kinesis Data Streams を使い、PutRecord と GetRecords を呼ぶ形にコードを書き換える
  • Amazon MSK を使い、既存の Kafka のプロデューサとコンシューマをそのまま移す(正解)
  • Amazon DynamoDB Streams を使い、テーブル項目の変更レコードを読み取る形にコードを書き換える
  • Amazon Data Firehose を使い、配信先へレコードを直接配送する形に作り直す

解説

Amazon MSK は Apache Kafka をマネージドで動かすサービスで、Kafka の API がそのまま使えるため、既存のプロデューサとコンシューマを移せます。Kinesis Data Streams は AWS 独自の API を持つため、Kafka のコード資産は書き換えが要ります。DynamoDB Streams が流すのはテーブル項目の変更であり、Kafka のトピックのメッセージを受ける仕組みではありません。Amazon Data Firehose は配信のためのサービスで、Kafka 互換のコンシューマ API を提供するものではありません。

設問3

金融サービス企業のデータ基盤チームが、DynamoDB テーブルの変更を6つの分析アプリケーションで読み、変更履歴を90日間保持して後追い分析に使いたいと考えている。適した仕組みはどれか。

  • DynamoDB Streams を有効にし、24時間の保持期間で変更を流す
  • DynamoDB Streams を有効にし、DynamoDB Streams Kinesis adapter を介して変更を流す
  • Kinesis Data Streams for DynamoDB を有効にし、最大1年の保持期間で変更を流す(正解)
  • AWS DMS の CDC only タスクを作り、ソースDBのログ由来の変更だけを流し続ける

解説

Kinesis Data Streams for DynamoDB は保持期間が最大1年で、1シャードあたりのコンシューマも最大5、enhanced fan-out なら最大20まで持てるため、90日保持と6つの読み手という要件を満たします。DynamoDB Streams は保持期間が24時間、コンシューマは1シャードあたり最大2なので、どちらの要件も満たしません。DynamoDB Streams Kinesis adapter を挟んでも、保持期間とコンシューマ数の制約は DynamoDB Streams のままです。AWS DMS の CDC はソースDBのトランザクションログを読む仕組みで、DynamoDB テーブルの変更履歴を保持する用途ではありません。

設問4

保険会社のデータ基盤チームが、Oracle の変更をミリ秒単位で分析基盤へ反映する要件を検討している。AWS DMS の CDC の説明として正しいものはどれか。

  • レイテンシに関する SLA が定められており、その範囲での反映が約束されている
  • レイテンシはターゲットの取り込み能力だけで決まり、ソース側の負荷やネットワークには左右されない
  • CDC はソースDBのネイティブAPIを使わないため、ログの保持設定には左右されない
  • リアルタイムのレプリケーションは保証されず、レイテンシが数分以上に伸びる場合もある(正解)

解説

AWS DMS の CDC はリアルタイムのレプリケーションを保証せず、レイテンシは数分以上に伸びることがあります。CDC レイテンシに関する SLA はないため、範囲が約束されているという説明は誤りです。レイテンシはソースの負荷・ネットワーク・レプリケーションインスタンスのリソース・ターゲットの取り込み能力で変わるので、ターゲット側だけで決まるという説明も誤りです。CDC はソースDBのネイティブAPIでトランザクションログを読むため、ログの保持設定の影響を受けます。

設問5

メディア企業の分析チームが、Amazon MSK に届くイベントを Amazon S3 を経由せずに秒単位で Amazon Redshift の分析対象に載せたいと考えている。適した方法はどれか。

  • Amazon Redshift のストリーミング取り込みで、マテリアライズドビューとして取り込む(正解)
  • Amazon Data Firehose で Amazon S3 に配信し、そのあとで COPY を実行してテーブルに取り込む
  • AWS Glue の Python shell job で1件ずつ読み、INSERT 文でテーブルに取り込む
  • AWS DMS の full load タスクを毎分実行し、テーブル全体を作り直してから取り込む

解説

Amazon Redshift はストリーミング取り込みで Kinesis Data Streams や Amazon MSK からマテリアライズドビューとして直接読み込めるため、Amazon S3 を経由せず秒単位で分析対象に載せられます。Firehose で S3 に落としてから COPY する形は S3 を経由する分だけ遅延が長くなります。Python shell job で1件ずつ INSERT する形は分散処理を必要としない小さなスクリプト向けで、秒単位の取り込みには合いません。AWS DMS の full load は既存データを一度だけコピーするタスク型で、ストリームの継続的な取り込みには使いません。

続きは、会員登録なしでそのまま50問解けます。採点と解説つきで、上と同じ本物の問題です。

登録なしで50問解く