試験ガイド / Developer Associate
Associate

Developer Associate

試験概要

AWS Certified Developer – Associate(DVA-C02)は、AWS のサービスを用いてアプリケーションを開発・デプロイ・デバッグする能力を評価する Associate レベルの試験です。合格スコアは 720/1000、試験時間 130 分・65 問で構成され、「AWS サービスによる開発」「セキュリティ」「デプロイメント」「トラブルシューティングと最適化」の 4 ドメインから出題されます。Lambda・API Gateway・DynamoDB・Cognito・SQS/SNS/EventBridge・Step Functions などサーバーレス/イベント駆動アーキテクチャの設計と実装、AWS SDK/CLI を使ったコード実装、CodePipeline/CodeBuild/CodeDeploy/SAM/CDK による CI/CD、CloudWatch/X-Ray を活用した可観測性が試験の中心テーマです。SAA-C03 が「設計者目線」であるのに対し、DVA-C02 は「実装者目線」で、API のリトライ戦略・指数バックオフ・冪等性・暗号化方式の選択など、コードレベルの実装判断が問われる点が大きな違いです。

対象者・前提知識

AWS でのアプリケーション開発の実務経験が 1 年以上ある開発者、またはサーバーレス/コンテナベースのアーキテクチャを学習中の開発者を主な対象とします。Lambda 関数を書いた経験、API Gateway と統合した REST/HTTP API を構築した経験、DynamoDB のテーブル設計を行った経験があると有利です。バックエンドエンジニア・フルスタック開発者・DevOps エンジニア・SRE が AWS 上での実装力を証明する資格として広く活用されています。SAA-C03 と並行して取得することで「設計+実装」の両面を網羅でき、DevOps Engineer Professional(DOP-C02)への足掛かりとしても優れた位置付けにあります。なお Cloud Practitioner(CLF-C02)取得は前提ではありませんが、AWS の基本概念に不安がある方は先に取得すると学習がスムーズです。

ドメイン構成

AWSサービスによる開発
32%
Lambda は同期/非同期/ポーリングの 3 呼び出しモデルでエラーハンドリングが異なります。非同期は最大 2 回自動リトライ+Destinations、ポーリング(SQS)は ReceiveCount と DLQ、Kinesis/DynamoDB Streams は Bisect Batch on Function Error と最大リトライ回数で制御します。DynamoDB はパーティションキー設計(カーディナリティ・均等性)、GSI(射影属性・別キャパシティ)と LSI(同パーティション内・5 個まで)の違い、TransactWrite/TransactGet(25 件・4MB)、条件付き書き込みによる楽観的ロック、Streams(NEW_IMAGE/OLD_IMAGE/KEYS_ONLY/NEW_AND_OLD_IMAGES)が頻出。SQS は可視性タイムアウト(処理時間より長く)と DLQ の maxReceiveCount、FIFO の重複排除 ID/メッセージグループ ID、Step Functions の Standard(最大 1 年・冪等)と Express(最大 5 分・大量実行)の使い分けも必須です。
セキュリティ
26%
Cognito User Pool は認証(JWT 発行:ID/Access/Refresh)、Identity Pool は認可(Auth/Unauth ロールで AWS 認証情報を STS 経由で発行)と覚えましょう。API Gateway の認可方式は Cognito オーソライザー(User Pool トークン検証)/Lambda オーソライザー(カスタムロジック・キャッシュ可)/IAM 認証(SigV4・クロスアカウント可)/API キー(使用量プラン・スロットリング)/Resource Policy の 5 種類で、ユースケース別に選択基準を整理しましょう。KMS のエンベロープ暗号化は GenerateDataKey で平文/暗号化済みデータキーを取得 → 平文キーでデータ暗号化 → 暗号化済みキーをデータと一緒に保存、復号時は Decrypt で平文キー復元という流れを暗記。Secrets Manager の自動ローテーション Lambda、STS AssumeRole の ExternalId・SourceIdentity・MFA 条件も頻出です。
デプロイメント
24%
Lambda バージョンは不変のスナップショット($LATEST 以外)、エイリアスはバージョンへのポインタで重み付きルーティング(例:90%→v1/10%→v2)によりカナリアデプロイを実現。CodeDeploy の Lambda デプロイ設定は Canary10Percent5Minutes/Linear10PercentEvery1Minute/AllAtOnce、ECS は Blue/Green(ターゲットグループ切替)、EC2 は In-Place(AllAtOnce/HalfAtATime/OneAtATime)と Blue/Green が選択肢です。AppSpec の BeforeAllowTraffic/AfterAllowTraffic フックで CloudWatch アラーム連動の自動ロールバックを実装できます。SAM/CDK/CloudFormation の Change Sets で変更内容をプレビュー、Elastic Beanstalk の Immutable デプロイ(新環境を完全構築 → 切替)も押さえましょう。
トラブルシューティングと最適化
18%
X-Ray はサービスマップでサービス間レイテンシーを可視化、セグメント(サービス全体)/サブセグメント(外部 API・DB 呼び出し)/アノテーション(インデックス対象、フィルタ可)/メタデータ(インデックス対象外、参考情報)の階層を理解しましょう。Lambda コールドスタート対策は Provisioned Concurrency(事前ウォームアップ・追加課金)、SnapStart(Java/Python/.NET、無料、デプロイ時にスナップショット作成)、パッケージサイズ削減(依存をレイヤー化)、初期化処理のハンドラ外への移動が定石です。DynamoDB のスロットリングは ProvisionedThroughputExceededException/ThrottledRequests メトリクス監視、Adaptive Capacity(自動再配分)、CloudWatch Contributor Insights によるホットキー特定、CloudWatch Lambda Insights による Lambda リソース使用率分析も頻出です。

