本ページはプロモーションを含みます

DVA(デベロッパー アソシエイト)

AWS DVA の出題範囲|SAA と重なる部分・重ならない部分

本ページはプロモーションを含みます

結論から言うと

DVAの出題範囲はSAAと一部重なりますが、アプリケーション開発・デプロイ・トラブルシューティングの領域はほとんど重なりません。SAAを持っている人がDVAに進む場合、差分となる開発者向けの知識を重点的に学ぶことが効率的です。私はDVA未受験のため、公式試験ガイドに基づく調査ベースの内容です。

この記事でわかること

  • DVA未受験であることを先に明示した上での調査ベースの記事
  • 公式試験ガイドの分野構成(4分野・出題比率)の整理
  • SAAとDVAで重なる知識領域(IAM・S3・VPC基礎・RDS基礎など)の整理
  • SAAと重ならないDVA固有の知識領域(SDK・Lambda実装・CI/CD・DynamoDB深い知識など)
  • SAA保有者がDVAに進む場合の差分学習の考え方と優先度

はじめに:私はDVAをまだ受験していません

最初に明示します。私(桑原 拓)はAWS DVA(AWS Certified Developer – Associate)をまだ受験していません。

この記事は、AWS公式の試験ガイドをもとに出題範囲を整理し、自分がSAA・SAPを取得したインフラ担当エンジニアとしての経験から「SAAとどう違うか」「SAA保有者が差分として何を学ぶべきか」を調査ベースで整理したものです。実際に受験してわかったことは含まれていません。

実際のDVA受験体験については、他の合格体験記も参考にしてください。この記事では公式情報の整理と学習計画の考え方を中心に書きます。

DVAの難易度の詳細についてはDVAの難易度に別記事があります。DVAを取るべきかの判断についてはDVAを取るべきかを参考にしてください。SAP取得後にDVAを検討している場合はSAPの合格体験記も合わせてご参照ください。

DVAの公式試験ガイドによる分野構成

AWS公式の試験ガイド(DVA-C02)に記載されている分野構成を整理します。出題比率は試験ガイドの記載に基づくものですが、実際の試験で完全に一致するとは限りません。最新の公式試験ガイドは必ずAWS公式サイトで確認してください。

分野1:AWSサービスによる開発(約32%)

出題比率が最も高い分野です。AWSの各サービスをSDKやAPIを使って開発者として操作する知識が問われます。

この分野で出題が多いサービスは、Lambda・DynamoDB・S3・SQS・SNS・Kinesis・API Gateway・Cognitoなどです。「このサービスを使うとこういうことができる」という設計レベルの知識ではなく、「このAPIを呼ぶと何が起きるか」「このパラメーターを設定するとどう動くか」という実装レベルの知識が問われます。

SAAで学んだ「このサービスはこういう用途に使う」という知識はベースとして役立ちます。ただし、DVAではその先の「どうやって使うか」の部分を追加で学ぶ必要があります。

分野2:セキュリティ(約26%)

認証・認可・暗号化・シークレット管理の知識が問われます。

IAMの基本はSAAでカバーしていますが、DVAではSDKから認証する方法(一時クレデンシャルの取得・AssumeRole)、Cognito(ユーザープール・IDプール)、Secrets Manager・Parameter Storeの使い方、KMSによるデータ暗号化の実装が重点的に問われます。

SAPを持っている場合、マルチアカウントのIAMやSTS(Security Token Service)は既に深く学んでいる部分があります。DVAのセキュリティ分野では、SAPで学んだ知識が活きる領域が比較的多いと考えられます。

Cognitoはインフラ担当にとって馴染みが薄いサービスのひとつです。ユーザープールとIDプールの役割の違い、外部IdP(Google・Facebook・SAMLなど)との連携、Cognitoオーソライザーを使ったAPI Gatewayの認証設定などが問われます。

分野3:デプロイ(約24%)

CI/CDパイプラインの構築・デプロイ戦略・IaCの実装知識が問われます。

AWS CodePipeline・CodeBuild・CodeDeploy・CodeCommitのツールセットを使ったCI/CDパイプラインの構築方法が問われます。各ツールの役割(ソース管理・ビルド・デプロイ)と連携方法、設定ファイル(buildspec.yml・appspec.yml)の書き方などが出題範囲です。

