Instiq
第2章 · 新しいソリューションの設計·v2.1.0·更新 2026/7/16·読了目安 約10分

変更要約: 軸B網羅: 構築ブロック(コンピュート/DB/ストレージ/ネットワーク=s4、分析/ML/IoT/メディア/統合=s5)のカタログ節を追加

2.3データ層の選択と暗号化

この節の要点

適切なデータ層と保護——RDS/AuroraDynamoDBS3 ストレージクラスの選択、KMS による暗号化、Secrets Manager、保存時/転送時の暗号化——を理解します。要件に合うデータストアを安全に選びます。

データ層はアクセスパターンで選びます。関係データは RDS/Aurora、キー値・大規模低遅延は DynamoDB、オブジェクトは S3。すべて KMS で暗号化できます。

2.3.1データストアと暗号化

アクセスパターンに応じたデータストア選択を示した図。関係データ/トランザクション=Amazon RDS・Aurora(マルチ AZ/リードレプリカ)、キー値・大規模低遅延=DynamoDB(オンデマンド/グローバルテーブル)、オブジェクト/大容量=Amazon S3(ストレージクラス: Standard・Intelligent-Tiering・Glacier)と並べ、すべて AWS KMS による保存時暗号化(カスタマー管理キー/エンベロープ暗号化)と転送時 TLS で保護し、認証情報やデータベースパスワードは Secrets Manager で管理・自動ローテーションする様子を添えた図。
データストア選択と暗号化
  • RDS/Aurora:関係データ/トランザクション。マルチ AZ で HA、リードレプリカで読み取りスケール。
  • DynamoDB:キー値・大規模低遅延。サーバーレス、グローバルテーブルでマルチリージョン。
  • S3 ストレージクラス:アクセス頻度で Standard/Intelligent-Tiering/Glacier を使い分けコスト最適化。
  • KMS/Secrets ManagerKMS で保存時暗号化(エンベロープ暗号化)、Secrets Manager で資格情報を管理・自動ローテーション。
試験ポイント

「関係データ=RDS/Aurora」「キー値・超低遅延・サーバーレス=DynamoDB」「オブジェクト+階層化コスト最適化=S3 ストレージクラス(Intelligent-Tiering/Glacier)」「鍵管理/保存時暗号化=KMS」「DB パスワードの自動ローテーション=Secrets Manager」 は SAP-C02 で頻出です。アクセスパターンから逆算してストアを選ぶのが鉄則です。

補足

アクセス頻度が読めないデータは S3 Intelligent-Tiering が自動で階層化しコストを最適化します。長期保管・めったにアクセスしないアーカイブは Glacier 系が安価です。

データストアはアクセスパターンから逆算します。関係/トランザクションRDS/AuroraAurora は分散ストレージ・最大 15 の リードレプリカGlobal Database でクロスリージョン・Serverless v2)、キー値/超低遅延/サーバーレスDynamoDBパーティションキー 設計・オンデマンド/プロビジョンドDAX でマイクロ秒・グローバルテーブル)、分析/DWHRedshift全文検索OpenSearchキャッシュElastiCacheオブジェクトS3(クラス:Standard/Intelligent-Tiering/Standard-IA/One Zone-IA/Glacier Instant・Flexible・Deep Archiveライフサイクルポリシーで自動移行)。保護は KMSエンベロープ暗号化CMK自動キーローテーション・S3/EBS/RDS の SSE)と転送時 TLS、資格情報は Secrets Manager自動ローテーション/設定は SSM パラメータストア)。アクセス制御は IAM/リソースポリシー/VPC エンドポイントポリシー、データ主権は リージョン選択。「読めないアクセスは Intelligent-Tiering」「アーカイブは Glacier」「マイクロ秒読み取りは DAX」「パスワード自動ローテは Secrets Manager」を要件から選びます。

アクセスパターン選ぶストア要点
関係/トランザクションRDS / AuroraマルチAZ・リードレプリカ・Global DB
キー値・超低遅延DynamoDB(+DAX)サーバーレス・グローバルテーブル
オブジェクト/大容量S3(クラス使い分け)Intelligent-Tiering/Glacier
分析/DWHRedshift列指向・大規模集計
補足

シナリオ: グローバルなゲームのプレイヤーデータを、1 桁ミリ秒(ホットデータはマイクロ秒)で複数リージョンから低遅延に読み書きしたい。→ DynamoDB(グローバルテーブルでマルチリージョン・アクティブ-アクティブ)を選び、超高速読み取りに DAX を前段配置。暗号化は KMS(保存時)+TLS(転送時)、アプリの DB 認証情報は Secrets Manager で自動ローテーションします。

補足

FAQ: Q. KMS と Secrets Manager の違いは? → A. KMS は暗号鍵の管理/暗号化、Secrets Manager は資格情報(パスワード/接続文字列)の保管と自動ローテーション。Q. アクセス頻度が読めない S3 データは? → A. Intelligent-Tiering が自動階層化。決まった移行ルールがあるならライフサイクルポリシーで Glacier 系へ移します。

注意

ひっかけ: 「資格情報の保管と自動ローテーションに KMS を使う」は誤りです。鍵管理/暗号化は KMS、資格情報の保管・自動ローテーションは Secrets Manager。また「超低遅延のキー値に RDS を選ぶ」も誤り(キー値・1 桁ms は DynamoDB、マイクロ秒は DAX)。

2.3.2この節のまとめ

  • 選択=RDS/Aurora(関係)/DynamoDB(キー値)/S3(オブジェクト)
  • 保護=KMS(暗号化)+Secrets Manager(資格情報ローテーション)

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. 1 桁ミリ秒の低遅延で、ほぼ無制限にスケールするキー値ストアを、サーバー管理なしで使いたい。何を選びますか?

Q2. アクセス頻度が予測できないオブジェクトデータのストレージコストを、運用負荷なく自動で最適化したい。S3 の何を使いますか?

Q3. データベースの認証情報をコードに埋め込まず、定期的に自動ローテーションして安全に管理したい。何を使いますか?

理解度を確認第2章「新しいソリューションの設計」の問題を解く