Amazon DynamoDB Global Tables のアイコン

Amazon DynamoDB Global Tables

DynamoDB テーブルを複数リージョンにアクティブ-アクティブでレプリケーションする機能

何ができるか

Amazon DynamoDB Global Tables は、DynamoDB テーブルを複数の AWS リージョンに自動的にレプリケーションする機能です。各リージョンで読み書きが可能なアクティブ-アクティブ構成を実現し、グローバルアプリケーションに低レイテンシのデータアクセスを提供します。

どのような場面で使うか

グローバルに展開するモバイルアプリやゲームのデータ同期、マルチリージョンの災害復旧、地理的に分散したユーザーへの低レイテンシアクセスの提供に利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

世界各地に支店を持つ銀行に例えられます。どの支店 (リージョン) でも口座の残高 (データ) を確認・更新でき、変更は自動的に全支店に同期されます。

Global Tables とは

DynamoDB Global Tables は、テーブルのマルチリージョンレプリケーションを提供する機能です。レプリカテーブルを追加するリージョンを指定するだけで、データが自動的に双方向で同期されます。各リージョンのレプリカは読み書き可能で、通常 1 秒以内にデータが伝播します。

コンフリクト解決と整合性

複数のリージョンで同じ項目が同時に更新された場合、Global Tables は「最後の書き込みが勝つ (Last Writer Wins)」方式でコンフリクトを解決します。タイムスタンプが最も新しい更新が最終的な値になります。アプリケーション側でコンフリクトを避ける設計 (リージョン固有のデータ分割など) も有効です。

はじめかた

DynamoDB コンソールで既存のテーブルを選択し、「グローバルテーブル」タブから「レプリカの作成」でリージョンを追加します。DynamoDB Streams が自動的に有効化され、レプリケーションが開始されます。レプリカの追加・削除はオンラインで実行でき、ダウンタイムは発生しません。

注意点

  • レプリカリージョンごとに書き込みキャパシティユニットの料金が発生する。レプリケーションのデータ転送料金も加算される
  • コンフリクト解決は Last Writer Wins 方式のため、同一項目の同時更新が頻繁に発生するワークロードでは設計上の考慮が必要

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。