見出し画像

AWS認定デベロッパーアソシエイト【DVA-C02版】200題 問題集全問解答+全問解説付き

AWS認定デベロッパーアソシエイト【DVA-C02版】の過去問200題を全問解答+全問解説付き

AWS Certified Developer - Associate【DVA-C02版】の最新の問題になります。

筆者が実際に受験して、問題を収集し解答とその解説を全問付けております。
問題数は合計200題。
実際に受験し、重複問題や類似問題を削除しています。
この200問の問題の解答を理解できれば、ほぼ間違いなく、合格すると思います。

ここから問題と解答/解説になります。

200題、全問解答+全問解説付きになります。

1.

開発者は、Amazon DynamoDB テーブルのアイテム ライフサイクル アクティビティに基づいて AWS Lambda 関数をトリガーする必要があります。
開発者はどのようにソリューションを作成できますか?


A. Amazon SNS メッセージを発行する DynamoDB ストリームを有効にします。SNS メッセージから同期的に Lambda 関数をトリガーします。
B. SNS メッセージを発行する DynamoDB ストリームを有効にします。SNS メッセージから非同期的に Lambda 関数をトリガーします。
C. DynamoDB ストリームを有効にし、Lambda 関数をストリームから同期的にトリガーします。
D. DynamoDB ストリームを有効にし、ストリームから非同期で Lambda 関数をトリガーします。




正解:C

解説です。

A. Amazon SNS メッセージを発行する DynamoDB ストリームを有効にします。SNS メッセージから同期的に Lambda 関数をトリガーします。

  • 不正解: DynamoDBストリームは直接Amazon SNSにメッセージを発行することはできません。また、Lambda関数はSNSメッセージを受信した際には通常非同期的にトリガーされます。

B. SNS メッセージを発行する DynamoDB ストリームを有効にします。SNS メッセージから非同期的に Lambda 関数をトリガーします。

  • 不正解: この選択肢もAと同様、DynamoDBストリームは直接Amazon SNSにメッセージを発行することはできません。

C. DynamoDB ストリームを有効にし、Lambda 関数をストリームから同期的にトリガーします。

  • 正解: DynamoDB ストリームを有効にすることで、テーブルのアイテム変更がストリームにキャプチャされます。Lambda関数は、このストリームをトリガーとして設定でき、テーブルに変更があった際に同期的に実行されます。

D. DynamoDB ストリームを有効にし、ストリームから非同期で Lambda 関数をトリガーします。

  • 不正解: DynamoDBストリームを利用してLambda関数をトリガーする際、このプロセスは同期的に行われます。非同期的なトリガーはこのケースでは適用されません。

正解はCで、DynamoDB ストリームを有効にし、ストリームから同期的にLambda関数をトリガーすることで、開発者は求めているソリューションを作成できます。


2.

AWS Elastic Beanstalk にデプロイされたアプリケーションでは、新しいアプリケーション バージョンのデプロイ中にエラー率が増加し、ユーザーのサービスが低下します。開発チームは、これは展開段階で容量が減少したためだと考えています。チームは、環境のデプロイ ポリシー構成を、既存のインスタンスを使用しながらデプロイ中に全容量を維持するオプションに変更したいと考えています。
既存のインスタンスを使用しながら、これらの要件を満たすデプロイ ポリシーはどれですか?


A. 一斉に
B. ローリング
C. 追加バッチでローリング
D. 不変



正解:D

を解説します。

A. 一斉に (All at once)

  • 不正解: このデプロイポリシーでは、全てのインスタンスに新しいバージョンが一度にデプロイされます。この方法は最も速いが、デプロイ中はアプリケーションが一時的に利用できなくなる可能性があります。容量の低下を防ぐための選択肢ではありません。

B. ローリング (Rolling)

  • 不正解: ローリングデプロイでは、インスタンスを一つずつ更新していきます。しかし、この方法では一時的に利用可能なインスタンスの数が減るため、容量が減少することになります。

