⚡ 可用性・障害対応:DynamoDBの使いどころ

【DynamoDBの役割(耐障害性と高可用性)】

目次

🔍 1. 結論

💎 一言でいうと Amazon DynamoDB は、デフォルトで 3つのアベイラビリティゾーン(AZ)にデータを自動複製(レプリケーション)する ため、最初から極めて高い弾力性と高可用性を備えたサーバーレスNoSQLデータベースです。

  • EC2のセッション状態をDynamoDBに逃がすことで、EC2側の弾力性(ステートレス設計)を助ける。
  • リージョンレベルの災害(DR)には グローバルテーブル(Global Tables) を使用して別リージョンと双方向同期(アクティブ – アクティブ)させる。

📈 2. SAAで出やすいポイント

  • マルチAZがデフォルト: RDSのように自分で「Multi-AZ」を設定しなくても、DynamoDBはデータを書き込んだ瞬間に自動的に3つのAZへデータを分散保存し、AZ障害に耐えます。
  • ステートレス設計の要: Auto Scalingで増減するEC2インスタンスがユーザーのログイン情報(セッション)を保持しないように、セッション情報の保存先としてDynamoDB(またはElastiCache)がよく利用されます。
  • DynamoDB グローバルテーブル (Global Tables): 複数のAWSリージョンにまたがってデータを自動的に同期する機能。「アクティブ – アクティブ」(どちらのリージョンからでも読み書き可能)なマルチリージョンアーキテクチャを構築する際の正解になります。

🗝 3. キーワードでの判断

問題文のキーワード 疑う機能・構成
🌍 「複数リージョンで読み書き可能なDB」「マルチリージョンのアクティブ-アクティブ構成」 DynamoDB グローバルテーブル (Global Tables)
🔄 「Auto Scaling環境のEC2でセッション情報を共有・維持したい」 DynamoDB にセッションを保存する
📈 「トラフィックが予測不可能なため、自動でスケールするDBが欲しい」 DynamoDB (オンデマンドキャパシティ)

⚠️ 4. ひっかけポイント

🚫 よくある誤答パターン – 「RDSでマルチリージョンのアクティブ-アクティブ構成を作る」 → RDS(や通常のAurora)のマルチリージョン構成は基本的に「アクティブ – スタンバイ(リードレプリカ)」です。読み書き(Read/Write)の両方を複数リージョンで同時に行いたい場合は DynamoDB グローバルテーブル が適しています。 – 「EC2のローカルディスクにセッションを保存して可用性を高める」 → アンチパターンです。EC2が死ぬとセッションが切れてユーザーがログアウトされてしまいます。


💡 5. 覚え方

🧠 暗記ショートカット – DynamoDB グローバルテーブル = 「どこでもドア付きのノート」。 – 東京のノートに書き込んだ内容が、1秒以内にアメリカのノートにも書き込まれ、アメリカの人も同じノートに書き込みができる(アクティブ-アクティブ)。


📚 6. 関連サービス

アイコン サービス名 DynamoDB(弾力性)との関連
💻 Amazon EC2 DynamoDBをセッションストアとして使うことで、安全にスケールイン/アウトできる
🌐 Route 53 グローバルテーブルと組み合わせ、レイテンシールーティングで最寄りのDBにアクセスさせる
⚡ Amazon ElastiCache 同じくセッション保存に使えるが、永続性(データが消えないこと)を重視するならDynamoDBを選ぶ

🗒️ 7. Obsidian管理メモ

  • 見返すタイミング: マルチリージョンアーキテクチャ(DR設計)、ステートレス設計の学習時
  • 関連ノート候補: AWS_SAA_Active_Active_Architecture, AWS_SAA_Stateless

8. HTMLファイル名: AWS_弾力性設計_DynamoDB.html

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次