AWS DEAの問題集をClaude3に作らせてみた

# はじめに

皆さんご存じの通り3月上旬頃、AWS認定 Data Engineer Associateの試験が正式に公開されました。

https://aws.amazon.com/jp/certification/certified-data-engineer-associate/

Xを観測すると続々と受験者が増えているように見えますが、さすがに試験問題集の書籍は未だ発売されていないようです。筆者もそろそろ受験しようかなと考えているので、LLMに問題集を作ってもらいました。（書籍は未出版ですがUdemyには模擬問題集が既にありました）

[公式試験ガイド](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-data-engineer-associate/AWS-Certified-Data-Engineer-Associate_Exam-Guide.pdf)に記載の対象知識・対象スキルが166件ありますが、そのうち50件を対象にそれぞれ約3問ずつで136問作成しました。全て載せるとあまりにも長くなるのでここでは45問だけ掲載しておきます。


なお、作成にあたってはAmazon BedrockでCalude 3 Sonnetを使いました。
136問作成して、InputTokenCountは104万、OutputTokenCountは9.5万でした。大体700円くらいなので、お遊びで作るにしてはちょっと高めな気がします。
作成した手順等は後日やる気が出れば記事にしようと思います。

本試験を受験したことのある方は、中身を見てみて「こんな問題でないよ」とか「まあいい感じ」とか評価してみて頂けると幸いです。
(そもそも問題として体をなしていないものもありますが)



# 問題
:::note warn
本問題はAIによって作成されたものです。
- 生成AIによる作問のため、内容が正確な保証はありません
- あくまでAIで作問するとこんなものという実験的なものであることにご注意ください
- 作成した問題の一部を上から順に掲載したため、出題範囲に偏りがあります
- 以下の内容を参考・利用することによる一切の責任を負いませんので、ご了承の上お使いください
:::




<h2>問1</h2>
<h4>問題</h4>
AWS Glue ジョブの実行をスケジューリングする方法として適切なものを全て選んでください。

<h4>選択肢</h4>
<p>A： Amazon EventBridge のスケジューラーを使用する</p><p>B： Apache Airflow を使用して AWS Glue ジョブをスケジューリングする</p><p>C： AWS Glue ジョブのトリガーを時間ベースのスケジュールで設定する</p><p>D： AWS Lambda 関数からAWS Glue ジョブを定期的に呼び出す</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, C</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/glue/latest/dg/components-key-concepts.html<br>https://docs.aws.amazon.com/ja_jp/scheduler/latest/UserGuide/schedule-types.html</p>
    <p>対象知識・スキル：Amazon EventBridge、Apache Airflow、またはジョブとクローラの時間ベースのスケジュールを使用してスケジューラをセットアップ</p>
</details>



<h2>問2</h2>
<h4>問題</h4>
AWS Glue のデータ処理ユニット(DPU)の説明として正しいものを全て選んでください。

<h4>選択肢</h4>
<p>A： データ処理ユニットは、ETLジョブの実行時間に対してのみ課金される</p><p>B： データ処理ユニットにはStandard、G.1X、G.2X、G.025Xの構成がある</p><p>C： 1つのデータ処理ユニットをワーカーと呼ぶ</p><p>D： データ処理ユニットを使うと管理リソースの費用が発生する</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, C</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/glue/latest/dg/components-key-concepts.html<br>https://docs.aws.amazon.com/ja_jp/scheduler/latest/UserGuide/schedule-types.html</p>
    <p>対象知識・スキル：Amazon EventBridge、Apache Airflow、またはジョブとクローラの時間ベースのスケジュールを使用してスケジューラをセットアップ</p>
</details>



<h2>問3</h2>
<h4>問題</h4>
AWS Glue で UTF-8 以外のエンコーディングのテキストデータを処理する際の制約はどれでしょうか。

<h4>選択肢</h4>
<p>A： UTF-8以外のエンコーディングは処理できない</p><p>B： UTF-8以外のデータは事前に変換する必要がある</p><p>C： UTF-8以外のデータは一部の機能が利用できない</p><p>D： UTF-8以外のデータには追加料金が発生する</p>

（形式：択一問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/glue/latest/dg/components-key-concepts.html<br>https://docs.aws.amazon.com/ja_jp/scheduler/latest/UserGuide/schedule-types.html</p>
    <p>対象知識・スキル：Amazon EventBridge、Apache Airflow、またはジョブとクローラの時間ベースのスケジュールを使用してスケジューラをセットアップ</p>
</details>



<h2>問4</h2>
<h4>問題</h4>
Amazon Kinesis Data Streams は、ストリーミングデータをバッファリングし、複数の Lambda 関数に渡すことができます。ある会社が Amazon Kinesis を使用して、IoT デバイスからのデータを処理しようとしています。データ処理に Lambda 関数を使用するには、どのようなアプローチが適切でしょうか。(2つ選択)

<h4>選択肢</h4>
<p>A： Lambda 関数をシリアル形式で呼び出し、各関数の出力を次の関数の入力として渡す</p><p>B： Kinesis Data Streams のシャード数を増やし、Lambda 関数をパラレルで呼び出す</p><p>C： Lambda 関数をパラレルで呼び出し、最終的に結果をまとめる別の Lambda 関数を使用する</p><p>D： Kinesis Data Firehose を使用して、データを直接 Amazon S3 に送信する</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：B, C</p>
    <p>解説：<br>Kinesis Data Streams のシャード数を増やすことで、より多くのデータを並列で処理できます。また、Lambda 関数をパラレルで呼び出すことで、個々のデータレコードを同時に処理できます。これらのアプローチを組み合わせることで、大量のデータを効率的に処理できます。最終的に別の Lambda 関数を使用して結果をまとめることも可能です。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v3/developer-guide/cross_LambdaForBrowser_javascript_topic.html<br>https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/example_cross_LambdaForBrowser_section.html</p>
    <p>対象知識・スキル：Amazon Kinesis からの Lambda 関数の呼び出し</p>