C. 追加バッチでローリング (Rolling with additional batch)

  • 不正解: このオプションはローリングデプロイに似ていますが、追加のバッチ(インスタンス)を使用して、デプロイ中も全容量を維持することができます。しかし、既存のインスタンスを使用しない点で要件を満たしません。

D. 不変 (Immutable)

  • 正解: 不変デプロイポリシーでは、新しいインスタンスが起動され、そこに新しいバージョンがデプロイされます。既存のインスタンスは変更されずに残ります。これにより、デプロイ中も既存のインスタンスを使用しつつ、全容量を維持することができます。このオプションが要件を満たします。


3.

企業は、Amazon API Gateway と API Gateway のネイティブ API キー検証を使用して REST サービスを維持しています。同社は最近、ユーザーがサービスにサインアップできる新しい登録ページを立ち上げました。登録ページは、CreateApiKey を使用して新しい API キーを作成し、新しいキーをユーザーに送信します。
ユーザーがこのキーを使用して API を呼び出そうとすると、ユーザーは 403 Forbidden エラーを受け取ります。既存のユーザーは影響を受けず、引き続き API を呼び出すことができます。
これらの新しいユーザーに API へのアクセスを許可するコードの更新は何ですか?


A. createDeployment メソッドを呼び出して、API を再デプロイし、新しく作成された API キーを含める必要があります。
B. updateAuthorizer メソッドを呼び出して、API のオーソライザーを更新し、新しく作成された API キーを含める必要があります。
C. importApiKeys メソッドを呼び出して、新しく作成されたすべての API キーを API の現在のステージにインポートする必要があります。
D. createUsagePlanKey メソッドを呼び出して、新しく作成された API キーを正しい使用プランに関連付ける必要があります。



正解:A

解説します。

A. createDeployment メソッドを呼び出して、API を再デプロイし、新しく作成された API キーを含める必要があります。

  • 不正解: createDeployment メソッドはAPIを再デプロイするために使用されますが、APIキーを含めるためには適切ではありません。APIキーはデプロイメントとは独立して管理されるため、この方法は問題の解決にはなりません。

B. updateAuthorizer メソッドを呼び出して、API のオーソライザーを更新し、新しく作成された API キーを含める必要があります。

  • 不正解: updateAuthorizer メソッドはオーソライザーの設定を更新するために使用されます。しかし、APIキーの問題はオーソライザーとは直接関連していないため、この方法は適切ではありません。

C. importApiKeys メソッドを呼び出して、新しく作成されたすべての API キーを API の現在のステージにインポートする必要があります。

  • 不正解: importApiKeys メソッドは一括でAPIキーをインポートするために使用されますが、新しいキーを特定の使用プランに関連付けるためには適切ではありません。キーが使用プランに関連付けられていないと、キーは機能しません。

D. createUsagePlanKey メソッドを呼び出して、新しく作成された API キーを正しい使用プランに関連付ける必要があります。

  • 正解: createUsagePlanKey メソッドは、APIキーを使用プランに関連付けるために使用されます。新しいAPIキーが403 Forbiddenエラーを引き起こしている場合、そのキーが適切な使用プランに関連付けられていない可能性が高いです。したがって、このメソッドを使用してキーを使用プランに関連付けることで問題が解決する可能性があります。


4.

AWS Lambda 関数は、VPC 内の Amazon RDS MySQL データベースからデータを読み取り、さらにインターネット経由でパブリック エンドポイントに到達して追加データを取得する必要があります。
関数が RDS リソースとパブリック エンドポイントの両方にアクセスできるようにするには、どの手順を実行する必要がありますか? (2 つ選択してください。)


A. Lambda 関数のデフォルト設定を変更して、Amazon VPC プライベートサブネットに関連付けます。
B. デフォルトのネットワーク アクセス制御リストを変更して、アウトバウンド トラフィックを許可します。
C. VPC に NAT ゲートウェイを追加します。
D. 環境変数を Lambda 関数に追加して、送信インターネット アクセスを許可します。
E. Lambda 関数のデフォルト設定を変更して、VPC パブリックサブネットに関連付けます。



正解:A,C
解説します。

