本文へスキップ
BecomeCoder

AWS SAP(ソリューションアーキテクト プロフェッショナル)コース · 第7章 事業継続性とディザスタリカバリ · レッスン40

データ層のDR ― Global Database / Global Tables / CRR

導入

DR設計で最も難しいのがデータ層です。アプリケーションサーバーは作り直せますが、データは複製しておかなければ二度と戻りません。ここでは主要なデータストアごとに、RPOをどこまで縮められるかを見ていきます。

説明

主要なデータサービスには、それぞれ専用のクロスリージョン複製機能があります。

サービス機能複製方式目安RPO
AuroraGlobal Databaseストレージレベルの非同期レプリケーション1秒未満
DynamoDBGlobal Tablesマルチアクティブなレプリケーション1秒未満
S3クロスリージョンレプリケーション(CRR)オブジェクト単位の非同期コピー数分〜(S3 RTC利用で15分保証)
flowchart LR
    subgraph R1["プライマリリージョン"]
        A1["Aurora Primary"]
        D1["DynamoDB Table"]
        S1["S3 Bucket"]
    end
    subgraph R2["セカンダリリージョン"]
        A2["Aurora Secondary<br/>(読み取り可・昇格可)"]
        D2["DynamoDB Table(レプリカ)"]
        S2["S3 Bucket(レプリカ)"]
    end
    A1 -->|"1秒未満の非同期複製"| A2
    D1 <-->|"マルチアクティブ複製"| D2
    S1 -->|"CRR(数分〜)"| S2

それぞれの特徴を押さえます。

  • Aurora Global Database: 1つのプライマリリージョンと、最大複数のセカンダリリージョン(読み取り専用)で構成。障害時はセカンダリを書き込み可能に昇格(通常1分未満)させる。パイロットライト〜ウォームスタンバイ向き。
  • DynamoDB Global Tables: すべてのリージョンが読み書き可能なマルチアクティブ構成。アクティブ-アクティブのマルチサイト戦略に直結する。
  • S3 CRR: バケット単位でオブジェクトを別リージョンへ複製。S3 Replication Time Control(RTC) を有効化すると、99.99%のオブジェクトを15分以内に複製する、というSLAが付く。

具体例

グローバルサービスのDRを、データの性質ごとに複製方式で使い分けます。3つの「書き込みの形」が決め手です。

  • 注文DB(書き込みは日本の1拠点から、RPOほぼゼロ)→ Aurora Global Database … 東京がプライマリ(書き込み)、大阪はセカンダリ(読み取り専用)。1秒未満で複製され、災害時は大阪を書き込み可能に昇格(通常1分未満)。「書き込みは1リージョンでよい」ケース。
  • ユーザーのカート(日本・欧州の両方から書き込みたい)→ DynamoDB Global Tables … 全リージョンが読み書き可能なマルチアクティブ。各地のユーザーが自国リージョンへ低遅延で書ける。アクティブ-アクティブのマルチサイトに直結。
  • 商品画像(静的・複製にSLA保証が欲しい)→ S3 CRR+RTC … クロスリージョンレプリケーションで別リージョンへ。RTCを有効にすると「99.99%を15分以内に複製」というSLAが付く。

判断軸は「書き込みが1リージョンか、複数リージョンからか」。1つならAurora Global Database、複数同時ならDynamoDB Global Tables、静的でSLA重視ならS3 CRR+RTC。この複製方式の違いがそのまま出題の切り分けです。

読んでみよう

「RPOをほぼゼロにしたいが、書き込みは1リージョンからでよい」ならAurora Global Database、「複数リージョンから同時に書き込みたい」ならDynamoDB Global Tables、「静的コンテンツの複製にSLA付きの保証が欲しい」ならS3 CRR+RTC、というようにサービスごとの複製方式の違いが、そのまま出題の切り分けポイントになります。

次のレッスンへ →