</details>



<h2>問5</h2>
<h4>問題</h4>
IoT デバイスからのデータを処理するために Amazon Kinesis Data Streams と AWS Lambda を使用しています。Lambda 関数が呼び出されたときに例外がスロー(発生)された場合、どのようなことが起こりますか?

<h4>選択肢</h4>
<p>A： Lambda 関数は再試行され、無限に呼び出し続けられる</p><p>B： レコードが破棄され、次のレコードが処理される</p><p>C： レコードが Kinesis Data Streams の別のシャードに自動的に移動される</p><p>D： レコードが Dead-letter キューに送信される</p>

（形式：択一問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：D</p>
    <p>解説：<br>Lambda 関数から例外がスローされた場合、そのレコードは Dead-letter キューに送信されます。Dead-letter キューを設定していない場合は、レコードが破棄されます。Lambda 関数は再試行されませんし、レコードは別のシャードに移動されることもありません。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v3/developer-guide/cross_LambdaForBrowser_javascript_topic.html<br>https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/example_cross_LambdaForBrowser_section.html</p>
    <p>対象知識・スキル：Amazon Kinesis からの Lambda 関数の呼び出し</p>
</details>



<h2>問6</h2>
<h4>問題</h4>
Amazon Kinesis Data Streams を使用してストリーミングデータを処理する際、レコードの処理順序を保証する必要があります。この要件を満たすために、どのようなアプローチが適切でしょうか。(2つ選択)

<h4>選択肢</h4>
<p>A： 特定のパーティションキーに対するレコードを同じ Lambda 関数にルーティングする</p><p>B： Kinesis クライアントライブラリを使用して、同じレコードを複数の Lambda 関数に渡す</p><p>C： 単一の Lambda 関数を使用して、すべてのレコードを順次処理する</p><p>D： AWS Step Functions を使用して、Lambda 関数の呼び出しを順序付けする</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, C</p>
    <p>解説：<br>特定のパーティションキーに対するレコードを同じ Lambda 関数にルーティングすることで、そのパーティションキーに対するレコードの処理順序が保証されます。また、単一の Lambda 関数を使用してすべてのレコードを順次処理することで、ストリーム全体のレコードの処理順序を保証できます。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v3/developer-guide/cross_LambdaForBrowser_javascript_topic.html<br>https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/example_cross_LambdaForBrowser_section.html</p>
    <p>対象知識・スキル：Amazon Kinesis からの Lambda 関数の呼び出し</p>
</details>



<h2>問7</h2>
<h4>問題</h4>
Apache Sparkを使用して、大規模なデータセットからデータを抽出、変換、および読み込む必要があるシナリオを考えてみましょう。Amazon SageMakerのコンポーネントを利用してこの作業を実行する際に、どのようなアプローチが適切でしょうか。該当するものをすべて選択してください。

<h4>選択肢</h4>
<p>A： SageMaker Processing JobでPySparkProcessorを使用し、PySpark スクリプトを実行する</p><p>B： カスタム Spark Docker イメージを構築し、SageMaker Processing JobでSparkJarProcessorを使用してJarファイルを実行する</p><p>C： Amazon EMR クラスターを作成し、Sparkジョブを直接実行する</p><p>D： SageMaker ノートブックインスタンスで直接PySpark セッションを実行する</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/use-spark-processing-container.html<br>https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/use-tasks.html</p>
    <p>対象知識・スキル：Apache Spark を使用してデータを処理する方法</p>
</details>



<h2>問9</h2>
<h4>問題</h4>
データエンジニアとして、Amazon SageMaker で Apache Sparkを使用する際に留意すべき点はどれでしょうか。該当するものをすべて選択してください。

<h4>選択肢</h4>
<p>A： SageMakerはApache SparkやSparkアプリケーションの実行に必要な依存関係を含む事前構築済みのDockerイメージを提供している</p><p>B： SparkアプリケーションのソースコードとDockerfilesは、SageMakerが提供するプライベートGitHubリポジトリに格納されている</p><p>C： SageMaker Python SDKを使用することで、Sparkフレームワークによるデータ変換や特徴量エンジニアリングが容易になる</p><p>D： Amazon Elastic Container Registry (Amazon ECR)から、事前構築済みのSparkDockerイメージを直接取得することができる</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, C, D</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/use-spark-processing-container.html<br>https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/use-tasks.html</p>
    <p>対象知識・スキル：Apache Spark を使用してデータを処理する方法</p>
</details>



<h2>問10</h2>
<h4>問題</h4>
あなたは AWS CodeCommit リポジトリから Git 同期製品を作成したいと考えています。製品のテンプレートファイルがリポジトリの特定の場所にあることを確認する必要があります。製品のテンプレートファイルがリポジトリのどの場所に置かれる必要がありますか? (該当するものをすべて選択してください)

<h4>選択肢</h4>
<p>A： Terraform フォルダ</p><p>B： tar.gz 形式のフォルダ</p><p>C： CloudFormation フォルダ</p><p>D： Terraform (.tf) ファイル</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：B, D</p>
    <p>解説：<br>Terraform 設定ファイルを使用して Git 同期製品を作成する場合、ファイルパスは tar.gz 形式のみを受け入れます。Terraform フォルダ形式はファイルパスでは使用できません。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/servicecatalog/latest/adminguide/git-synced-sc-products.html<br>https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-a-pipeline-that-simultaneously-detects-security-issues-in-multiple-code-deliverables.html</p>
    <p>対象知識・スキル：Git コマンドを使用した、リポジトリの作成、更新、複製、分岐などのアクションの実行</p>
</details>



<h2>問11</h2>
<h4>問題</h4>
AWS Service Catalog 管理者が Git 同期製品を作成するために必要な IAM 権限はどれですか? (該当するものをすべて選択してください)

