AWS DVA / 第9章

CHAPTER 09 / 全ドメイン

総復習・演習・ミニ実習

比較表と20問のオリジナル問題で、判断力を確かめる。

一読の目安 40分+実習総復習20問 + ローカル実習

01 / 要件から思い出す比較表

設問の要件・症状思い出す機能・考え方
Lambdaで下流を保護したいReserved concurrency、SQSによる平準化
対話処理の初期化待ちを減らしたいProvisioned concurrency
主キー以外で効率よく検索したいDynamoDB GSIなど。Query可能なアクセスパターンへ
書き込み直後の最新値が必要テーブル / LSIの強い整合性。GSIは不可
二重作成や同時更新を防ぎたい条件付き書き込み、version、トランザクション、冪等キー
全担当へ同じイベントを配りたいSNS+専用SQS等のファンアウト
一部メッセージの失敗だけを再試行したいSQS部分バッチ応答+ReportBatchItemFailures
ログインと一時AWS認証情報を分けたいCognito user pool / identity pool
秘密の定期更新を組み込みたいSecrets Manager、アプリ側の再取得・キャッシュ期限
少数の利用者で新版を観測したいCanary+アラーム+切り戻し
要求のどの区間が遅いか知りたい分散トレースと関連ログ
AWSリソースを誰が変更したか知りたいCloudTrail
AIに業務ツールを使わせたい利用者の認可、最小権限、セッション分離、必要な承認

02 / シナリオ問題の読み方

  1. 達成したい要件を一文にする

    「最新値を読む」「全購読先へ配る」「一部だけで検証する」など、動作を言葉にします。

  2. 制約を拾う

    運用負荷、既存構成、同期応答、順序、暗号化、費用など。必要条件を満たさない選択肢を外します。

  3. 誰の責任かを分ける

    再試行は呼び出し元かLambdaかSQSか。認証はCognitoか、AWS権限はIAMか。

  4. 成功時と失敗時を一回ずつ追う

    途中で止まったら何が残るか、もう一度実行したら何が重複するかを考えます。

03 / オリジナル総復習20問

単一選択は一つ、複数選択は指定された二つを選びます。複数選択は完全一致で採点します。回答はページを閉じるとリセットされます。

20問の回答をまとめて確認できます。

QUESTION R01 · 単一選択同じ注文を再送しても二重登録したくない。DynamoDBへの作成方法として適切なのは?
解答・解説を読む

正解:B
条件付き書き込みは存在確認と作成を一つの操作として判定します。確認と書き込みを別々にすると、同時要求が両方とも確認を通過し得ます。TTLは重複防止機能ではありません。

該当する章に戻る →

QUESTION R02 · 単一選択顧客IDを指定して注文一覧を読みたい。Queryで必要なのは?
解答・解説を読む

正解:B
Queryは対象テーブルやインデックスのパーティションキーを等価条件で指定します。ソートキー条件も追加できます。任意属性のフィルターだけでは検索入口になりません。

該当する章に戻る →

QUESTION R03 · 単一選択GSIへ反映される前でも、既知の主キーで更新直後の値を取得したい。適切なのは?
解答・解説を読む

正解:B
テーブルでは強い整合性を指定できます。GSIではできず、フィルターやTTLで反映を同期化することもできません。

該当する章に戻る →

QUESTION R04 · 複数選択SQSバッチ内の失敗したメッセージだけを再試行するために必要なものを2つ選んでください。
解答・解説を読む

正解:A・C
設定と返却形式の両方が必要です。全件成功の応答では失敗メッセージも削除され得ます。非同期DestinationsはSQSの部分バッチ応答の代替ではありません。

該当する章に戻る →

QUESTION R05 · 単一選択SQS FIFOで、顧客ごとの順序を維持しつつ顧客間は並列にしたい。適切なのは?
解答・解説を読む

正解:B
グループ内は順序を維持し、異なるグループは並列化できます。全顧客を一つのグループにすると直列化しやすくなります。重複排除IDは別の目的です。

該当する章に戻る →

QUESTION R06 · 単一選択バケットを公開せず、利用者が短時間だけファイルを直接ダウンロードできるようにしたい。適切なのは?
解答・解説を読む