出題傾向

AWS サービスによる開発(ドメイン 1、32%)が最大の比重を占め、Lambda の同期呼び出し(API Gateway/ALB/Cognito Trigger)・非同期呼び出し(S3/SNS/EventBridge)・ポーリング(SQS/Kinesis/DynamoDB Streams)の使い分け、DynamoDB のパーティションキー設計とホットパーティション回避、GSI/LSI の選択基準、条件付き書き込み・トランザクション API、SQS の可視性タイムアウト・DLQ・FIFO(重複排除 ID/メッセージグループ ID)、Step Functions のステートタイプ(Task/Choice/Parallel/Map/Wait)と Standard/Express ワークフローの違いが頻出です。EventBridge ルール・Pipes・Scheduler、AppSync GraphQL、Lambda Function URLs/Response Streaming も近年の頻出トピックです。

セキュリティ(ドメイン 2、26%)では、Cognito User Pools(認証・JWT 発行)と Identity Pools(AWS 認証情報の一時付与)の役割分担、API Gateway の Cognito オーソライザー/Lambda オーソライザー/IAM 認証/API キーの使い分け、KMS のエンベロープ暗号化(GenerateDataKey → 暗号化/復号)、Secrets Manager の自動ローテーション Lambda、STS AssumeRole によるクロスアカウントアクセス、署名付き URL/プレサインド POST が頻出します。

デプロイメント(ドメイン 3、24%)では、CodeCommit/CodeBuild/CodeDeploy/CodePipeline の役割分担、Lambda のバージョン(不変スナップショット)とエイリアス(重み付きルーティング)によるカナリアデプロイ、CodeDeploy のデプロイ設定(Canary/Linear/AllAtOnce)と AppSpec の preTraffic/postTraffic フック、SAM/CDK/CloudFormation Change Sets、Elastic Beanstalk のデプロイポリシー(All at once/Rolling/Rolling with additional batch/Immutable/Blue-Green)が問われます。

トラブルシューティング(ドメイン 4、18%)では、X-Ray のセグメント/サブセグメント/アノテーション/メタデータ、サービスマップによるレイテンシーボトルネック特定、CloudWatch Logs Insights のクエリ構文、Lambda コールドスタート対策(Provisioned Concurrency/SnapStart/パッケージサイズ削減)、DynamoDB のスロットリング監視と Adaptive Capacity が出題されます。

学習のポイント

Lambda の呼び出しモデルを徹底的に理解しましょう。同期(リクエスト/レスポンス)・非同期(キューイング、自動 2 回リトライ、Destinations で成功/失敗ルーティング)・ポーリング(イベントソースマッピング、SQS/Kinesis/DynamoDB Streams/MSK)の 3 種類で、エラーハンドリング・リトライ動作・冪等性要件が異なります。各モデルでの DLQ/Destinations 設定、最大同時実行数(Reserved/Provisioned Concurrency)、コールドスタート対策(SnapStart は Java/Python/.NET 対応)まで暗記してください。

DynamoDB はこの試験最大の難関です。「アクセスパターンを先に列挙 → パーティションキー+ソートキーの設計 → GSI/LSI で残りを補う」という Single-table design の思考プロセスを身につけましょう。ホットパーティション対策(書き込みシャーディング・Random Suffix)、強整合性 vs 結果整合性、トランザクション API(TransactWriteItems/TransactGetItems の 25 件・4MB 制限)、PartiQL、Streams + Lambda トリガー、オンデマンド vs プロビジョンド(Auto Scaling)の課金特性も必須知識です。

CI/CD は各サービスの責務(CodeCommit=Git ホスティング、CodeBuild=buildspec.yml に基づくビルド/テスト、CodeDeploy=AppSpec に基づくデプロイ/フック、CodePipeline=オーケストレーション)を正確に把握しましょう。Blue/Green デプロイは EC2/ECS/Lambda で挙動が異なる(Lambda はエイリアス重み付け、ECS はターゲットグループ切替、EC2 は Auto Scaling グループ置換)ため、それぞれの動作を分けて学習してください。CDK/SAM は IaC の主流であり、SAM Accelerate(sam sync)による高速反復開発も近年の頻出トピックです。

認証認可は手を動かして体得するのが最短ルートです。Cognito User Pool でユーザー登録 → サインイン(USER_SRP_AUTH/USER_PASSWORD_AUTH)→ ID/Access/Refresh トークン取得 → API Gateway で Cognito オーソライザー検証 → Lambda で claims を活用、という一連のフローを実装してみましょう。Identity Pool で AWS 認証情報を発行し、ロールベースで S3 や DynamoDB に直接アクセスするパターンも頻出です。

X-Ray と CloudWatch を組み合わせた可観測性の実装は試験でも実務でも重要です。Lambda の AWS X-Ray SDK 組み込み、API Gateway/ALB/SQS/SNS/DynamoDB のトレース伝播、サブセグメントでの外部 API 呼び出し計測、CloudWatch Embedded Metrics Format(EMF)でのカスタムメトリクス、CloudWatch Logs Insights でのエラー集計クエリを実機で試しておきましょう。