<h4>選択肢</h4>
<p>A： codestar-connections:UseConnection</p><p>B： codestar-connections:DeleteConnection</p><p>C： iam:CreateRole</p><p>D： iam:CreateServiceLinkedRole</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, D</p>
    <p>解説：<br>AWS Service Catalog 管理者は、CodeStar Connections および IAM のいくつかの権限が必要です。これには codestar-connections:UseConnection、codestar-connections:DeleteConnection、iam:CreateServiceLinkedRole が含まれます。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/servicecatalog/latest/adminguide/git-synced-sc-products.html<br>https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-a-pipeline-that-simultaneously-detects-security-issues-in-multiple-code-deliverables.html</p>
    <p>対象知識・スキル：Git コマンドを使用した、リポジトリの作成、更新、複製、分岐などのアクションの実行</p>
</details>



<h2>問12</h2>
<h4>問題</h4>
Git 同期製品の接続を削除した場合、テンプレートファイルに変更を加えても、AWS Service Catalog 製品にはどのような影響がありますか?

<h4>選択肢</h4>
<p>A： 変更は反映されず、製品は通常の AWS Service Catalog 製品として扱われます</p><p>B： 製品は自動的に削除されます</p><p>C： 製品は最新のテンプレートファイルバージョンに自動的に同期されます</p><p>D： 製品の更新は許可されず、エラーが発生します</p>

（形式：択一問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A</p>
    <p>解説：<br>製品をテンプレートファイルから切り離すと、同期された AWS Service Catalog 製品は通常管理されている製品に切り替わります。製品を切断した後、以前に接続したリポジトリでテンプレートファイルを変更してコミットしても、変更は反映されません。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/servicecatalog/latest/adminguide/git-synced-sc-products.html<br>https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-a-pipeline-that-simultaneously-detects-security-issues-in-multiple-code-deliverables.html</p>
    <p>対象知識・スキル：Git コマンドを使用した、リポジトリの作成、更新、複製、分岐などのアクションの実行</p>
</details>



<h2>問13</h2>
<h4>問題</h4>
Lambda 関数から Amazon S3 のオブジェクトデータを読み書きする必要があるとします。関数内からストレージボリュームをマウントして使用することは可能でしょうか。該当する選択肢をすべて選んでください。

<h4>選択肢</h4>
<p>A： キャッシュ型ボリュームを使用して、オンプレミスのディスクをキャッシュストレージおよびアップロードバッファとしてマウントできる。</p><p>B： 保管型ボリュームを使用して、オンプレミスのディスクをストレージボリュームとしてマウントできる。</p><p>C： Amazon EFS ファイルシステムをマウントすることで、ストレージボリュームとして使用できる。</p><p>D： Lambda 関数内からはストレージボリュームをマウントすることはできない。</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：C, D</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/storagegateway/latest/userguide/StorageGatewayConcepts.html<br>https://docs.aws.amazon.com/ja_jp/storagegateway/latest/vgw/StorageGatewayConcepts.html</p>
    <p>対象知識・スキル：Lambda 関数内からのストレージボリュームの使用とマウント</p>
</details>



<h2>問14</h2>
<h4>問題</h4>
Lambda 関数からデータを Amazon S3 にアップロードする際に、データをいったん一時的に保存するバッファが必要となります。このバッファを実現する方法として適切なものを、すべて選んでください。

<h4>選択肢</h4>
<p>A： Amazon EFSファイルシステムを使用する。</p><p>B： AWS StorageGatewayのキャッシュ型ボリュームのアップロードバッファを使用する。</p><p>C： /tmp ディレクトリを使用する。</p><p>D： 保管型ボリュームのアップロードバッファを使用する。</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：B, C</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/storagegateway/latest/userguide/StorageGatewayConcepts.html<br>https://docs.aws.amazon.com/ja_jp/storagegateway/latest/vgw/StorageGatewayConcepts.html</p>
    <p>対象知識・スキル：Lambda 関数内からのストレージボリュームの使用とマウント</p>
</details>



<h2>問15</h2>
<h4>問題</h4>
Amazon S3 のデータを保護するために、AWS Storage Gateway で実装できるセキュリティ対策はどれでしょうか。該当するものをすべて選んでください。

<h4>選択肢</h4>
<p>A： ゲートウェイからAmazon S3へのデータ転送時に SSL 暗号化を使用する。</p><p>B： Amazon S3 にアップロードされたデータに対してサーバー側の暗号化を適用する。</p><p>C： Amazon S3 バケットにアクセス制御リストを設定する。</p><p>D： AWS KMS を使ってゲートウェイ側でデータを暗号化する。</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/storagegateway/latest/userguide/StorageGatewayConcepts.html<br>https://docs.aws.amazon.com/ja_jp/storagegateway/latest/vgw/StorageGatewayConcepts.html</p>
    <p>対象知識・スキル：Lambda 関数内からのストレージボリュームの使用とマウント</p>
</details>



<h2>問16</h2>
<h4>問題</h4>
Amazon Athena を使用して、パーティションデータを含む AWS Glue データカタログの複数のテーブルからデータを取得する SQL クエリを書く必要があります。効率的なクエリを作成するための推奨される手順は次のうちどれですか? (2つ選択してください)

<h4>選択肢</h4>
<p>A： 一時的なビューを作成し、必要なパーティションを指定してクエリする</p><p>B： WHERE 句を使用して必要なパーティションを指定してクエリする</p><p>C： フルテーブルスキャンを実行する</p><p>D： パーティションを指定しないでクエリし、ドライバーでフィルタリングを実行する</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/v9-panels-query-xform.html<br>https://docs.aws.amazon.com/ja_jp/glue/latest/dg/transforms-sql.html</p>
    <p>対象知識・スキル：SQL クエリ (データソースクエリとデータ変換用)</p>
</details>