正解:A
署名付きURLは特定の操作とオブジェクトへの期限付きアクセスを委譲します。CORSは認証・認可の代わりではありません。署名者の権限と認証情報の期限も関係します。

該当する章に戻る →

QUESTION R07 · 単一選択アプリのログイン基盤を用意してJWTを発行したい。まず検討するのは?
解答・解説を読む

正解:A
User poolはアプリ利用者の認証を担います。Identity poolは一時AWS認証情報の取得に使うもので、役割を分けて覚えます。

該当する章に戻る →

QUESTION R08 · 単一選択IAMロールを「誰が引き受けられるか」を定義するのは?
解答・解説を読む

正解:B
信頼ポリシーが引き受ける主体を定義します。ロールで何ができるかはアクセス許可ポリシー等で定義します。

該当する章に戻る →

QUESTION R09 · 単一選択SSE-KMS暗号化オブジェクトの取得時、S3の許可に加えて確認するものは?
解答・解説を読む

正解:A
オブジェクトを取得できる許可とKMSで復号できる許可の両方を確認します。明示的Denyやキーが無効でないかも調べます。

該当する章に戻る →

QUESTION R10 · 単一選択DBパスワードをSecrets Managerでローテーションしている。アプリ側で必要な設計は?
解答・解説を読む

正解:C
保管側で更新しても、アプリが古い値を使い続けると認証に失敗します。取得頻度とキャッシュ期限、再取得を合わせて考えます。

該当する章に戻る →

QUESTION R11 · 複数選択AIツール連携の保護として適切なものを2つ選んでください。
解答・解説を読む

正解:C・D
ツール実行の認可と、データの取り扱いをアプリ側で制御します。外部資料は未信頼データであり、TLSだけでは送信の妥当性を判断できません。

該当する章に戻る →

QUESTION R12 · 単一選択ビルド工程、手動承認、デプロイ工程の進行をつなぐサービスは?
解答・解説を読む

正解:A
CodePipelineがステージをつなぎます。CodeBuildはコマンドの実行、CodeDeployはリビジョンの配置やトラフィック移行を担当します。

該当する章に戻る →

QUESTION R13 · 単一選択CodeBuildで、コードのテストコマンドを設定したい。どこに書く?
解答・解説を読む

正解:B
buildspec.ymlで各フェーズのコマンドやレポート・成果物を指定します。配置時のCodeDeploy AppSpecとは用途が異なります。

該当する章に戻る →

QUESTION R14 · 単一選択新版へ10%だけ送って観測し、問題なければ残りへ移したい。最も合う方式は?
解答・解説を読む

正解:B
少量での観測後に残りを移すのがCanaryです。アラームや検証と組み合わせ、切り戻し条件も定めます。

該当する章に戻る →

QUESTION R15 · 複数選択SAMについて正しいものを2つ選んでください。
解答・解説を読む

正解:B・C
SAMはCloudFormation拡張として定義とデプロイを支援します。ローカル実行と本番のIAM・ネットワークの検証は別で、buildはデプロイではありません。

該当する章に戻る →

QUESTION R16 · 単一選択ECSで「アプリがS3へアクセスする権限」と「イメージ取得等の起動支援」を分けたい。適切なのは?
解答・解説を読む

正解:A
アプリが使うAWS API権限と、ECSがイメージ取得やログ設定に使う権限を区別します。ロールを混同して権限を過剰にしないようにします。

該当する章に戻る →

QUESTION R17 · 単一選択LambdaのAPIでコールドスタートによる遅延を減らす設定は?
解答・解説を読む

正解:B
Provisioned concurrencyは初期化済み環境を用意します。Reserved concurrencyは枠の予約・上限で、初期化待ちを直接なくす機能ではありません。

該当する章に戻る →

QUESTION R18 · 単一選択一件のリクエストで、DBと外部APIのどちらが遅いか知りたい。最適な出発点は?
解答・解説を読む

正解:A
トレースで遅い区間を特定し、対応するログ・メトリクスへ進みます。タイムアウト変更だけでは原因は分かりません。

該当する章に戻る →

QUESTION R19 · 複数選択SQSのキュー件数が増え続ける。原因を調べるうえで適切なものを2つ選んでください。
解答・解説を読む