A. Lambda 関数のデフォルト設定を変更して、Amazon VPC プライベートサブネットに関連付けます。

  • 正解: プライベートサブネットにLambda関数を関連付けることで、VPC内のRDSインスタンスへのアクセスが可能になります。これは、Lambda関数がVPCリソースにアクセスするための一般的な手法です。

B. デフォルトのネットワーク アクセス制御リストを変更して、アウトバウンド トラフィックを許可します。

  • 不正解: ネットワークアクセス制御リスト(NACL)はサブネットレベルでトラフィックを制御しますが、Lambda関数がインターネットにアクセスするための主要な方法ではありません。また、デフォルトのNACLは通常、アウトバウンドトラフィックを許可しています。

C. VPC に NAT ゲートウェイを追加します。

  • 正解: プライベートサブネット内のリソースがインターネットにアクセスするためには、NATゲートウェイが必要です。この設定により、Lambda関数はVPC内のリソースにアクセスしつつ、インターネット経由で外部リソースにもアクセスできるようになります。

D. 環境変数を Lambda 関数に追加して、送信インターネット アクセスを許可します。

  • 不正解: Lambda関数の環境変数は、インターネットアクセスを制御するものではありません。環境変数は通常、設定パラメーターや秘密情報を格納するために使用されます。

E. Lambda 関数のデフォルト設定を変更して、VPC パブリックサブネットに関連付けます。

  • 不正解: パブリックサブネットにLambda関数を関連付けると、インターネットに直接アクセスできるようになりますが、VPC内のRDSインスタンスにアクセスするのが難しくなる可能性があります。セキュリティ上の観点からも、プライベートサブネットの使用が推奨されます。

したがって、正解はA「Lambda 関数のデフォルト設定を変更して、Amazon VPC プライベートサブネットに関連付けます」とC「VPC に NAT ゲートウェイを追加します」です。これにより、Lambda関数はVPC内のRDSインスタンスにアクセスしつつ、インターネット経由で外部リソースにもアクセスできるようになります。


5.

開発者は、アプリケーションによって Amazon S3 バケットにアップロードされる新しいオブジェクトを暗号化したいと考えています。このプロセス中に誰がキーを使用したかの監査証跡が必要です。アプリケーションのパフォーマンスに変化はありません。
これらの要件を満たす暗号化のタイプはどれですか?


A. AWS KMS で管理されたキーによるサーバー側の暗号化
B. AWS KMS で管理されたキーを使用したクライアント側の暗号化
C. S3 マネージド キーを使用したサーバー側の暗号化
D. クライアント側の対称マスター キーを使用したクライアント側の暗号化



正解:C
解説します。


この質問は、Amazon S3バケットにアップロードされる新しいオブジェクトを暗号化する方法について尋ねています。暗号化のプロセス中にキーの使用を監査する必要があり、アプリケーションのパフォーマンスに影響を与えてはなりません。以下の選択肢を説明します。

A. AWS KMS で管理されたキーによるサーバー側の暗号化

  • 不正解: AWS KMS(Key Management Service)で管理されたキーを使用するサーバー側の暗号化(SSE-KMS)は、監査証跡とキーの管理に役立ちますが、S3マネージドキーに比べてわずかなパフォーマンスのオーバーヘッドがあります。

B. AWS KMS で管理されたキーを使用したクライアント側の暗号化

  • 不正解: クライアント側の暗号化は、データがS3にアップロードされる前に、クライアント側でデータを暗号化します。これはキーの監査証跡を提供しますが、クライアント側での暗号化/復号化処理によりパフォーマンスに影響を与える可能性があります。

C. S3 マネージド キーを使用したサーバー側の暗号化

  • 正解: S3マネージドキー(SSE-S3)によるサーバー側の暗号化は、Amazon S3が管理するキーを使用してオブジェクトを暗号化します。これは自動的に行われ、キーの管理や監査証跡も提供されます。また、パフォーマンスにほとんど影響を与えません。

D. クライアント側の対称マスター キーを使用したクライアント側の暗号化

  • 不正解: クライアント側での対称マスターキーを使用した暗号化は、ユーザーが独自のキーを管理し、クライアント側でデータを暗号化する方法です。これはキーの監査証跡を提供しませんし、パフォーマンスに影響を与える可能性があります。