<h2>問17</h2>
<h4>問題</h4>
AWS Glue の Spark SQL ジョブを作成し、複数のデータソースから取得したデータを結合する必要があります。効率的なデータ結合を行うための推奨事項は次のうちどれですか? (2つ選択してください)

<h4>選択肢</h4>
<p>A： Spark SQL の UNION ALL または UNION 句を使用して、データセットを結合する</p><p>B： Spark SQL の JOIN 句を使用して、データセットを結合する</p><p>C： データセットを 1 つの大きなファイルに連結する</p><p>D： Spark の DataFrame API を使用して、データセットを結合する</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：B, D</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/v9-panels-query-xform.html<br>https://docs.aws.amazon.com/ja_jp/glue/latest/dg/transforms-sql.html</p>
    <p>対象知識・スキル：SQL クエリ (データソースクエリとデータ変換用)</p>
</details>



<h2>問18</h2>
<h4>問題</h4>
AWS Glue の Spark SQL ジョブで複雑な変換を実行する必要があります。変換ロジックを効率的に実装するための推奨事項は次のうちどれですか? (2つ選択してください)

<h4>選択肢</h4>
<p>A： Amazon SageMaker のカスタムコンポーネントを使用して変換ロジックを実装する</p><p>B： Spark SQL の User Defined Functions (UDF) を使用して変換ロジックを実装する</p><p>C： 変換ロジックを Python または Scala のスクリプトに実装し、Spark SQL ジョブでそれを呼び出す</p><p>D： Spark SQL の CASE 式を使用して変換ロジックを実装する</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：B, C</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/v9-panels-query-xform.html<br>https://docs.aws.amazon.com/ja_jp/glue/latest/dg/transforms-sql.html</p>
    <p>対象知識・スキル：SQL クエリ (データソースクエリとデータ変換用)</p>
</details>



<h2>問19</h2>
<h4>問題</h4>
SQL クエリの実行時間が長く、パフォーマンスが低下している場合、どのような方法を講じるべきでしょうか。該当するものを全て選択してください。

<h4>選択肢</h4>
<p>A： クエリで使用されているインデックスを最適化する</p><p>B： クエリ内の結合処理を見直す</p><p>C： クエリでフィルタリングされるデータ量を削減する</p><p>D： クエリ内で使用されている関数の見直しを行う</p><p>E： データベースサーバーのメモリ設定を増やす</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, C, D</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/sql-server-optimization-for-enterpriseone/optimize-configuration.html<br>https://docs.aws.amazon.com/ja_jp/ivs/latest/RealTimeUserGuide/real-time-streaming-optimization.html</p>
    <p>対象知識・スキル：SQL クエリの最適化</p>
</details>



<h2>問20</h2>
<h4>問題</h4>
長時間実行されるバッチクエリの待ち時間を短縮するため、どのようなアプローチをとるべきでしょうか。

<h4>選択肢</h4>
<p>A： クエリを小さなサブクエリに分割し、それらを並列で実行する</p><p>B： クエリで参照するデータ量を削減する</p><p>C： クエリを再記述し、ウィンドウ関数を使用する</p><p>D： より高性能なデータベースインスタンスタイプを使用する</p>

（形式：択一問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/sql-server-optimization-for-enterpriseone/optimize-configuration.html<br>https://docs.aws.amazon.com/ja_jp/ivs/latest/RealTimeUserGuide/real-time-streaming-optimization.html</p>
    <p>対象知識・スキル：SQL クエリの最適化</p>
</details>



<h2>問21</h2>
<h4>問題</h4>
SQL クエリでデータ変換が多数行われている場合、どのようなアプローチが適切でしょうか。

<h4>選択肢</h4>
<p>A： データ変換ロジックをアプリケーションコードに移行する</p><p>B： データ変換ロジックを別のデータベースにオフロードする</p><p>C： データ変換ロジックをビューやストアドプロシージャに移す</p><p>D： データ変換ロジックをそのままクエリ内に残す</p>

（形式：択一問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：C</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/sql-server-optimization-for-enterpriseone/optimize-configuration.html<br>https://docs.aws.amazon.com/ja_jp/ivs/latest/RealTimeUserGuide/real-time-streaming-optimization.html</p>
    <p>対象知識・スキル：SQL クエリの最適化</p>
</details>



<h2>問22</h2>
<h4>問題</h4>
Amazon Redshift でストアドプロシージャを作成する際、PL/pgSQL ステートメントを使用してプロシージャの論理フローをどのように制御できますか?

<h4>選択肢</h4>
<p>A： 条件分岐 (IF ステートメント、CASE ステートメント)</p><p>B： ループ構造 (LOOP、WHILE、FOR ステートメント)</p><p>C： 例外処理 (RAISE ステートメント)</p><p>D： 動的 SQL 実行 (EXECUTE ステートメント)</p><p>E： 代入文 (代入ステートメント、SELECT INTO ステートメント)</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, C, D, E</p>
    <p>解説：<br>Amazon Redshift のストアドプロシージャでは、PL/pgSQL ステートメントを使用して様々な制御フローを実装できます。条件分岐、ループ、例外処理、動的 SQL の実行、変数への代入などの機能が利用可能です。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_PLpgSQL-statements.html<br>https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/cluster-versions.html</p>
    <p>対象知識・スキル：SQL クエリを実行したデータの変換 (Amazon Redshift ストアドプロシージャなど)</p>
</details>



<h2>問23</h2>
<h4>問題</h4>
Amazon Redshift でマテリアライズドビューを使用する場合、どのようなメリットがありますか?

<h4>選択肢</h4>
<p>A： クエリのパフォーマンスが向上し、頻繁に使用されるクエリの実行時間が短縮される。</p><p>B： ストアドプロシージャの実行時間が短縮される。</p><p>C： データベースのディスク使用量が削減される。</p><p>D： データの整合性が向上する。</p>