正解:A・B
流入量、処理速度、失敗、滞留時間を合わせて調べます。滞留の増加が、容量不足か繰り返し失敗かで対応が変わります。削除は業務データを失わせる可能性があります。

該当する章に戻る →

QUESTION R20 · 単一選択開発直後からLambdaのDynamoDB操作がAccessDenied。最初の確認として適切なのは?
解答・解説を読む

正解:A
認証した主体と許可する操作・リソースの一致を確認します。権限不足は待つだけの再試行や同時実行設定では解決しません。

該当する章に戻る →

結果は問題一覧の先頭に表示します。

04 / ローカル実習:冪等キーの意味を確かめる

下のコードをorder_lab.pyとして保存し、python3 order_lab.pyで実行できます。Pythonの標準ライブラリだけを使い、AWSリソースは作成しません。3つのテストが成功することを確認し、重複チェックを外すなどして結果の違いを考えてください。

order_lab.py / Python 3
import unittest

def create_order(store, request_id, quantity):
    if not isinstance(quantity, int) or isinstance(quantity, bool) or quantity <= 0:
        raise ValueError("quantity must be a positive integer")
    if request_id in store:
        if store[request_id]["quantity"] != quantity:
            raise ValueError("same request ID with different input")
        return store[request_id]
    order = {"orderId": request_id, "quantity": quantity}
    store[request_id] = order
    return order

class OrderTests(unittest.TestCase):
    def test_duplicate(self):
        store = {}
        first = create_order(store, "req-1", 2)
        second = create_order(store, "req-1", 2)
        self.assertEqual(first, second)
        self.assertEqual(len(store), 1)

    def test_changed_input(self):
        store = {}
        create_order(store, "req-1", 2)
        with self.assertRaises(ValueError):
            create_order(store, "req-1", 3)

    def test_invalid_quantity(self):
        for value in [0, -1, "2", True]:
            with self.assertRaises(ValueError):
                create_order({}, "req-1", value)

if __name__ == "__main__":
    unittest.main()

次の実習へ進むなら

  1. SAMでLambdaとAPIを作る

    まず固定JSONを返し、イベントとプロキシレスポンスの形式を確認します。

  2. DynamoDBを追加する

    主キーを決め、実行ロールの権限を限定し、条件付き作成と取得を実装します。

  3. SQSで通知を分離する

    重複・部分失敗・DLQ・再試行を試し、キューの滞留を観察します。

  4. 監視と段階リリースを追加する

    構造化ログ、アラーム、バージョンとエイリアス、Canaryを確認します。AWSで行う場合は費用と、作成後の削除までを実習計画に含めます。

05 / つまずきやすい用語

スロットリング
許容される呼び出し量や同時実行数を超えたときの制限。権限拒否とは原因が異なります。
冪等性
同じ要求を繰り返しても、業務上の結果が重複しない性質。
結果整合性
更新の反映に時間差があり、読み取りで以前の状態が返ることがあるモデル。
ファンアウト
一つのイベントを複数の購読先へ配信するパターン。
疎結合
相手の実装や稼働状況への依存を減らした関係。イベント形式などの契約は引き続き必要です。
アーティファクト
ビルド・デプロイで受け渡す成果物。ZIPやコンテナイメージなど。
ロールバック
異常時に以前のリビジョンや状態へ戻すこと。DBスキーマ変更等があると単純に戻せないため、変更の互換性も考えます。
RTO / RPO
それぞれ復旧までの目標時間 / 許容するデータ損失の時間の目標。DVAではアプリの復旧やデータ保護の文脈で整理します。

06 / 仕上げのチェック

上のチェックは、このページでの振り返り用です。章単位の進捗は下のボタンで記録できます。

一周した後は、弱い章を読み直し、AWS公式の練習問題や実習で補強しましょう。正答だけでなく、設問の要件を一文で説明できるかを振り返ると理解の穴を見つけやすくなります。

次に読む公式資料

内容確認日:2026年11月8日。仕様の詳細や更新情報は、各公式資料で確認できます。

おつかれさまでした。

理解を確認できたら、章の進捗を記録できます。