DVA-C02(デベロッパー アソシエイト)の難易度・勉強法と演習問題150問【無料】
合格ライン 72% / 制限時間 130分 / 収録 150問(すべて無料・登録不要)
試験概要
AWS Certified Developer – Associate(DVA-C02)は、AWSを使ったアプリケーション開発・デプロイ・デバッグの実務力を問うアソシエイトレベルの認定試験だ。出題数は65問、試験時間は130分。合格スコアは1000点満点中720点で、100〜1000のスケールドスコアで報告される。受験料は150米ドル(日本円での金額は受験登録時のレートによる)。
試験は4つのドメインで構成される。「AWSサービスを使った開発」が32%、「セキュリティ」が26%、「デプロイ」が24%、「トラブルシューティングと最適化」が18%という配分だ。65問のうち15問はスコアに影響しない未採点問題で、どの問題がそれに当たるかは受験中にはわからない。
問われるのはAWSのサービスを「使いこなす」側の知識だ。Lambda・API Gateway・DynamoDB・SQS・SNS・Kinesis・CodePipeline・CodeDeployといったサービスが出題の中心になる。アーキテクチャを設計するSolutions Architect(SAA)とは対象領域が異なり、SDKの使い方・IAMの権限設計・CI/CDパイプラインの構成・デバッグの手順など、開発者として日常的に触れる内容が多い。
難易度
SAAと比べると出題範囲は狭い代わりに深い。SAAが「どのサービスを選ぶか」を問うのに対して、DVA-C02は「そのサービスをどう設定し、どうデバッグするか」まで踏み込んでくる。たとえばDynamoDBであれば、テーブル設計の概念だけでなく、パーティションキーの選び方やスロットリングの対処法まで問われることがある。
AWSに触れたことがあるエンジニアであれば、SAAよりDVA-C02のほうが感覚的に近い問題が多いと感じるはずだ。逆に、インフラ寄りのバックグラウンドを持つ人には、DynamoDBやSQSなどのサービスの細かい挙動が盲点になりやすい。どちらが難しいかは経験領域による、というのが正直なところだ。
つまずきやすいのはサーバーレス周辺(Lambda・API Gateway・Cognito)とメッセージング(SQS・SNS・Kinesisの使い分け)の2領域。どちらも「名前は知っている」だけでは問題が解けない。ElastiCacheのキャッシング戦略や、X-Rayを使ったデバッグ手順も出題されることがあるため、実際に手を動かして試した経験があると強い。
勉強法
目安の学習期間はAWS実務未経験なら2〜3か月、開発経験がありAWSサービスをある程度触ったことがあれば1〜1.5か月。SAAを先に取得している場合、共通する概念(IAM・S3・VPC基礎など)は省略できるため、純粋な上乗せ学習は1か月程度で済む人も多い。
インプットはUdemyの講座が実績面では安定している。Stephane MaatekのDVA-C02コースは英語だが日本語字幕があり、ハンズオンも充実している。コードを実際に書いてLambdaをデプロイしたり、SQSキューにメッセージを送ったりする経験が、問題の選択肢を絞るときの直感につながる。
模擬問題は公式の「AWS Certified Developer – Associate Official Practice Question Set」(無料)から始めて、その後Tutorials DojoやJon Bonsoのセットで補強する流れが多い。間違えた問題は正答を暗記するのではなく、AWSドキュメントの該当ページを30秒でも見てから次へ進む習慣がつくと、類似問題でも対応できるようになる。
試験本番は130分、65問。1問あたり2分の計算だが、選択肢が多い問題でも問題文が短いものが多く、時間切れになるケースは少ない。むしろ迷いやすいのは、どれも正しそうに見える選択肢の中から「最も適切なもの」を選ぶ場面だ。「AWS的に正しいかどうか」より「このシナリオの制約に合うかどうか」で絞る習慣を事前につけておくと、当日の迷いが減る。
よくある質問
試験は何問で何分ですか?
65問、130分。合格スコアは1000点満点中720点。65問のうち15問は採点対象外の未採点問題で、どの問題がそれに当たるかは受験中にはわからない。
受験料はいくらですか?
150米ドル。日本円での請求額は決済時の為替レートに依存する。Pearson VUEまたはPSI経由で申し込む。
SAAを先に取ってからDVA-C02を受けるべきですか?
必須ではないが、SAAを先に取ると共通領域(IAM・S3・VPC基礎)を省略できる。ただし開発経験が豊富であればDVA-C02から始めても十分合格できる。どちらを先にするかは自分の経験領域で判断してよい。
不合格になったら、いつから再受験できますか?
不合格の翌日から14日後以降に再受験登録が可能。再受験料は全額必要で、受験回数の上限はない。
認定の有効期限はありますか?
取得から3年間有効。期限が近づいたら再認定試験(同じ試験か、上位のDevOps Engineerプロフェッショナル試験への合格)で更新できる。AzureのようなMicrosoft系と異なり、無料の更新アセスメントは用意されておらず、再受験が必要になる。
DVA-C02合格後はどの試験に進む人が多いですか?
SysOps Administrator(SOA)やSolutions Architect Associate(SAA)に横展開する人と、DevOps Engineer Professional(DOP)に上位進出する人に分かれる。DOPはDVA-C02の内容を多くカバーするため、DVA-C02取得直後に着手するのは自然な流れだ。
出題ドメイン構成(収録問題の内訳)
| ドメイン | 収録数 |
|---|---|
| 開発 | 48問(32%) |
| セキュリティ | 39問(26%) |
| デプロイ | 36問(24%) |
| トラブルシューティングと最適化 | 27問(18%) |
収録問題一覧(全150問・解説つき)
- あるスタートアップが、画像リサイズ処理をAWS Lambdaで実装した。開発者がLambda関数のハンドラコードを次のよ…
- ある金融系企業のLambda関数が、外部決済APIのシークレットキーを使用している。コンプライアンス要件として「シークレ…
- あるチームが同一ランタイム(Python 3.12)のLambda関数を複数本デプロイしており、各関数がそれぞれ pan…
- ある企業がLambdaで突発的なトラフィックスパイクに対応するシステムを運用している。平常時は1秒あたり10リクエスト程…
- ある金融サービス企業が、Lambdaを使ってオンプレミスのデータベース(プライベートサブネット内のRDS Postgre…
- あるEコマース企業が、注文確定時にSQSキューからLambdaを呼び出して在庫を更新するシステムを運用している。ネットワ…
- ある企業が、外部決済APIを呼び出すLambda関数をSQSイベントソースマッピングで起動している。決済APIの仕様とし…
- あるメディア企業がAPI GatewayのREST APIを使って動画メタデータのCRUD APIを公開している。フロン…
- ある企業が、API GatewayのREST APIにカスタムオーソライザー(Lambda Authorizer)を実装…
- あるチームが、API GatewayのREST APIでバックエンドのLambda関数への統合リクエストを設定している。…
- ある企業が、API GatewayのREST APIをモバイルアプリと社内管理ツールの両方に公開している。モバイルアプリ…
- あるエンタープライズ企業が、API GatewayのHTTP APIを使って社内のマイクロサービスを統合している。認証に…
- ある企業がAPI GatewayのREST APIとLambda関数を使ってポイント付与APIを運用している。このAPI…
- ある大規模なSaaSプロバイダーが、Lambda関数で10万種類のテナント設定をJSON形式(合計サイズ約800 MB)…
- ある企業がAPI GatewayのREST APIとLambdaで構成されたAPIを本番環境に運用している。新機能のデプ…
- ある企業が、Lambdaを使ったサーバーレスアーキテクチャでVPC内のElastiCache(Redis)クラスターにア…
- ある企業がAPI GatewayとLambdaで構成されたAPIを運用しており、Lambdaのコードの中でAPIレスポン…
- ある企業が、API GatewayのHTTP APIとLambda統合でREST APIを構築している。フロントエンドの…
- あるチームが、Lambdaのコールドスタートのレイテンシを改善しようとしている。現在のLambda関数はPython 3…
- ある企業が、API GatewayのREST APIを使って外部パートナーにAPIを提供している。以下の2つの要件を同時…
- あるチームが、Lambda関数でVPC内のRDS Aurora(PostgreSQL)に接続するアプリケーションを構築し…
- ある企業がAPI GatewayのREST APIを本番運用しており、以下の2つの問題が発生している。 問題1: 一部の…
- あるチームがAPI GatewayとLambdaで社内ツール向けのREST APIを構築している。このAPIをインターネ…
- あるスタートアップが、社内向けの軽量なWebhookエンドポイントをLambdaで実装したい。API Gatewayを使…
- あるEコマース企業が、商品カタログをDynamoDBに保存している。商品IDはランダムなUUID形式で、1日に数百万件の…
- あるスタートアップが、DynamoDBテーブルに対してアイテムの条件付き更新を実装しようとしている。在庫数が0より大きい…
- あるSaaS企業が、DynamoDBに大量のユーザーセッションデータを保存している。セッションは作成から24時間後に自動…
- あるニュースアプリが、SQSを使ってメッセージを処理している。Lambdaコンシューマーがメッセージを取得後、処理中にク…
- あるフィンテック企業が、DynamoDBで金融取引データを管理している。テーブルのパーティションキーはuserIdで、ソ…
- あるメディア企業が、DynamoDB Streamsを使ってコンテンツ変更イベントを別システムに連携している。Lambd…
- あるオンラインゲーム企業が、プレイヤーランキングをDynamoDBで管理している。パーティションキーはgameIdで、ソ…
- ある物流企業が、SQSキューを使って荷物追跡イベントを処理している。消費者LambdaがたびたびSQSメッセージの処理に…
- あるIoTプラットフォームが、多数のデバイスからセンサーデータをSNSトピックで受信し、複数の下流サービスに配信している…
- ある金融サービス企業が、Step Functionsを使って与信審査ワークフローを実装している。各ステップは外部APIを…
- あるEC企業が、EventBridgeルールを使ってS3バケットへのオブジェクトアップロードイベントを検知し、画像リサイ…
- あるスタートアップが、ElastiCache for Redisをデータベースキャッシュとして導入しようとしている。デー…
- あるマーケットプレイス企業が、DynamoDBを使って注文管理システムを構築している。注文処理では「在庫テーブルから在庫…
- あるグローバルゲーム会社が、DynamoDBとKinesis Data Streamsを組み合わせたリアルタイムランキン…
- ある医療記録管理企業が、Step FunctionsのStandard Workflowを使って患者データの変換・検証・…
- あるフィンテック企業が、DynamoDBで決済レコードを管理している。複数のマイクロサービスが同時に同じ決済レコードを更…
- ある広告テクノロジー企業が、リアルタイム入札システムをStep Functionsで実装している。数百万の入札リクエスト…
- あるスポーツデータ企業が、S3バケットに保存された試合動画ファイルを解析するパイプラインを構築している。S3にオブジェク…
- ある旅行予約プラットフォームが、DynamoDBで予約データを管理している。予約検索には「出発地と目的地の組み合わせで検…
- ある金融機関が、DynamoDB Streamsを使ったイベント駆動型の監査ログシステムを構築している。ストリームのLa…
- あるヘルスケア企業が、患者の検査結果ファイルがS3にアップロードされると自動で複数の処理(OCR変換・暗号化・通知メール…
- あるロジスティクス企業が、SQS FIFOキューを使って配送順序を保証した荷物追跡システムを運用している。スループットが…
- あるメディア配信企業が、ElastiCache for Redisを使って動画メタデータのキャッシュを運用している。キャ…
- あるEコマース企業が、商品データの更新があるたびにDynamoDBテーブルへの書き込みが発生する。このデータ変更を複数の…
- ある開発チームは EC2 インスタンス上で動作するアプリケーションから DynamoDB テーブルにアクセスする必要があ…
- ある企業のモバイルアプリは、ユーザーがサインアップ・サインインして独自の S3 バケットのオブジェクトにアクセスできる必…
- 開発者が Lambda 関数のコード内で外部 API の秘密鍵を管理したいと考えています。秘密鍵は 90 日ごとに自動ロ…
- ある企業は本番 AWS アカウント(Account A)のデータを、監査用アカウント(Account B)の Lambd…
- あるチームは KMS でデータキーを使ってアプリケーションデータを暗号化しています。大量のデータを効率的に暗号化するため…
- ある開発者が S3 バケットに保存される顧客データに対してサーバーサイド暗号化を設定しようとしています。「暗号化キーの管…
- ある企業は S3 バケットに保存された機密ファイルを外部のビジネスパートナーと一時的に共有する必要があります。ファイルへ…
- ある開発者は IAM ポリシーのデバッグをしています。対象ユーザーには以下の 2 つのポリシーがアタッチされています。④…
- あるスタートアップは SaaS アプリケーションのバックエンドで、ユーザーごとに異なる S3 パスへのアクセスを制御した…
- ある企業のアプリケーションは AWS KMS で暗号化された S3 オブジェクトを読み込む Lambda 関数を持ってい…
- あるチームは Cognito を使ったモバイルアプリを開発しています。アプリは Cognito ユーザープールでサインイ…
- ある企業のセキュリティ審査で、Lambda 関数が使用する IAM ロールに過剰な権限があると指摘されました。現在のロー…
- ある企業は STS の AssumeRole を使ってマルチアカウント環境でアクセス管理をしています。セキュリティチーム…
- あるチームは API Gateway + Lambda で構築した REST API に HTTPS を強制したいと考え…
- ある企業は Parameter Store を使って複数の Lambda 関数に共有設定値を提供しています。一部のパラメ…
- ある開発者は Cognito ユーザープールを使ったウェブアプリを構築しています。サインインページをゼロから実装する工数…
- ある企業は本番環境のデータベース接続文字列(ホスト名・ユーザー名・パスワード)を安全に管理したいと考えています。データベ…
- ある企業は CloudFront + S3 で静的ウェブサイトを提供しています。S3 バケットへの直接アクセスを禁止し、…
- ある開発者は STS の GetSessionToken を使ってコンソールに MFA を使用するスクリプトを作成してい…
- ある企業はマルチテナント SaaS アプリケーションを開発しています。各テナントのデータを DynamoDB テーブルに…
- ある開発者は CodePipeline から本番環境の CloudFormation スタックをデプロイしています。Co…
- ある企業は IAM ロールの Permission Boundary(アクセス許可境界)を活用したいと考えています。開発…
- ある企業は S3 に保存されたデータを KMS カスタマーマネージドキー(CMK)で暗号化しています。セキュリティ監査で…
- ある開発チームは新規プロジェクトの IAM ポリシーを設計しています。同一ポリシーを複数の IAM エンティティ(ユーザ…
- ある企業はモバイルアプリでユーザーが Google アカウントでサインインできる機能を実装しています。Google 認証…
- ある企業は AWS KMS のカスタマーマネージドキー(CMK)を使って S3 オブジェクトを暗号化しています。コンプラ…
- ある企業は S3 に保存する機密ファイルの暗号化キーを自社のオンプレミスキー管理システム(KMS)で管理することが義務付…
- ある開発者は AWS Systems Manager Parameter Store を使って設定値を管理しています。現…
- ある企業の Cognito ユーザープールでは、ユーザーサインアップ時に企業ドメイン(@example.com)のメール…
- ある開発チームは IAM ロールを使って S3 の署名付き URL(Presigned URL)を生成するサービスを構築…
- あるセキュリティエンジニアは IAM リソースベースポリシー(Resource-Based Policy)とアイデンティ…
- ある企業は AWS KMS の CMK を使用しています。外部の監査会社に対して、特定の期間(30 日間)だけ対象 CM…
- ある企業は Cognito ID プールを使って認証済みユーザーと未認証(ゲスト)ユーザーの両方に AWS リソースへの…
- ある開発チームは AWS STS を使って一時認証情報を取得する複数のユースケースを検討しています。「IAM ユーザーが…
- ある企業は Cognito ユーザープールの Lambda トリガーを活用して、サインアップおよびサインイン時のカスタム…
- ある企業のセキュリティ担当者は IAM ポリシーの Condition 要素を活用して精緻なアクセス制御を実装したいと考…
- ある企業はグローバルに展開するアプリケーションで、複数のリージョンから KMS で暗号化されたデータを読み書きしています…
- ある開発チームは Lambda 関数から Secrets Manager のシークレットを取得するコードを実装しています…
- ある企業は S3 バケットへの PUT リクエスト時に、アップロードされるオブジェクトに対して SSE-KMS 暗号化を…
- あるチームが AWS CodeDeploy を使ってEC2インスタンスにアプリケーションをデプロイしている。デプロイ設定…
- あるスタートアップ企業が AWS Elastic Beanstalk を使ってWebアプリケーションを運用している。開発…
- ある企業がAWS CodeBuildを使ってアプリケーションのビルドパイプラインを構築している。ビルドプロジェクトのソー…
- あるチームがAWS Lambda関数の新バージョンをデプロイし、本番トラフィックの10%だけを新バージョンに送り、問題が…
- あるチームがAWS SAMを使ってサーバーレスアプリケーションを管理している。初回デプロイ時にS3バケットの作成やIAM…
- ある企業のDevOpsチームがAWS CodeDeployを使ってEC2フリートへのデプロイを管理している。デプロイ中に…
- あるチームがAWS CodePipelineを使ってCI/CDパイプラインを構築している。GitHubにコードをプッシュ…
- ある企業がAWS CloudFormationを使ってインフラを管理している。本番スタックの設定変更を適用する前に、どの…
- あるチームがAWS CodeDeployを使ってAmazon ECSサービスへのBlue/Greenデプロイを実装しよう…
- ある企業がAWS SAMを使ってLambda関数のデプロイを管理している。新しいバージョンのデプロイ時に、1分ごとに10…
- あるチームがAWS CodeBuildのbuildspec.ymlを作成している。ビルドステージで環境変数として使うデー…
- ある企業がAWS CloudFormationスタックを使って複数のAWSアカウントにわたって標準化されたVPCとセキュ…
- あるチームがAWS CodePipelineで構築したCI/CDパイプラインを改善しようとしている。ビルドフェーズでDo…
- ある企業がElastic Beanstalkで運用するWebアプリケーションの新バージョンをデプロイしようとしている。本…
- ある開発チームがAWS Lambda関数のバージョン管理を改善しようとしている。現在は関数名を直接参照してデプロイしてい…
- ある企業がAWS CodeDeployを使ってEC2フリート100台にアプリケーションをデプロイしている。デプロイ中にア…
- ある企業がAWS CloudFormationのスタックセット(StackSets)を使って、AWS Organizat…
- ある企業がAWS SAMテンプレートを使ってAPI Gateway + Lambda構成のサーバーレスAPIをデプロイし…
- ある企業がAmazon ECSのFargateクラスターにマイクロサービスをデプロイしている。新しいタスク定義をデプロイ…
- ある企業がAWS CodeArtifactを使ってプライベートnpmパッケージを管理している。CI/CDパイプラインのC…
- あるチームがAWS CodeBuildのbuildspec.ymlを設計している。ビルドフェーズの流れとして、依存関係の…
- ある企業がAWS CodeDeployを使ってEC2インスタンスにアプリケーションをデプロイしている。デプロイ時に既存プ…
- あるチームがAWS Lambda関数を新バージョンに更新した後、関数の動作を確認するためにバージョン番号を直接指定してテ…
- ある企業がElastic Beanstalkでデプロイ中の可用性を最大化したいと考えている。Rolling with a…
- あるチームがAWS CodeBuildのビルドキャッシュを設定してビルド時間を短縮しようとしている。CodeBuildが…
- ある企業がAWS CloudFormationを使ってEC2インスタンスとRDSインスタンスを管理している。本番スタック…
- あるチームがAWS CodePipelineにステージ間の手動承認ステップを追加した。ステージングへのデプロイ後、本番デ…
- ある開発チームがAmazon ECRにDockerイメージをプッシュして管理している。誤って同じタグ(例: latest…
- ある企業がAmazon ECSのEC2起動タイプでマイクロサービスを運用している。新バージョンのタスク定義をデプロイする…
- ある企業がAWS CodeDeployを使ってLambda関数のカナリアデプロイを実装している。デプロイ中にPreTra…
- ある企業がAWS CloudFormationのドリフト検出機能を活用してインフラの設定を管理している。CloudFor…
- ある企業がAWS CodeArtifactを使ってプライベートなMavenパッケージを管理している。社内チームが公開され…
- ある企業がAWS CodePipelineでマルチステージのCI/CDパイプラインを構築している。パイプラインには複数の…
- ある企業がAWS CloudFormationを使って本番環境のインフラを管理している。重要なスタックが誤って削除・更新…
- ある企業がAWS SAMを使ってLambda関数をデプロイしている。デプロイ後に本番トラフィックの一部を新バージョンに切…
- あるチームがAWS Elastic Beanstalkでデプロイ後のアプリケーション動作確認を自動化したいと考えている。…
- あるチームがLambda関数のパフォーマンス改善に取り組んでいる。関数は毎回初期化処理に2秒かかっており、1日に数回しか…
- あるチームがAWS X-Rayを使ってマイクロサービスのパフォーマンスを可視化しようとしている。Lambda関数からRD…
- あるチームがAmazon DynamoDBを使ったAPIを運用している。突然「ProvisionedThroughput…
- あるWebアプリケーションでAPI GatewayとLambdaを使ったAPIが稼働している。クライアントからのリクエス…
- あるチームがCloudWatchで本番Lambda関数を監視している。メモリ使用量をカスタムメトリクスとして毎回の呼び出…
- あるEコマース企業がAPI Gateway + Lambda + DynamoDBのサーバーレスAPIを運用している。あ…
- あるチームがAPI GatewayとLambdaで構成されたAPIをデプロイした。本番環境では「HTTP 502 Bad…
- あるチームがCloudWatch Logsのロググループに大量のログが蓄積されており、特定のエラーパターン("ERROR…
- あるチームがX-Rayでトレースを設定したが、本番環境で1秒間に10,000リクエストが来ており、すべてをトレースすると…
- あるチームがAPI GatewayとLambdaの組み合わせで読み取り専用の商品カタログAPIを提供している。クライアン…
- あるチームがX-RayのサービスマップでAPI Gatewayから始まりLambdaを経由してDynamoDBに到達する…
- あるチームがDynamoDBのOnDemandモードでAPIを運用している。突然トラフィックが過去の最大値の2倍に跳ね上…
- あるチームがCloudTrailとCloudWatchを両方使って監視しているが、どちらを使うべきか判断に迷っている。E…
- あるチームがElastiCache for Redisをセッションストアとして使ったWebアプリを運用している。キャッシ…
- あるチームがLambda関数でサードパーティAPIを呼び出すコードを運用している。本番環境で「Task timed ou…
- あるチームがDynamoDBのグローバルセカンダリインデックス(GSI)を活用した検索機能を開発した。テーブルへの書き込…
- あるチームが本番Lambda関数のコールドスタートを削減するためにプロビジョニング済み同時実行を設定した。Applica…
- あるチームがX-Rayを使ってマルチサービスアーキテクチャをトレースしている。あるリクエストのX-Rayトレースを確認す…
- あるチームがDynamoDBのスロットリングを解決するため、指数バックオフを実装したリトライロジックをアプリケーションコ…
- あるチームがLambda関数でデータベース接続を管理している。Lambda関数は毎秒100回呼ばれており、関数内でハンド…
- あるチームがCloudWatchのカスタムメトリクスを大量のLambda関数から送信している。一部のLambda呼び出し…
- あるチームがCloudWatchアラームを設定したが、アラームが誤検知を頻繁に起こしている。Lambda関数のエラー率が…
- あるチームがAPI GatewayとLambdaで構成されたAPIで、一部のユーザーから「リクエストが成功するときと失敗…
- あるチームがDynamoDBのスロットリング問題を解決しようとしている。CloudWatchのReadThrottleE…
- あるチームがLambda関数のコールドスタート時間を最小化したい。関数はJavaで実装されており、Spring Fram…
- あるチームがElastiCache for Redisを使って頻繁にアクセスされるDynamoDBデータをキャッシュして…
- あるチームが本番環境でX-Rayを使ったトレーシングを最適化したい。現在の設定では1秒間に1リクエスト+残り5%をサンプ…