（形式：択一問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A</p>
    <p>解説：<br>マテリアライズドビューは、頻繁に実行される複雑なクエリの結果をディスクに保存することで、同じクエリを実行するたびに計算を行う必要がなくなり、クエリのパフォーマンスが向上します。ストアドプロシージャの実行時間への影響はありません。また、ディスク使用量は増加する可能性があります。データの整合性への影響はありません。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_PLpgSQL-statements.html<br>https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/cluster-versions.html</p>
    <p>対象知識・スキル：SQL クエリを実行したデータの変換 (Amazon Redshift ストアドプロシージャなど)</p>
</details>



<h2>問24</h2>
<h4>問題</h4>
Amazon Redshift でデータ共有機能を使用する主な理由は何ですか?

<h4>選択肢</h4>
<p>A： リソースの効率的な活用</p><p>B： データ分析の高速化</p><p>C： セキュリティの強化</p><p>D： クラスターのパフォーマンス向上</p>

（形式：択一問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：B</p>
    <p>解説：<br>Amazon Redshift のデータ共有機能の主な利用目的は、複数のクラスター間でデータを共有し、データ分析を高速化することです。同じデータを複数のクラスターに複製する必要がなくなるため、データ分析が効率化されます。リソース効率化、セキュリティ強化、パフォーマンス向上は副次的なメリットと言えますが、主な目的ではありません。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_PLpgSQL-statements.html<br>https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/cluster-versions.html</p>
    <p>対象知識・スキル：SQL クエリを実行したデータの変換 (Amazon Redshift ストアドプロシージャなど)</p>
</details>



<h2>問25</h2>
<h4>問題</h4>
Amazon DynamoDB のデータをAmazon OpenSearch Serviceにスムーズに統合するには、DynamoDB OpenSearch Ingestionプラグインを使用します。このプラグインについて正しい説明は次のうちどれですか? (複数選択可)

<h4>選択肢</h4>
<p>A： DynamoDB Streamsを使用して、DynamoDBの変更をほぼリアルタイムでOpenSearchに反映します。</p><p>B： Amazon S3へのDynamoDBエクスポートを利用して、OpenSearchへの初期スナップショットを作成します。</p><p>C： DynamoDBのプロビジョンドスループットを消費するため、本番トラフィックに影響を与える可能性があります。</p><p>D： DynamoDB Streamsが有効になっていれば、point-in-time リカバリ (PITR) を有効にする必要はありません。</p><p>E： 失敗したイベントはデッドレターキューに送られ、後で再試行可能です。</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, E</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/OpenSearchIngestionForDynamoDB.html<br>https://docs.aws.amazon.com/ja_jp/datapipeline/latest/DeveloperGuide/migration.html</p>
    <p>対象知識・スキル：さまざまな AWS サービスを統合して ETL パイプラインを作成する方法</p>
</details>



<h2>問26</h2>
<h4>問題</h4>
AWS Data Pipelineから別のサービスに移行する際の考慮事項として正しいものを全て選んでください。(複数選択可)

<h4>選択肢</h4>
<p>A： AWS GlueはApache Sparkアプリケーションの実行とオーケストレーションに適しています。</p><p>B： AWS Step FunctionsはAWS以外のサービスとの統合に制限があります。</p><p>C： Amazon MWAAはPythonでワークフローを記述し、オープンソースのApache Airflowを利用します。</p><p>D： AWS Step FunctionsではJSONベースのAmazon State Languageを使用します。</p><p>E： Amazon MWAAでは現在のAmazon EMRのバージョンを選択できません。</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, C, D</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/OpenSearchIngestionForDynamoDB.html<br>https://docs.aws.amazon.com/ja_jp/datapipeline/latest/DeveloperGuide/migration.html</p>
    <p>対象知識・スキル：さまざまな AWS サービスを統合して ETL パイプラインを作成する方法</p>
</details>



<h2>問27</h2>
<h4>問題</h4>
ETLパイプラインでデータをオーケストレーションするために適したAWSサービスを全て選んでください。(複数選択可)

<h4>選択肢</h4>
<p>A： AWS Glue</p><p>B： Amazon Kinesis Data Firehose</p><p>C： AWS Step Functions</p><p>D： Amazon Athena</p><p>E： Amazon Managed Workflows for Apache Airflow (MWAA)</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, C, E</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/OpenSearchIngestionForDynamoDB.html<br>https://docs.aws.amazon.com/ja_jp/datapipeline/latest/DeveloperGuide/migration.html</p>
    <p>対象知識・スキル：さまざまな AWS サービスを統合して ETL パイプラインを作成する方法</p>
</details>



<h2>問28</h2>
<h4>問題</h4>
データウェアハウスクラスターにクライアントツールから接続するために使用できるテクノロジーはどれですか。(複数選択可)

<h4>選択肢</h4>
<p>A： JDBC (Java Database Connectivity)</p><p>B： Python</p><p>C： ODBC (Open Database Connectivity)</p><p>D： SQL Workbench/J</p><p>E： その他のサードパーティーSQL クライアントツール</p>

（形式：選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, C, D, E</p>
    <p>解説：<br>Amazon Redshiftデータウェアハウスには、Java Database Connectivity (JDBC)、Python、Open Database Connectivity (ODBC)接続を介してSQL クライアントツールから接続できます。JDBC、Python、またはODBCドライバをサポートするSQL クライアントツールが使用可能で、代表例としてSQL Workbench/Jやその他のサードパーティーツールが挙げられています。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/athena/latest/ug/athena-bi-tools-jdbc-odbc.html<br>https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/connecting-to-cluster.html</p>
    <p>対象知識・スキル：さまざまなデータソースへの接続 (Java Database Connectivity [JDBC]、Open Database Connectivity [ODBC] など)</p>
</details>



<h2>問31</h2>
<h4>問題</h4>
Amazon S3 バケットへのアクセスを監視するために、特定のイベントが発生したときにイベント通知を受け取るよう設定したいと思います。通知を設定するためには、どのような手順を踏む必要がありますか? (2つ選択してください)