デプロイ戦略(ブルーグリーンデプロイ・カナリアデプロイ・ローリングアップデート)はSAPでも学びますが、DVAではECS・Lambda・EC2 AutoScalingに対してCodeDeployを使って実装する方法という実装視点で問われます。

CloudFormation・SAM(Serverless Application Model)もデプロイ分野に含まれます。SAAでCloudFormationの基本は学びますが、SAMはDVA固有の学習事項です。SAMのテンプレート構文(Transform: AWS::Serverless-2016-10-31)・SAM CLIの使い方・ローカルテスト方法が問われます。

Elastic Beanstalkもデプロイ分野の出題サービスです。アプリケーション環境の作成・デプロイポリシーの設定・設定ファイル(.ebextensions)の使い方が問われます。SAAではBeanstalkの概要レベルは学びますが、DVAでは設定の詳細が問われます。

分野4:トラブルシューティングと最適化(約18%)

アプリケーションのデバッグ・監視・パフォーマンス最適化の知識が問われます。

X-Rayを使ったトレーシング(サービスマップの読み方・セグメント・サブセグメント・サンプリング設定)が出題されます。CloudWatchのメトリクス・ログ・アラームに加えて、CloudWatch Insightsを使ったログ分析、カスタムメトリクスの作成(CloudWatch EmfやSDKからのputMetricData)が問われます。

SQSのデッドレターキュー・Lambda実行エラーの処理・DynamoDBのキャパシティ関連エラーのハンドリングなど、AWSサービスを使ったアプリケーションの典型的なエラーとその対処法が出題されます。

パフォーマンス最適化については、Lambdaのコールドスタート対策(プロビジョニング済み同時実行・メモリサイズの調整)・DynamoDBのキャパシティモードとDAX・ElastiCacheの活用などが問われます。

SAAとDVAで重なる知識領域

ここから、SAAとDVAの知識の重なりと重ならない部分を対比します。

⚠️ 注意点

この比較は公式試験ガイドと私のSAA・SAPの学習経験に基づく分析です。実際の試験で問われる深さや方向性は、公式サンプル問題や試験ガイドを自分で確認してください。DVA未受験のため、実際の試験での実感に基づく比較ではありません。

IAMの基礎(大きく重なる)

SAAでもDVAでもIAMは重要な出題領域です。ユーザー・グループ・ロール・ポリシーの基本概念・ポリシーの評価ロジック・リソースベースポリシーとアイデンティティベースポリシーの違いなどは共通します。

ただし、DVAではSTSを使った一時クレデンシャルの取得(AssumeRole・GetCallerIdentity)、SDKから認証情報を使う方法(環境変数・インスタンスプロファイル・認証情報ファイルの優先順位)などが追加で問われます。

S3の基礎(部分的に重なる)

S3のバケット・オブジェクト・ストレージクラス・アクセス制御の基本はSAAで学びます。DVAではこれに加えて、SDKを使ったマルチパートアップロード・S3イベント通知とLambdaの連携・署名付きURL(Presigned URL)の生成方法・S3 SelectやS3 Object Lambda(データ変換処理)などが問われます。

署名付きURLはSAAでも概念として出てきますが、DVAではどのAPIで生成するか・有効期限の設定方法・クライアント側での使い方という実装の詳細が問われます。

VPCとネットワークの基礎(基礎部分は重なる)

VPCの基本的な概念(サブネット・ルーティング・セキュリティグループ・NACLなど)はSAAで学びます。DVAでもVPCの基礎知識は前提として必要です。

ただし、DVAではインフラ設計のための知識よりも、「Lambdaのプライベートリソースアクセスにはどうするか」「ECS TaskがプライベートサブネットでECRにアクセスするにはどうするか」という開発者が直面するVPN設定の問題が出題の中心になります。

RDSとデータベースの基礎(一部重なる)

SAAのRDS知識(マルチAZ・リードレプリカ・RDS Proxy)はDVAでも背景知識として役立ちます。DVAでは特にRDS Proxyを使ったコネクション管理(Lambdaからの接続コネクション数問題)の解決方法が問われます。

