難易度は Level 1(やさしめ)〜Level 5(難関) の5段階です。
AWS DVAのサンプル問題(本番形式・解説付き)
AWS DVA(Amazon Web Services・AWS Certified Developer – Associate(DVA-C02))の出題形式を、実際の問題で確かめられます。ここに掲載する5問は、無料の会員登録で解ける模試 第1回(62問)の冒頭から抜粋したオリジナル問題です。当サイトは全432問を本番CBT準拠の形式で収録しており、この5問はそのごく一部にあたります。
設問1
Amazon S3にオブジェクトがアップロードされたことをトリガーに、サムネイル画像を生成するAWS Lambda関数を起動したい。このS3イベント通知によるLambdaの呼び出し方式として最も適切なものはどれか。
- S3がイベントをLambdaに引き渡した時点で処理を終え、Lambda側が内部でイベントをキューに入れて非同期に処理する非同期呼び出し(正解)
- 呼び出し元がLambdaの処理完了を待ち、関数が返した結果をその場でレスポンスとして受け取る同期呼び出しであり、処理中に発生した例外もレスポンスとして呼び出し元へ伝わるため、呼び出し側で再試行するかどうかを判断できる
- Lambda関数の側がAmazon S3を定期的にポーリングして新規オブジェクトの有無を確認する呼び出しで、Lambdaサービスが一定間隔でバケットの一覧を取得し、前回からの差分が見つかった時点で関数の実行環境を起動する
- API Gatewayを経由しなければ発生しない呼び出しタイプ(S3のイベント通知はいったんAPI GatewayのエンドポイントへHTTPリクエストとして送られ、そこで統合設定に従ってLambdaが呼び出される経路をたどる)
解説
S3のイベント通知はLambdaを非同期呼び出し(Event呼び出し)で起動します。S3側はLambdaの処理完了を待たず、Lambda側は受け取ったイベントを内部キューで管理し、失敗時は自動的に再試行します。
他の選択肢が誤りである理由
- 「呼び出し元がLambdaの処理完了を待ち、関数が返した結果をその場でレスポンスとして受け取る同期呼び出しであり、処理中に発生した例外もレスポンスとして呼び出し元へ伝わるため、呼び出し側で再試行するかどうかを判断できる」S3イベント通知はS3がLambdaの処理完了を待つ同期呼び出しではありません。呼び出し元が結果を待つのはAPI GatewayやSDKからの直接呼び出しなど別のケースです。
- 「Lambda関数の側がAmazon S3を定期的にポーリングして新規オブジェクトの有無を確認する呼び出しで、Lambdaサービスが一定間隔でバケットの一覧を取得し、前回からの差分が見つかった時点で関数の実行環境を起動する」S3自体が定期的にポーリングされる対象になるわけではありません。ポーリングベースの呼び出しはSQSやDynamoDB StreamsなどLambda側がイベントソースを監視する仕組みで使われます。
- 「API Gatewayを経由しなければ発生しない呼び出しタイプ(S3のイベント通知はいったんAPI GatewayのエンドポイントへHTTPリクエストとして送られ、そこで統合設定に従ってLambdaが呼び出される経路をたどる)」S3イベント通知はAPI Gatewayを経由せず、S3サービスが直接Lambdaを起動します。呼び出しタイプの分類とAPI Gatewayの有無は無関係です。
設問2
あるIAMユーザーに、AdministratorAccess相当の許可を与えるIDベースポリシーがアタッチされている一方、同じユーザーに対して特定のS3バケットへのs3:DeleteObjectを明示的に拒否するポリシーも別途アタッチされている。このユーザーが当該バケットのオブジェクトを削除しようとした場合の結果として正しいものはどれか。
- AdministratorAccessが優先されるため削除できる
- 明示的なDenyが常にAllowより優先されるため削除できない(正解)
- 後から評価されたポリシーが優先されるため、アタッチ順に依存する
- 両方のポリシーが競合しているためAWSがランダムに結果を決定する
解説
IAMのポリシー評価では、明示的なDeny(拒否)がAllow(許可)よりも常に優先されます。どれだけ広い許可があっても、明示的な拒否が1つでも存在すれば、その操作は拒否されます。
他の選択肢が誤りである理由
- 「AdministratorAccessが優先されるため削除できる」IAMの評価ロジックでは、どれほど広範な許可ポリシーであっても明示的なDenyには勝てません。
- 「後から評価されたポリシーが優先されるため、アタッチ順に依存する」IAMのポリシー評価はアタッチ順序に依存しません。すべてのポリシーを集約したうえで明示的Denyを最優先で適用します。
- 「両方のポリシーが競合しているためAWSがランダムに結果を決定する」IAMのポリシー評価は決定的なロジックに基づいており、ランダムに決定されることはありません。
設問3
AWS CodeCommitの説明として最も適切なものはどれか。
- パブリックインターネット上で誰でも認証なしに閲覧できるオープンソースのGitホスティングサービスである
- オンプレミスのSVNリポジトリをそのままAWS上で稼働させるサービスである
- IAMによる認証・アクセス制御のもとでプライベートなGitリポジトリをホストするフルマネージド型サービスである(正解)
- コンテナイメージの保管・配布に特化したレジストリサービスである
解説
CodeCommitはAWSが管理するプライベートGitリポジトリのフルマネージドサービスで、アクセスはIAMのユーザー・ロールを通じて制御されます。
他の選択肢が誤りである理由
- 「パブリックインターネット上で誰でも認証なしに閲覧できるオープンソースのGitホスティングサービスである」CodeCommitはIAM認証が必須のプライベートリポジトリサービスで、認証なしの公開閲覧はできません。
- 「オンプレミスのSVNリポジトリをそのままAWS上で稼働させるサービスである」CodeCommitが扱うのはGitリポジトリであり、SVN(Subversion)をそのまま稼働させる機能ではありません。
- 「コンテナイメージの保管・配布に特化したレジストリサービスである」コンテナイメージの保管・配布はAmazon ECRの役割で、CodeCommitはソースコードのGitリポジトリを扱うサービスです。
設問4
EC2インスタンスのメモリ使用率(メモリ使用率%)を監視したい。AWSの基本サービスとして追加設定なしで最初から提供されるEC2の標準メトリクスに、メモリ使用率は含まれているか。正しい記述はどれか。
- 含まれている。追加設定なしでCPUUtilizationやNetworkInと同様に、ハイパーバイザーレベルで自動収集される
- 含まれているが、有効化にはEC2の詳細モニタリング(1分間隔への短縮)を有効にするだけでよく、追加のエージェント導入は不要
- 含まれていない。X-Ray SDKを組み込むことで自動的に取得できる
- 含まれていない。CloudWatchエージェントをインスタンスにインストールし、カスタムメトリクスとして送信する必要がある(正解)
解説
EC2の標準メトリクス(ハイパーバイザーレベルで取得可能なCPU・ネットワーク・ディスクI/O等)にはゲストOS内部のメモリ使用率は含まれません。メモリ使用率を取得するにはCloudWatchエージェントをインストールし、カスタムメトリクスとして送信する必要があります。
他の選択肢が誤りである理由
- 「含まれている。追加設定なしでCPUUtilizationやNetworkInと同様に、ハイパーバイザーレベルで自動収集される」メモリ使用率はゲストOS内部の情報であり、ハイパーバイザー側から取得する標準メトリクスには含まれず、自動収集はされません。
- 「含まれているが、有効化にはEC2の詳細モニタリング(1分間隔への短縮)を有効にするだけでよく、追加のエージェント導入は不要」詳細モニタリングは標準メトリクスの取得間隔を1分に短縮する機能であり、新たな指標としてメモリ使用率を追加するものではありません。
- 「含まれていない。X-Ray SDKを組み込むことで自動的に取得できる」X-Rayはアプリケーションの分散トレーシングのためのサービスであり、OSのメモリ使用率を収集する機能はありません。
設問5
Amazon SQSの標準キューをイベントソースとするLambda関数について、Lambdaサービスがメッセージを取得して関数を起動する仕組みを表す用語として最も適切なものはどれか。
- 非同期呼び出し(Event呼び出し)
- イベントソースマッピングによるポーリングベースの呼び出し(正解)
- 同期呼び出し(RequestResponse呼び出し)という分類名そのもの
- Lambda関数URLを経由した呼び出し
解説
SQSやDynamoDB Streams、Kinesis Data Streamsなどは、Lambdaサービス側がイベントソースマッピングを通じてポーリングし、取得したメッセージ(バッチ)をもとにLambda関数を起動します。Lambdaの呼び出し方式は同期・非同期・イベントソースマッピングの3つに大別され、SQSは3つ目に属します。
他の選択肢が誤りである理由
- 「非同期呼び出し(Event呼び出し)」SQSは非同期呼び出しには分類されません。非同期呼び出しはSNSやEventBridgeなど、呼び出し元が結果を待たずにイベントを渡すケースを指す分類です。
- 「同期呼び出し(RequestResponse呼び出し)という分類名そのもの」内部的にはポーリングで取得したバッチに対して同期的に関数が起動しますが、呼び出し方式の分類名としては「イベントソースマッピング」と呼ぶのが適切です。
- 「Lambda関数URLを経由した呼び出し」Lambda関数URLはHTTPSエンドポイント経由で直接Lambdaを呼び出す機能であり、SQSのポーリング処理とは別の仕組みです。
続きは、会員登録なしでそのまま50問解けます。採点と解説つきで、上と同じ本物の問題です。
登録なしで50問解く