<h4>選択肢</h4>
<p>A： 通知を受け取りたいイベントタイプを指定する</p><p>B： イベント通知の送信先として Amazon SNS トピックまたは Amazon SQS キューの ARN を指定する</p><p>C： AWS Lambda 関数を作成し、関数のARNをイベント通知の送信先として指定する</p><p>D： イベント通知を有効にするバケットポリシーを設定する</p><p>E： バケットのアクセスログを有効にする</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B</p>
    <p>解説：<br>Amazon S3 イベント通知を設定するには、監視したいイベントタイプと、通知の送信先となる Amazon SNS トピックまたは Amazon SQS キューのARNを指定する必要があります。AWS Lambda 関数を送信先として指定することも可能ですが、その場合は別途 Lambda 関数の作成が必要です。バケットポリシーではなくバケット設定で通知を有効化し、アクセスログとは別の機能です。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/ses/latest/dg/monitor-sending-activity-using-notifications.html<br>https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/EventNotifications.html</p>
    <p>対象知識・スキル：イベントトリガーの設定 (Amazon S3 イベント通知、EventBridge など)</p>
</details>



<h2>問32</h2>
<h4>問題</h4>
Amazon S3 イベント通知を設定する際、どのようなイベントタイプの通知を設定できますか? (3つ選択してください)

<h4>選択肢</h4>
<p>A： 新しいオブジェクトの作成イベント</p><p>B： オブジェクトの上書きイベント</p><p>C： オブジェクトの削除イベント</p><p>D： レプリケーションイベント</p><p>E： オブジェクトのプロパティ変更イベント</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, C, D</p>
    <p>解説：<br>Amazon S3 イベント通知では、新しいオブジェクトの作成、オブジェクトの削除、レプリケーションイベントの通知を設定できます。オブジェクトの上書きは新しいオブジェクトの作成イベントとみなされ、プロパティ変更イベントについては通知を設定できません。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/ses/latest/dg/monitor-sending-activity-using-notifications.html<br>https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/EventNotifications.html</p>
    <p>対象知識・スキル：イベントトリガーの設定 (Amazon S3 イベント通知、EventBridge など)</p>
</details>



<h2>問33</h2>
<h4>問題</h4>
Amazon S3 イベント通知の送信先として利用できるサービスはどれですか? (3つ選択してください)

<h4>選択肢</h4>
<p>A： Amazon Simple Queue Service (Amazon SQS)</p><p>B： Amazon Kinesis Data Firehose</p><p>C： Amazon EventBridge</p><p>D： AWS CloudTrail</p><p>E： AWS Lambda</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, C, E</p>
    <p>解説：<br>Amazon S3 イベント通知の送信先として、Amazon SQS キュー、AWS Lambda 関数、Amazon EventBridge を指定できます。Kinesis Data Firehose やCloudTrail は直接の送信先としてはサポートされていません。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/ses/latest/dg/monitor-sending-activity-using-notifications.html<br>https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/EventNotifications.html</p>
    <p>対象知識・スキル：イベントトリガーの設定 (Amazon S3 イベント通知、EventBridge など)</p>
</details>



<h2>問34</h2>
<h4>問題</h4>
イベント駆動型アーキテクチャの一例として、Amazon SQSとAWS Lambdaを使用したシステムがあります。このシステムにおいて、メッセージプロデューサーからのトレースが、ダウンストリームのLambdaコンシューマーからのトレースにリンクされる機能について説明された文章を読んで、どのようなメリットがあると考えられますか。(答えは複数選択可)

<h4>選択肢</h4>
<p>A： システム全体の可視性が高まり、運用監視が容易になる</p><p>B： メッセージプロデューサーとLambdaコンシューマー間の接続が明示的になり、イベントのルーティングが可視化される</p><p>C： キューとLambdaの間で欠落したメッセージがあった場合に検知しやすくなる</p><p>D： トレースサイズの上限を超えると、一部のトレースがリンクから除外されるため、可視性が損なわれる</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, C</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/xray/latest/devguide/xray-tracelinking.html<br>https://docs.aws.amazon.com/ja_jp/whitepapers/latest/aws-security-incident-response-guide/event-driven-response.html</p>
    <p>対象知識・スキル：イベント駆動型アーキテクチャ</p>
</details>



<h2>問35</h2>
<h4>問題</h4>
イベント駆動型アーキテクチャの事例として、AWS CloudTrailのログ記録を無効化する操作に対するイベント駆動型の対応が示されています。このようなイベント駆動型の対応システムでは、どのようなアプローチが理想的でしょうか。

<h4>選択肢</h4>
<p>A： 自動化により対応タスクを完全に実行し、担当者に通知する</p><p>B： イベントの詳細を収集し、データを分析した後に担当者が対応する</p><p>C： イベントを検知したら即座に担当者に通知し、その指示に従う</p><p>D： イベント発生時にワークフローを自動実行し、人的対応は必要ない</p>

（形式：択一問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/xray/latest/devguide/xray-tracelinking.html<br>https://docs.aws.amazon.com/ja_jp/whitepapers/latest/aws-security-incident-response-guide/event-driven-response.html</p>
    <p>対象知識・スキル：イベント駆動型アーキテクチャ</p>
</details>



<h2>問36</h2>
<h4>問題</h4>
イベント駆動型アーキテクチャにおいて、Amazon SQSとAWS Lambdaを利用する際の注意点として適切なものを全て選択してください。

<h4>選択肢</h4>
<p>A： 1つのトレースから他のトレースへのリンク数には制限がある</p><p>B： トレースデータのサイズには上限があり、上限を超えるとデータが失われる</p><p>C： 同時実行するLambda関数の数に応じてスロットリングが発生する可能性がある</p><p>D： SQSキューへの送信と受信の順序は保証されない</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, C</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/xray/latest/devguide/xray-tracelinking.html<br>https://docs.aws.amazon.com/ja_jp/whitepapers/latest/aws-security-incident-response-guide/event-driven-response.html</p>
    <p>対象知識・スキル：イベント駆動型アーキテクチャ</p>