したがって、正解はC「S3 マネージド キーを使用したサーバー側の暗号化」です。これにより、キーの使用に関する監査証跡が提供され、アプリケーションのパフォーマンスに影響を与えることなくオブジェクトを暗号化できます。


6.

開発者は、複数のAWSサービスを使用してサーバーレスアプリケーションを作成しました。ビジネスロジックは、サードパーティライブラリに依存するLambda関数として記述されています。Lambda関数のエンドポイントは、AmazonAPIGatewayを使用して公開されます。Lambda関数は、AmazonDynamoDBに情報を書き込みます。
開発者はアプリケーションをデプロイする準備ができていますが、ロールバックする機能が必要です。これらの要件に基づいて、この展開をどのように自動化できますか?
A. Amazon Lambda APIオペレーションを使用してデプロイし、デプロイパッケージを提供してLambda関数を作成します。
B. AWS CloudFormationテンプレートを使用し、CloudFormation構文を使用してテンプレートにLambda関数リソースを定義します。
C. AWS CloudFormationテンプレートのサーバーレスアプリケーションモデルに準拠した構文を使用して、Lambda関数リソースを定義します。
D. AWSCLIを使用してアプリケーションをパッケージ化およびデプロイするbashスクリプトを作成します。



正解:C
解説:
A. Amazon Lambda APIオペレーションを使用してデプロイすることでLambda関数の管理はできますが、ロールバック機能の実装は自己管理する必要があります。

B. AWS CloudFormationテンプレートを使用することで、インフラストラクチャのコード化が可能で、バージョン管理によるロールバックも実現できます。ただし、Lambda関数だけでなく、他のAWSリソースも含めて管理することになります。

C. AWS CloudFormationのサーバーレスアプリケーションモデル(SAM)は、サーバーレスアプリケーションのデプロイと管理を簡単にするためのフレームワークで、Lambda関数などのリソースを簡単に定義でき、バージョン管理によるロールバックもサポートしています。

D. AWS CLIを使用してデプロイすることも可能ですが、ロールバックの機能を実装するには追加のスクリプトやツールが必要です。


7.
ある開発チームが、AWS上で新しいウェブアプリケーションを開発しています。このアプリケーションは、大量の画像ファイルを収集し、それらをリアルタイムで解析して特定の情報を抽出する必要があります。チームは、画像ファイルのアップロード、ストレージ、および解析を自動化したいと考えています。この要件を満たすのに最適なAWSサービスの組み合わせはどれですか?

A. Amazon S3 + AWS Lambda + Amazon Rekognition
B. Amazon EBS + Amazon EC2 + AWS DeepLens
C. Amazon S3 + Amazon EC2 + Amazon Machine Learning
D. Amazon DynamoDB + AWS Lambda + Amazon SageMaker


正解: A. Amazon S3 + AWS Lambda + Amazon Rekognition

解説:
A. Amazon S3は、大量のファイルストレージに最適なスケーラブルなオブジェクトストレージサービスです。AWS Lambdaは、イベントに基づいた自動化されたコンピューティングサービスを提供し、Amazon S3に画像がアップロードされるとトリガーされることができます。Amazon Rekognitionは、画像解析を簡単にするための深層学習に基づく画像認識サービスです。この組み合わせは、大量の画像ファイルの収集、ストレージ、およびリアルタイムでの解析と情報抽出の要件を満たします。

B. Amazon EBSとAmazon EC2は、画像ファイルのアップロードやストレージに使用できますが、リアルタイム解析や自動化にはAWS LambdaやAmazon Rekognitionのようなサービスが適しています。AWS DeepLensは、ディープラーニングプロジェクトに特化したビデオカメラであり、このシナリオの主要な要件とは異なります。

C. Amazon S3とAmazon EC2は、ファイルのストレージと汎用コンピューティングに適していますが、Amazon Machine Learningは古いサービスであり、Amazon Rekognitionのように画像解析に特化しているわけではありません。

