記事内に商品プロモーションを含む場合があります
AWS認定デベロッパー – アソシエイト(DVA)試験は、幅広いAWSサービスの理解が求められます。しかしすべてを網羅するのは大変です。そこで本記事では、特に試験によく出る主要サービスをカテゴリ別に整理し、それぞれの特徴や学習ポイントを初心者向けに紹介します。
私も勉強中なので、理解を深めるためにまとめました。
コンピューティング系
AWS上で処理を実行するためのサービスです。
EC2(Elastic Compute Cloud)
仮想マシンを起動して任意のソフトウェアを実行できるサービスです。「AWS上に自分のPCを用意できる」といえます。オンプレミス(物理サーバーを用意する場合)と比べ、実行する処理に合わせて簡単に性能を変えられることが特徴です。
- インスタンスタイプ:インスタンスタイプファミリー (汎用、コンピューティング最適化、メモリ最適化など) の特徴と、どのようなワークロードに適しているか。例えば、Webサーバーには汎用タイプ、高負荷な計算処理にはコンピューティング最適化タイプが適しています。
- AMI (Amazon Machine Image):AMIの概念 (インスタンス起動に必要な情報を含むテンプレート) と、自分で作成する方法、共有AMIの利用方法など。
- セキュリティグループ:インバウンドルールとアウトバウンドルールの設定方法、ステートフル/ステートレスな動作の違い、最小限のポートのみを開ける原則など。
- Elastic IP:パブリックIPアドレスとの違い、再起動しても変わらない固定IPアドレスの利用シーン。
- Auto Scaling:スケーリングポリシー (ターゲット追跡、ステップスケーリングなど) の種類と設定方法、ライフサイクルフックの利用シーン。
- ロードバランサー (ALB, NLB, CLB):各ロードバランサーの特徴と、レイヤー7 (ALB)、レイヤー4 (NLB, CLB) の違い、適切な利用シーン。
- ユーザーデータとメタデータ:インスタンス起動時にスクリプトを実行するユーザーデータ、インスタンスに関する情報を取得するメタデータの利用方法。
Lambda
サーバーレスでコードを実行できるコンピューティングサービスです。イベント駆動型で、必要な時に必要な分だけコードを実行し、料金は実際に使用したコンピューティング時間に対してのみ発生します。
- 関数の作成と設定:ランタイムの選択、ハンドラーの記述方法、メモリ割り当てとタイムアウト設定の影響。
- イベントソース:S3、DynamoDB、API Gatewayなど、様々なイベントソースとの連携方法。 Lambdaは上記のサービスで発生したイベントをトリガーとして起動させるケースがよく聞かれます。
- 実行ロール:Lambda関数が他のAWSサービスにアクセスするための適切なIAMロールの設定方法と、最小権限の原則。
- 環境変数とシークレットの管理:環境変数の利用方法と、機密情報を安全に管理するためのAWS Secrets ManagerやSystems Manager Parameter Storeとの連携。
- デプロイメントパッケージ:コードと依存関係をまとめたZIPファイルの作成方法。
- モニタリングとロギング (CloudWatch Logs):CloudWatch Logsへのログ出力方法と、エラー発生時の確認方法。
- コールドスタート:Lambda関数の初回実行時の遅延とその対策 (プロビジョニングされた同時実行など)。
ストレージ系
AWS上にデータを保管しておくためのサービスです。
S3 (Simple Storage Service)
大容量のデータでも安価で保管でき、非常に高い可用性で利用できるオブジェクトストレージサービスです。データバックアップ、アーカイブ、Webサイトホスティングなど、様々な用途に利用できます。
- バケットとオブジェクト:バケットの命名規則、オブジェクトのキーとメタデータの概念。
- ストレージクラス:Standard、Intelligent-Tiering、Standard-IA、One Zone-IA、Glacier、Deep Archive の特性 (可用性、耐久性、料金、取り出し時間) を比較し、適切なユースケース。
- バケットポリシーとIAMポリシー:それぞれのポリシーの適用範囲と、アクセス制御の仕組み。
- バージョニング:データの誤削除を防ぐための有効化方法と、以前のバージョンの復元方法。
- ライフサイクルポリシー:オブジェクトの自動的なストレージクラス移行や削除の設定方法。
- 暗号化 (SSE-S3, SSE-KMS, SSE-C):各暗号化方式の特徴と、データの保護方法。
- 静的Webサイトホスティング:S3バケットをWebサイトとして公開するための設定方法。CloudFrontと組み合わせて使われることが多い。
データベース系
データを構造化して保存するためのサービスです。
RDS (Relational Database Service)
フルマネージドなリレーショナルデータベースサービスです。MySQL、PostgreSQL、Oracle、SQL Server、MariaDB など、複数のデータベースエンジンをサポートしています。
- マルチAZ構成:異なるアベイラビリティゾーンにスタンバイインスタンスを配置することで、高可用性を実現する方法。
- 自動バックアップ:指定した期間ごとに自動的にデータベースのバックアップを取得する機能。
- スナップショット:手動で特定の時点のデータベースの状態を保存する機能。
- リーディングキャッシュ: データベースへの頻繁な読み込みリクエストの結果をキャッシュすることで、データベースの負荷を軽減し、アプリケーションの応答速度を向上させる仕組み。AWSでは、ElastiCache (MemcachedやRedis) を利用して実現することが多い。
DynamoDB
高速で柔軟なNoSQLのフルマネージドデータベースサービスです。スキーマレスで、高いスループットと低いレイテンシーを提供します。
- プライマリキー (パーティションキー、ソートキー):データの効率的な検索と分散のための適切なプライマリキーの設計方法。
- 読み込み/書き込みキャパシティユニット (RCU/WCU):プロビジョニングされたスループットの概念と、アプリケーションの要件に基づいた適切な設定方法。
- GSI と LSI:GSIはグローバルセカンダリインデックス、LSIはローカルセカンダリインデックス。プライマリキー以外の属性で効率的に検索するためのインデックスの作成方法と、それぞれの特性の違い。
- DynamoDB Streams:データ変更イベントをトリガーにしてLambda関数などを実行する方法。
- Auto Scaling (キャパシティユニットの自動スケーリング):需要の変化に応じて自動的にキャパシティユニットを調整する設定方法。
ネットワーキング系
ネットワークを構築するためのサービスです。
API Gateway
APIを簡単に作成、公開、管理、モニタリング、保護するためのフルマネージドサービスです。バックエンドのLambda関数やEC2インスタンスなどをAPIとして公開できます。
- API Gatewayのコンポーネント:API、リソース、メソッド、ステージの役割と関係性。
- 統合タイプ:Lambda関数、HTTPエンドポイント、Mock統合など、様々なバックエンドとの統合方法。
- 認証と認可:IAMロール、Cognitoユーザープール、APIキーなど、APIへのアクセスを制御する方法。
- APIキーと使用量プラン:APIの利用状況を追跡し、レート制限などを設定する方法。
- キャッシュ:APIのレスポンスをキャッシュすることで、パフォーマンスを向上させる方法。
- Throttling (リクエストレート制限):APIへの過負荷を防ぐための設定方法。
セキュリティ・ID管理系
適切なアクセス管理をするためのサービスです。
IAM (Identity and Access Management)
AWSリソースへのアクセスを安全に管理するためのサービスです。ユーザー、グループ、ロールを作成し、アクセス許可を付与することで、誰がどのリソースに何ができるかを制御します。
- ユーザー、グループ、ロール:それぞれの特性と使い分け、ベストプラクティス。
- 最小権限の原則:必要最小限の権限のみを付与することの重要性。
- IAMポリシーの構造 (JSON形式):Version、Statement、Effect、Action、Resource、Condition などの要素。
- IAMロール:EC2インスタンスやLambda関数などのAWSサービスに一時的なセキュリティ認証情報を付与する方法。
- 多要素認証 (MFA):セキュリティを強化するための設定方法と重要性。
Secrets Manager
アプリケーションで使うパスワードやAPIキーなどのシークレットを安全に保存・管理できるサービス。問題文に「接続情報を定期的にローテーション」といった記載がある場合は、こいつを使う場合が多いです。
- シークレットのローテーション:セキュリティを向上させるために、シークレットを自動的に更新する仕組み。
- 自動取得の仕組み:アプリケーションからシークレットを安全かつ簡単に取得する方法。
- IAMと組み合わせたアクセス制御:誰がどのシークレットにアクセスできるかをIAMポリシーで制御する方法。
KMS (Key Management Service)
AWSサービス全体で暗号化キーを簡単に作成および管理できるマネージドサービスです。保存データ (Data at Rest) および転送中のデータ (Data in Transit) の暗号化に利用できます。こいつで生成したキーをSecretsManagerで使うケースもあります。
- CMK (Customer Master Key) の種類:AWS管理CMK、AWS所有CMK、顧客管理CMK の違いと、それぞれの管理主体。
- 暗号化コンテキスト:暗号化されたデータの整合性を検証するための追加の認証データとして使用する方法。
- IAMポリシーとの連携:KMSキーへのアクセスを制御する方法。
- Envelope Encryption:データキーをCMKで暗号化する仕組み。
モニタリング・運用管理系
処理結果の確認や運用管理するためのサービスです。
CloudWatch
AWSリソースとアプリケーションをリアルタイムでモニタリングおよび管理するためのサービスです。メトリクス、ログ、アラームなどの機能を提供します。
- メトリクス:様々なAWSサービスのパフォーマンスに関する主要なメトリクスを把握。 「標準で何が出力できるのか」を知っておくとよいです。
- ログ (CloudWatch Logs):アプリケーションログやAWSサービスログの収集、保存、分析方法。
- アラーム:メトリクスの閾値を設定し、異常時に通知を受け取る方法。
- イベント (CloudWatch Events / EventBridge):AWSリソースの状態変化をトリガーにしてアクションを実行する方法。
- CloudWatch Logs Insights:ログデータをSQLのようなクエリで分析する方法。
CloudTrail
AWSアカウントにおけるAPIの呼び出しやイベントを記録し、監査できるようにするサービス。「不正利用があった。調査するには~」みたいなことが書いてあれば、こいつを使います。
- 証跡 (Trail):CloudTrailの設定を保存する構成。アカウント内のすべてのリージョンまたは単一のリージョンのイベントを記録できる。
- イベントの種類:管理イベント (コントロールプレーン操作) とデータイベント (データプレーン操作) の違い。
- S3バケットへの保存:記録されたログファイルは指定したS3バケットに保存される。
- CloudWatch Logsとの連携:CloudTrailのイベントをCloudWatch Logsに送信して、より詳細な分析や監視を行うことができる。
CloudFormation
インフラストラクチャをコードとして記述し、プロビジョニングおよび管理するためのサービスです。テンプレート (JSONまたはYAML形式) を使用して、AWSリソースを自動的に作成および構成できます。複数のリソースを一括で作成する場合に便利です。
- テンプレートの構成要素:Parameters、Mappings、Resources、Outputs などの各セクションの役割と記述方法。
- スタックの作成、更新、削除:テンプレートを使ってAWSリソースをまとめて管理する方法。
- 変更セット:スタックに加える変更を事前に確認する方法。
- ロールバックオプション:スタックの作成や更新に失敗した場合の復旧方法。
- CloudFormation Registry:AWSが提供するリソースタイプだけでなく、サードパーティや自身で作成したカスタムリソースを利用する方法。
メッセージング系
通知処理やシステム間の結合を担うサービスです。
SNS (Simple Notification Service)
柔軟でフルマネージドなメッセージングサービスです。Pub/Subモデルをサポートしており、様々なエンドポイント (SQSキュー、Lambda関数、HTTP/Sエンドポイント、Eメール、SMSなど) にメッセージを配信できます。
- トピックとサブスクリプション:メッセージを配信するためのトピックの作成と、メッセージを受信するサブスクリプションの設定方法。
- 様々なエンドポイントへの配信:SQS、Lambda、Eメールなど、様々なエンドポイントへのメッセージ配信方法。
- メッセージフィルタリング:サブスクライバーが関心のあるメッセージのみを受信するようにフィルタリングを設定する方法。
- FIFOトピック:メッセージの順序が重要なユースケースでの利用方法。
SQS (Simple Queue Service)
フルマネージドなメッセージキューイングサービスです。アプリケーションコンポーネント間のメッセージの送受信を仲介し、システムの疎結合化や非同期処理を実現します。
- スタンダードキューとFIFOキュー:それぞれの特性 (メッセージの順序、少なくとも1回配信、高スループットなど) の違いと、適切なユースケース。
- メッセージの送信、受信、削除:キューへのメッセージの送受信、処理後のメッセージの削除方法。
- 可視性タイムアウト:メッセージが処理中に他のコンシューマーに処理されないようにするための設定方法。
- デッドレターキュー:処理に失敗したメッセージを保管し、原因を調査するための設定方法。
- メッセージ保持期間:キューにメッセージが保持される期間を設定する方法。
まとめ
この記事では、AWS DVA資格試験で頻出する主要なサービスを機能カテゴリ別にまとめ、「ここが出る!」として具体的な試験対策のポイントを解説しました。それぞれのサービスがどのような機能を提供し、試験でどのような点が問われやすいのかをしっかりと理解することが、合格に向けた近道だと思います。
ABOUT ME

現役SE。javaとc#とpythonとvbの経験あり。アプリ開発メイン。インフラ、特にネットワークは苦手。2児の父。好きな寿司ネタは「鯛」。将来は離島に別荘を構えたい。