</details>



<h2>問37</h2>
<h4>問題</h4>
企業はAmazon EMRを使用してデータ処理ワークフローを実行しています。このワークフローは、以前はAWS Data Pipelineで管理されていました。ワークフローのオーケストレーションをAWS Step Functionsに移行することを検討しています。このシナリオで、Step Functionsを選択する適切な理由は次のうちどれですか?

<h4>選択肢</h4>
<p>A： サーバーレスで高可用性のワークフロー オーケストレーションサービスが必要だから。</p><p>B： 1つのタスク実行の粒度に応じた課金モデルが適しているから。</p><p>C： ドラッグアンドドロップのビジュアルデザイナーを使ってワークフローを作成できるから。</p><p>D： 250を超えるAWSサービスと11,000以上のAPIアクションと統合できるから。</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, C, D</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/datapipeline/latest/DeveloperGuide/migration.html<br>https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/migrate-pipeline-workloads.html</p>
    <p>対象知識・スキル：オーケストレーションサービスを使用してデータ ETL パイプラインのワークフローを構築 (Lambda、EventBridge、Amazon Managed Workflows for Apache Airflow [Amazon MWAA]、AWS Step Functions、AWS Glue ワークフローなど)</p>
</details>



<h2>問38</h2>
<h4>問題</h4>
企業は以前からAWS Data Pipelineを使用して、Amazon DynamoDBのデータをAmazon S3にエクスポートするETLワークフローを実行してきました。このワークフローをAWS Glueに移行することを検討しています。この場合、AWS Glueを選択する最も適切な理由は次のどれですか?

<h4>選択肢</h4>
<p>A： ビジュアルエディタやノートブックなどのオーサリングインターフェイスがサポートされているから。</p><p>B： データ品質チェックや機密データ検出などの高度なデータ管理機能が必要だから。</p><p>C： Apache Hiveのようなデータ処理エンジンに依存しているから。</p><p>D： AWS GlueのETLジョブテンプレートにDynamoDBからS3へのデータ移行が含まれているから。</p>

（形式：択一問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：D</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/datapipeline/latest/DeveloperGuide/migration.html<br>https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/migrate-pipeline-workloads.html</p>
    <p>対象知識・スキル：オーケストレーションサービスを使用してデータ ETL パイプラインのワークフローを構築 (Lambda、EventBridge、Amazon Managed Workflows for Apache Airflow [Amazon MWAA]、AWS Step Functions、AWS Glue ワークフローなど)</p>
</details>



<h2>問39</h2>
<h4>問題</h4>
企業はAWS Data Pipelineを使用してデータ処理ワークフローを実行していましたが、このワークフローをAmazon MWAAに移行することを検討しています。次のうち、Amazon MWAAを選択する最も適切な理由はどれですか?

<h4>選択肢</h4>
<p>A： Apache Airflowのオープンソースワークフローマネージャーを活用できるから。</p><p>B： AWS以外のカスタムサービスやアクティビティとの統合が容易だから。</p><p>C： ワークフローにオンプレミスリソースを含める必要があるから。</p><p>D： データ品質チェックや機密データ検出などの高度な機能が必要だから。</p>

（形式：択一問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/datapipeline/latest/DeveloperGuide/migration.html<br>https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/migrate-pipeline-workloads.html</p>
    <p>対象知識・スキル：オーケストレーションサービスを使用してデータ ETL パイプラインのワークフローを構築 (Lambda、EventBridge、Amazon Managed Workflows for Apache Airflow [Amazon MWAA]、AWS Step Functions、AWS Glue ワークフローなど)</p>
</details>



<h2>問40</h2>
<h4>問題</h4>
Amazon DynamoDB のパーティション設計について、次の説明のうち正しいものを全て選択してください。

<h4>選択肢</h4>
<p>A： DynamoDB はデータをパーティションに保存し、各パーティションはソリッドステートドライブ (SSD) でバックアップされている。</p><p>B： パーティションの管理は DynamoDB によって完全に処理され、ユーザーが直接管理する必要はない。</p><p>C： テーブルにプロビジョンされたスループット設定を増やした場合、DynamoDB は追加のパーティションを割り当てる。</p><p>D： 既存のパーティションが容量いっぱいになった場合、DynamoDB は追加のパーティションを割り当てる。</p><p>E： パーティション管理は自動的に行われ、アプリケーションに透過的である。</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, C, D, E</p>
    <p>解説：<br>DynamoDB のドキュメントに基づき、上記の説明はすべて正しいです。DynamoDB はデータをパーティションに保存し、パーティション管理は自動的に行われます。プロビジョンドスループットの増加や既存パーティションの容量不足に応じてパーティションが追加されます。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/distributed-training-options.html<br>https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html</p>
    <p>対象知識・スキル：クラウドコンピューティングと分散コンピューティング</p>
</details>



<h2>問41</h2>
<h4>問題</h4>
DynamoDB のパーティションキーとソートキーによるデータ分散について、次の説明のうち正しいものを全て選択してください。

<h4>選択肢</h4>
<p>A： シンプルなプライマリキー (パーティションキーのみ) の場合、DynamoDB はパーティションキーの値をハッシュ関数に入力し、出力値に基づいてパーティションを決定する。</p><p>B： 複合プライマリキー (パーティションキーとソートキー) の場合、DynamoDB はパーティションキーの値をハッシュ関数に入力し、同じパーティションキー値の項目はソートキーの順に並べられる。</p><p>C： 複合キーの場合、同じパーティションキーを持つ項目の集合は「項目コレクション」と呼ばれ、効率的な範囲検索が可能になる。</p><p>D： パーティションキーの値ごとに、ソートキーの値に上限はある。</p><p>E： パーティションキーの選定方法として、大きな個別の値を持つ属性を選ぶことが推奨されている。</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B, C, E</p>
    <p>解説：<br>シンプルキーとパーティション/ソートキーの組み合わせによるデータ分散の説明は正しいです。ただし、ソートキーの値に上限はありません。大きな個別の値を持つパーティションキーを選ぶことが推奨されています。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/distributed-training-options.html<br>https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html</p>
    <p>対象知識・スキル：クラウドコンピューティングと分散コンピューティング</p>