D. Amazon DynamoDBは、キーバリューおよびドキュメントデータストアに適したフルマネージドなNoSQLデータベースサービスですが、画像ファイルのストレージには最適ではありません。AWS LambdaとAmazon SageMakerは、それぞれサーバーレスコンピューティングと機械学習モデルのビルドおよびトレーニングに適していますが、画像解析の自動化にはAmazon Rekognitionの方が直接的に適しています。

このシナリオでは、画像ファイルの自動アップロード、ストレージ、およびリアルタイム解析の要件を満たすために、Amazon S3、AWS Lambda、およびAmazon Rekognitionの組み合わせが最も適しています。


8.

開発者は、Amazon ECS を使用して AWS Fargate で実行されているアプリケーションをデプロイする必要があります。アプリケーションには、アプリケーションを初期化するためにコンテナーに渡す必要がある環境変数があります。環境変数をコンテナーに渡す方法は?


A. タスク定義内の entrypoint パラメーターの下に環境変数を含む配列を定義します。
B. サービス定義内の entryPoint パラメーターの下に、環境変数を含む配列で定義します。
C. タスク定義内の環境パラメーターの下に、環境変数を含む配列を定義します。
D. サービス定義内の環境パラメーターの下に環境変数を含む配列を定義します。



正解:C

解説します。
A. タスク定義内の entrypoint パラメーターの下に環境変数を含む配列を定義します。

  • 不正解: entrypoint パラメーターは、コンテナが起動する際に実行するコマンドを指定するために使用されます。環境変数を設定するためには適していません。

B. サービス定義内の entryPoint パラメーターの下に、環境変数を含む配列で定義します。

  • 不正解: サービス定義は、タスクのデプロイ方法やスケーリングに関する設定を含みますが、環境変数の設定には使用されません。また、entryPoint パラメーターはコンテナの起動コマンドを指定するものであり、環境変数とは異なります。

C. タスク定義内の環境パラメーターの下に、環境変数を含む配列を定義します。

  • 正解: タスク定義には、コンテナに関する設定が含まれます。この中の environment パラメーターを使用して、コンテナに環境変数を渡すことができます。これはコンテナに渡す必要がある環境変数を設定するための適切な方法です。

D. サービス定義内の環境パラメーターの下に環境変数を含む配列を定義します。

  • 不正解: サービス定義は環境変数を設定するためには使用されません。サービス定義はタスクのデプロイ方法やスケーリングに関する設定を含みますが、環境変数の設定には関与しません。

したがって、正解はC「タスク定義内の環境パラメーターの下に、環境変数を含む配列を定義します」です。これにより、アプリケーションを初期化するために必要な環境変数がコンテナに適切に渡されます。


9.

ある会社には、Amazon API Gateway といくつかの AWS Lambda 関数で構成される REST アプリケーションがあります。開発者は、API Gateway の HTTP 応答エラー率が予期せず増加したというアラートに対応しています。開発者は、どの Lambda 関数が誤動作しているかを特定する必要があります。
開発者が遅延を最小限に抑えながらこの決定を下すのに役立つ方法はどれですか?


A. API Gateway および Lambda 実行ログに対して Amazon Athena クエリを実行します。
B. Amazon CloudWatch Events から API Gateway と Lambda の実行ログをダウンロードし、それらに対して行ごとの検索を実行します。
C. API Gateway および Lambda 実行ログに対して Amazon CloudWatch Logs Insights クエリを実行します。
D. Amazon S3 から API Gateway と Lambda の実行ログをダウンロードし、それらに対して行ごとの検索を実行します。




正解:C

解説します。
A. API Gateway および Lambda 実行ログに対して Amazon Athena クエリを実行します。

  • 不正解: Amazon Athenaは大量のデータセットに対する複雑なクエリを実行するためのインタラクティブなクエリサービスですが、ログデータに対するリアルタイムの問題解決には適していません。また、API GatewayやLambdaの実行ログを直接クエリするためにAthenaを使用することは一般的ではありません。