RDB以外では、Auroraのクラスター設定・エンドポイントの種類(クラスターエンドポイント・リーダーエンドポイント・カスタムエンドポイント)がDVAでも出題されます。

✅ ここだけ読めばOK

SAAとDVAで重なる知識領域(一部は深さが違う)
- IAMの基礎(ロール・ポリシー・アクセス制御の概念)
- S3の基礎(バケット・オブジェクト・ストレージクラス)
- VPC・ネットワークの基礎概念
- RDSの基礎(マルチAZ・リードレプリカ)
- CloudWatchの基礎(メトリクス・アラーム・ログの基本)
- SNS・SQSの基礎的な概念
- Lambdaの基礎的な概念(イベント駆動・サポートランタイム)

SAAと重ならないDVA固有の知識領域

SAAでは十分にカバーされない、DVAで新たに学ぶ必要がある知識領域を整理します。SAA保有者がDVAを目指す場合、この領域への学習時間の投資が特に必要です。

AWSのSDKを使った操作

これがDVA固有の最大の学習事項です。S3・DynamoDB・SQS・SNS・Lambda等のサービスをSDKを使って操作する方法、エラーハンドリング、ページネーション処理、べき等性の確保などが問われます。

SAAではマネジメントコンソールやCloudFormationからの操作を前提とした知識が中心でした。DVAでは「コードから操作する」視点での知識が必要になります。

DynamoDBの深い知識

SAAでは「DynamoDBはフルマネージドのNoSQLデータベース」レベルの知識でしたが、DVAでは次の知識が問われます:パーティションキーとソートキーの設計・GSIとLSIの違いと使い分け・クエリとスキャンの違いとコスト・強整合性と結果整合性の違い・DynamoDB Streamsの使い方・DynamoDB TransactionsのAPIの使い方・DAX(DynamoDB Accelerator)の設定方法などです。

DynamoDBはDVAで最も重点的に出題されるサービスのひとつとされています。RDBとは異なる設計思想(アクセスパターン中心の設計)を理解することが重要です。

CI/CDパイプライン(CodePipeline・CodeBuild・CodeDeploy)

AWSのCI/CDツールセットはDVAの中心的な出題領域です。各ツールの役割と連携方法、設定ファイルの書き方(buildspec.yml・appspec.yml)、デプロイグループとデプロイ設定(TrafficRoutingConfig)の設定方法が問われます。

CodeDeployを使ったブルーグリーンデプロイ・カナリアデプロイの設定方法、ロールバックの仕組み、ECS・Lambda・EC2への各デプロイ方法の違いも出題されます。

SAM(Serverless Application Model)とサーバーレスの実装

SAMはCloudFormationのサーバーレス向け拡張であり、DVA固有の学習事項です。SAMテンプレートでのLambda・API Gateway・DynamoDBの定義方法、SAM CLIを使ったローカルテストとデプロイ方法が問われます。

サーバーレスの実装パターン(Lambda + DynamoDB・Lambda + SQS・Lambda + API Gateway + Cognito)の設計と実装方法がDVAで問われます。SAPでもサーバーレスアーキテクチャは出てきますが、DVAでは実装の詳細が重要です。

X-Rayによるトレーシング

X-RayはDVA固有の深い学習事項です。アプリケーションへのX-Ray SDKの組み込み方法・サービスマップの構造(ノードとエッジ)・セグメントとサブセグメントの作成・サンプリングルールの設定・X-RayデーモンとX-Ray APIの仕組みが問われます。

SAAではX-Rayの概念的な役割(分散トレーシング)は出てきますが、実装の詳細はDVA固有の内容です。

Elastic Beanstalkの詳細設定

Elastic BeanstalkはSAAでも登場しますが、DVAでは.ebextensionsによる設定のカスタマイズ・デプロイポリシー(All at once・Rolling・Rolling with additional batch・Immutable・Blue/Green)の違いとユースケース・環境変数の管理・Worker環境(SQSと連携したバッチ処理)の設定などが問われます。

✅ ここだけ読めばOK