</details>



<h2>問42</h2>
<h4>問題</h4>
分散データ処理パイプラインを構築する際、SageMaker の提供するオプションとして最も適切なものはどれでしょうか。

<h4>選択肢</h4>
<p>A： SageMaker 組み込みアルゴリズムを使用し、分散トレーニングをサポートするものを選択する。</p><p>B： SageMaker 処理の PySpark コンテナを使用し、Spark による分散データ処理を実行する。</p><p>C： 独自の Docker コンテナを SageMaker 環境に導入し、カスタムの分散処理コードを実行する。</p><p>D： SageMaker の複数ジョブ起動機能を使い、小さなタスクを並列実行する。</p>

（形式：択一問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：C</p>
    <p>解説：<br>SageMaker ではユーザー独自の Docker コンテナを実行環境に導入できるため、カスタムの分散処理コードを柔軟に実装できます。組み込みアルゴリズムには分散対応が限られています。Spark の場合は処理用コンテナを使えばよいですが、より一般的な分散処理を行う場合は独自コンテナが適切です。複数ジョブ起動は並列化の一つの選択肢ですが、より細かい制御が必要な場合は独自コードが望ましいでしょう。</p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/distributed-training-options.html<br>https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html</p>
    <p>対象知識・スキル：クラウドコンピューティングと分散コンピューティング</p>
</details>



<h2>問43</h2>
<h4>問題</h4>
大規模な CSV データファイルをAmazon S3 から AWS Glue にロードする必要があります。データは gzip で圧縮されており、ファイル間でデータの分布が不均一です。AWS Glue でのデータロード時間を最適化するために使用すべき方法は次のうちどれですか? (2つ選択してください)

<h4>選択肢</h4>
<p>A： AWS Glue ジョブに[オートバランス処理]変換を追加する</p><p>B： 元のデータを複数のファイルに分割してから AWS Glue にロードする</p><p>C： AWS Glue ジョブに[スプリットファイル]変換を追加する</p><p>D： AWS Glue ジョブで vCPU と実行されるワーカー数を増やす</p><p>E： AWS Glue ジョブで Spark UI を有効にしてパフォーマンスを監視する</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, D</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/glue/latest/ug/transforms-autobalance-processing.html<br>https://docs.aws.amazon.com/ja_jp/glue/latest/dg/transforms-autobalance-processing.html</p>
    <p>対象知識・スキル：コードの最適化によるデータ取り込みと変換のランタイム短縮</p>
</details>



<h2>問44</h2>
<h4>問題</h4>
Apache Spark を使用してデータ処理ジョブを実行する際、データが不均一に分散していることが分かりました。このような状況で AWS Glue でデータ処理の実行時間を短縮するための適切な手段は次のうちどれですか? (2つ選択してください)

<h4>選択肢</h4>
<p>A： [オートバランス処理]変換を追加してデータを再パーティション化する</p><p>B： Spark ジョブのワーカー数を増やす</p><p>C： AWS Glue ジョブに[フィルタ]変換を追加してデータ量を減らす</p><p>D： AWS Glueクローラーを使ってデータをパーティション分割する</p><p>E： AWS Glue ジョブにデータ圧縮変換を追加する</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/glue/latest/ug/transforms-autobalance-processing.html<br>https://docs.aws.amazon.com/ja_jp/glue/latest/dg/transforms-autobalance-processing.html</p>
    <p>対象知識・スキル：コードの最適化によるデータ取り込みと変換のランタイム短縮</p>
</details>



<h2>問45</h2>
<h4>問題</h4>
大量のデータを AWS Glue で処理する際、ソースデータの分散が不均一であることが判明しました。ジョブの実行時間を短縮するための適切な対策は次のうちどれですか? (2つ選択してください)

<h4>選択肢</h4>
<p>A： [オートバランス処理]変換を使ってデータを再パーティション化する</p><p>B： AWS Glue ジョブのワーカー数を増やす</p><p>C： Spark UI を有効にしてパフォーマンスをモニタリングする</p><p>D： AWS Glue ジョブに[Join]変換を追加してデータセットを結合する</p><p>E： データを Amazon S3 の複数のファイルに分散させる</p>

（形式：複数選択問題）
<details>
    <summary><b>解答</b></summary>
    <p>正解：A, B</p>
    <p>解説：<br></p>
    <p>参考文献：<br>https://docs.aws.amazon.com/ja_jp/glue/latest/ug/transforms-autobalance-processing.html<br>https://docs.aws.amazon.com/ja_jp/glue/latest/dg/transforms-autobalance-processing.html</p>
    <p>対象知識・スキル：コードの最適化によるデータ取り込みと変換のランタイム短縮</p>
</details>


# おわりに
AWS認定試験にありそうな問題もいくつかあるのですが、全体的にAWS認定独特の風味が消えています。そこは試験では問われないだろうなあという問題も多いです。
今回はプロンプトに入れるサンプルとしてSAAの問題を2問だけ入れているのですが、もう少し数を多くすればAWS認定の味が出たのかもしれません。

こちらの問題集にはまだまだ沢山の課題がのこっています。
出題された問題がDAEの試験範囲・レベルなのか、問題文がそもそも問題として成立しているか、選択肢の中に真の解答はあるのか、などなどです。
本当は問題と解答の正当性チェックもLLMにやらせたり、対策をとりたかったのですが思ったよりお金がかかってしまったので、一旦作問を終わりとし、供養のために掲載しておきます。