B. Amazon CloudWatch Events から API Gateway と Lambda の実行ログをダウンロードし、それらに対して行ごとの検索を実行します。

  • 不正解: Amazon CloudWatch Eventsはイベントのルーティングに使用されますが、ログデータのダウンロードには適していません。また、ログファイルをダウンロードして手動で行ごとの検索を行うのは非効率的です。

C. API Gateway および Lambda 実行ログに対して Amazon CloudWatch Logs Insights クエリを実行します。

  • 正解: Amazon CloudWatch Logs Insightsは、CloudWatch Logsに格納されたログデータを迅速に検索し分析するためのツールです。API GatewayとLambdaの実行ログに対して効率的にクエリを実行し、エラーの原因を特定するのに適しています。

D. Amazon S3 から API Gateway と Lambda の実行ログをダウンロードし、それらに対して行ごとの検索を実行します。

  • 不正解: API GatewayとLambdaのログは通常、Amazon S3に直接格納されません(Amazon CloudWatch Logsが一般的です)。また、ログファイルをダウンロードして手動で検索するのは効率的ではありません。

したがって、正解はC「API Gateway および Lambda 実行ログに対して Amazon CloudWatch Logs Insights クエリを実行します」です。これにより、開発者は迅速に問題を特定し、遅延を最小限に抑えることができます。


10.

開発者は、静的ウェブサイトのホスティングに Amazon S3 バケットを使用します。開発者は、コード用に 1 つの S3 バケットを作成し、画像やビデオ ファイルなどのアセット用に別の S3 バケットを作成します。ユーザーがコード バケットからアセット バケットにアクセスしようとすると、アクセスが拒否され、Web サイト アプリケーションに 403 エラーが表示される 開発者はこの問題をどのように解決する必要がありますか?


A. アセット バケットのバケット ポリシーを編集して、すべてのプリンシパルへのアクセスを開きます
B. IAM ロールを作成し、それをアセット バケットに適用して、コード バケットにアクセス権を付与します。
C. 静的ウェブサイト ホスティングの代わりに AWS Lambda 関数を使用するようにコード バケットを変更します。
D. アセット バケットのクロス オリジン リソース共有 (CORS) 構成を編集して、任意のオリジンがアセットにアクセスできるようにします。



正解:D

解説します。
A. アセット バケットのバケット ポリシーを編集して、すべてのプリンシパルへのアクセスを開きます

  • 不正解: この方法では、すべてのプリンシパル(ユーザーやサービス)に対してアセットバケットへのアクセスを許可します。これはセキュリティ上のリスクを伴うため、推奨される解決策ではありません。

B. IAM ロールを作成し、それをアセット バケットに適用して、コード バケットにアクセス権を付与します。

  • 不正解: IAMロールはAWSリソースへのアクセスを管理するために使用されますが、この場合、問題はウェブサイトのユーザーがアセットバケットにアクセスできないことであり、IAMロールを使用するのは適切な解決策ではありません。

C. 静的ウェブサイト ホスティングの代わりに AWS Lambda 関数を使用するようにコード バケットを変更します。

  • 不正解: AWS Lambdaを使用することは、静的ウェブサイトのホスティングとは異なるアプローチであり、この問題の解決には直接的ではありません。また、Lambdaを使用することでコストが増加する可能性もあります。

D. アセット バケットのクロス オリジン リソース共有 (CORS) 構成を編集して、任意のオリジンがアセットにアクセスできるようにします。

  • 正解: CORS(クロスオリジンリソース共有)は、異なるオリジン(異なるドメイン、プロトコル、またはポート)を持つウェブページからリソースにアクセスする際の制約を緩和する仕組みです。この場合、コードバケットからアセットバケットへのアクセスは、異なるオリジンからのアクセスと見なされる可能性があります。したがって、アセットバケットのCORS設定を変更し、適切なオリジンがアセットにアクセスできるようにするのが適切な解決策です。

したがって、正解はD「アセット バケットのクロス オリジン リソース共有 (CORS) 構成を編集して、任意のオリジンがアセットにアクセスできるようにします」です。

ここから先は

137,438字
この記事のみ ¥ 2,000

この記事が気に入ったらサポートをしてみませんか?