SAAと重ならないDVA固有の知識領域(重点学習エリア)
- AWSのSDKを使った操作(S3・DynamoDB・SQS・SNS等)
- DynamoDBの深い知識(データモデリング・GSI・LSI・Transactions・DAX)
- CI/CDパイプライン(CodePipeline・CodeBuild・CodeDeploy)の実装
- SAM・サーバーレスの実装パターン
- X-Rayによるトレーシングの実装
- Elastic Beanstalkの詳細設定とデプロイポリシー
- Cognito(ユーザープール・IDプール・外部IdP連携)
- STSとSDKからの一時クレデンシャル取得

SAA保有者がDVAに進む場合の差分学習の考え方

SAAを持っているインフラ担当がDVAを目指す場合の学習戦略を整理します。

基礎知識の再確認は短時間で

SAAとDVAで重なる領域(IAM基礎・S3基礎・VPC基礎・RDS基礎・CloudWatch基礎)はSAAで既に学んでいます。この部分は再確認程度にとどめ、学習時間を差分に集中させることが効率的です。

再確認のイメージとしては、各サービスの基礎的な問題を解いてみて、正答率が高ければ次の分野に進むという方法が有効です。苦手な部分だけピンポイントで復習する方が、全体を最初から学び直すよりも時間を節約できます。

差分学習の優先度

出題比率から判断すると、学習の優先度は次のようになります:

最優先(出題比率が高く、SAAとの差分が大きい)
- DynamoDBの深い知識(開発者視点での操作)
- Lambda実装の詳細(コールドスタート・デプロイ・レイヤー)
- CI/CDパイプライン(CodePipeline・CodeBuild・CodeDeploy)
- Cognito(ユーザープール・IDプール)

優先(出題比率が中程度で、新規学習が必要)
- SDK操作(S3・SQS・SNSなど各サービスのAPI)
- SAMとサーバーレスの実装パターン
- X-Rayのトレーシング実装
- Elastic Beanstalkの詳細設定

再確認で対応できる可能性がある(SAAとの重なりが大きい)
- IAM(STSのSDK使用方法は追加学習)
- S3基礎(署名付きURLの詳細は追加学習)
- VPC・ネットワーク基礎
- RDS・Aurora基礎

実際に手を動かす学習の重要性

DVAはSAAと比べて「読んで理解する」だけでは不十分な領域が多いです。特にSDKを使った操作・SAM CLIの使い方・CodeDeployの設定などは、実際に動かしてみることで理解が深まります。

AWS無料利用枠の範囲内でLambdaやDynamoDBをSDKから操作してみる、SAMテンプレートでサーバーレスアプリを作ってデプロイしてみるといった実践的な学習が、試験の問題を解く上での実感につながります。

DVAの勉強方法の詳細についてはDVAの勉強方法に別記事でまとめています。学習期間の目安やおすすめの教材についてはそちらを参考にしてください。

SAPを持っている場合の追加アドバンテージ

SAPを持っているインフラ担当がDVAを目指す場合、SAAのみと比べて追加でアドバンテージがある領域があります。

SAPで深く学んだIAM(SCP・PermissionBoundary・クロスアカウントアクセス)はDVAのセキュリティ分野での背景知識になります。特にSTSを使ったロール引き受けのシナリオはSAPで学んだ内容と重なります。

また、SAPのコスト最適化の分野でDynamoDBのキャパシティモード(オンデマンド・プロビジョニング)を学んでいる場合、DVAのDynamoDB関連の問題でもその知識が活きます。

移行戦略の文脈でLambdaやコンテナを学んでいる場合、DVAのサーバーレス・コンテナ関連の問題でも背景理解が助けになります。

SAPとDVA両方を持っている場合の転職市場での評価についてはSAPを取る意味はあるかも参考になります。AWS認定資格全体の取得順番の考え方はAWS認定資格どれから取るべきかにまとめています。

まとめ

✅ ここだけ読めばOK

  • DVAは私(桑原 拓)は未受験。公式試験ガイドと自分のSAA・SAPの学習経験を基にした調査ベースの記事
  • DVAの分野構成:AWSサービスによる開発(32%)・セキュリティ(26%)・デプロイ(24%)・トラブルシューティングと最適化(18%)
  • SAAと重なる領域:IAM基礎・S3基礎・VPC基礎・RDS基礎・CloudWatch基礎
  • SAAと重ならないDVA固有領域:SDK操作・DynamoDB深い知識・CI/CD・SAM・X-Ray・Cognito
  • SAA保有者の差分学習:差分に集中(開発者向けの新規知識)+実際に手を動かす学習を重視
  • 最新の試験情報は必ずAWS公式の試験ガイドで確認してください

SAAを持っているインフラ担当がDVAに進む場合、知識の再活用できる部分は確かにありますが、開発者向けの新規学習の量も多いです。公式試験ガイドのサンプル問題で現在の実力を確認してから学習計画を立てることをおすすめします。

DVAの各分野を深堀り:開発者視点で問われること

ここでは公式試験ガイドの各分野について、どういう方向性の問題が出るかを調査ベースでさらに掘り下げます。

分野1:AWSサービスによる開発のより詳しい中身

Lambda関連の実装知識

Lambdaはこの分野の中心サービスです。関数の設定(メモリ・タイムアウト・同時実行数・予約済み同時実行・プロビジョニング済み同時実行の違い)、デプロイパッケージ(ZIPファイル・コンテナイメージ)、Lambdaレイヤーの使い方、環境変数(Secrets ManagerとSSM Parameter Storeからの取得方法)、デッドレターキューとLambdaの失敗処理、イベントソースマッピング(SQS・Kinesis・DynamoDB Streams)の設定などが問われます。

Lambdaのコンカレンシーとスロットリング(リージョンレベルの上限・関数レベルの予約済み同時実行・スロットリング時のエラーコード)は、アプリケーション開発者が運用で直面する問題としてよく出題されます。

SQSとSNSの実装知識

SQSでは、標準キューとFIFOキューの違い(順序保証・重複排除・スループット上限)、可視性タイムアウトの設定とLambdaとの連携時の関係、ロングポーリングとショートポーリングの違い、DLQ(デッドレターキュー)の設定と最大受信数、メッセージの属性とメタデータが問われます。

SNSでは、トピックの種類(標準・FIFO)、サブスクリプションのプロトコル(SQS・Lambda・HTTP・Email)、メッセージフィルタリング(サブスクリプションフィルターポリシー)、SNSとSQSのファンアウトパターンが問われます。

Kinesisの実装知識

Kinesis Data Streams・Kinesis Data Firehose・Kinesis Data Analyticsの用途の違い(SAAでも出てきますが)に加えて、DVAではシャードの概念とパーティションキーによるデータ分散、IteratorTypeの種類(TRIM_HORIZON・LATEST・AT_TIMESTAMP等)、Lambdaとの統合時のバッチサイズとウィンドウの設定が問われます。

分野2:セキュリティのより詳しい中身

Secrets ManagerとParameter Storeの使い分け

AWS Secrets ManagerとSSM Parameter Storeの違い(コスト・ローテーション機能・格納できる値の種類)、SDKからの取得方法(GetSecretValue・GetParameter)、Lambdaからのアクセス時のIAM権限設定が問われます。

SAAではどちらを使うべきかの設計判断レベルで出てきますが、DVAでは実装レベルの知識が問われます。特にLambdaの環境変数にシークレットを直接書かずにSecrets Managerから取得する方法が典型的な問題パターンです。

KMSの実装知識

KMS(Key Management Service)はSAAでも出てきますが、DVAではSDKを使った暗号化・復号の操作方法、エンベロープ暗号化の概念と実装、GenerateDataKey・Encrypt・DecryptのAPIの使い方が問われます。S3のサーバーサイド暗号化(SSE-S3・SSE-KMS・SSE-C)の違いとSDKでの設定方法も出題されます。

分野3:デプロイのより詳しい中身

CloudFormationとSAMの詳細

CloudFormationでは、スタックのライフサイクル(作成・更新・削除)、変更セット(Change Set)の使い方、クロスリージョン・クロスアカウントスタック(StackSets)の概念、ネストされたスタックの構成、カスタムリソース(Lambda backed)の実装が問われます。

SAMではCloudFormationのTransformとして機能する仕組み、SAMテンプレートの主要なリソースタイプ(AWS::Serverless::Function・AWS::Serverless::Api・AWS::Serverless::SimpleTable)、SAM CLIを使ったローカルデバッグ方法(sam local invoke・sam local start-api)が問われます。

デプロイ戦略の詳細(ECS・Lambda・EC2)

CodeDeployを使ったデプロイ戦略は対象によって設定方法が異なります。ECSへのデプロイ(タスク定義のリビジョン・サービスの更新)、LambdaへのデプロイとトラフィックシフトのAlias設定・SAMでのデプロイ設定、EC2/AutoScalingへのデプロイとappspec.ymlの各ライフサイクルフックが問われます。

各デプロイ戦略(AllAtOnce・Linear・Canary)のコードデプロイでの設定方法とトレードオフが問われます。SAPでデプロイ戦略の概念は学びましたが、DVAではコードデプロイでの実装詳細が重要です。

DVAの出題傾向から見た学習の効率化

公式試験ガイドの分野比率と出題サービスの傾向から、学習を効率化するためのポイントをまとめます。

Lambda・DynamoDB・API GatewayのセットをまずSDKで操作してみる

この3サービスの組み合わせはDVAの典型的なシナリオです。「API GatewayでHTTPリクエストを受け取り、LambdaでDynamoDBに書き込む」という基本的なサーバーレスAPIを実際に作ってみることで、試験で問われる知識を体感できます。

IAMとSTSの実装パターンを整理する

セキュリティ分野の中心はIAMとSTSです。「LambdaがDynamoDBにアクセスするためのIAMロールの設定」「Cognitoで認証したユーザーがS3に直接アクセスするためのIDプール設定」「クロスアカウントのLambda呼び出しのためのAssumeRole設定」などの典型的なパターンを整理しておくことが効果的です。

CI/CDパイプラインを実際に動かしてみる

CodePipeline・CodeBuild・CodeDeployの連携は、設定ファイルの書き方を含めて実際に動かしてみることで理解が深まります。特にbuildspec.ymlの構造(phases・artifacts・environment-variables)とappspec.ymlの構造(version・hooks)は試験で直接問われます。

DVAの独学での取り組み方についてはAWS資格は独学で取れるかも参考になります。全体的なAWS資格の取得順番についてはAWS認定資格どれから取るべきかに整理しています。

よくある質問

DVAとSAAの出題範囲はどのくらい重なりますか?

IAM・S3・VPC・RDSなどの基礎的な知識は重なりますが、DVAの中心であるアプリケーション開発・SDK・CI/CD・DynamoDBの実装知識はSAAとほとんど重なりません。DVA固有の学習が多く必要です。私はDVA未受験のため調査ベースで書いています。

SAAを持っていればDVAはすぐに取れますか?

SAAの知識の一部は活かせますが、DVA固有の開発者向け知識(SDK・Lambda実装・CI/CD・DynamoDB等)の学習が別途必要です。SAAがあれば基礎部分はカバーできますが、すぐに取れるわけではありません。

DVAとSAPは出題範囲が重なりますか?

Lambdaのアーキテクチャ・DynamoDBの設計パターン・IAMのクロスアカウント設定などは重なります。SAPを持っているとセキュリティ分野でアドバンテージがある部分があります。ただしDVAの実装寄りの知識はSAPでも十分にカバーされません。

DVAの試験ガイドはどこで入手できますか?

AWS公式の試験ページからPDF形式でダウンロードできます。分野構成・出題比率・試験形式が詳しく記載されています。

桑原 拓

2017年からインフラ実務、2022年に SAA、2024年に SAP 取得

事業会社の情報システム部門でインフラを担当している会社員です。社内システムのオンプレ運用から入り、いまは AWS への移行と運用設計を担当しています。AWS認定は SAA と SAP を取得済み、DVA は勉強中です。市販教材と公式ドキュメントだけで独学したので、どこでつまずくかは一通り経験しました。勤務先の都合で実名は出していません。

どういう基準で書いているか