グローバルテーブルは、Amazon DynamoDB のグローバルフットプリントをベースに構築され、大規模なグローバルアプリケーションのローカルでの高速な読み取りおよび書き込みパフォーマンスを実現する、フルマネージドのマルチリージョン、マルチアクティブのグローバルデータベースを提供します。グローバルテーブルは、選択する AWS リージョン全体にわたって DynamoDB テーブルを自動的にレプリケートします。

グローバルテーブルを使用することで、困難を要するリージョン間のデータのレプリケーション作業が排除され、更新の手間が解消すると共に、アプリケーションのビジネスロジックに注力できるようになります。さらに、グローバルテーブルを使用すると、1 つのリージョン全体の隔絶や不具合が万一発生した場合でも、アプリケーションを可用性が高い状態に維持できます。

AWS マネジメントコンソールまたは AWS CLI でグローバルテーブルを設定できます。グローバルテーブルでは既存の DynamoDB API を使用するため、アプリケーションに変更を加える必要はありません。グローバルテーブルは初期費用や契約が不要で、プロビジョニングされたリソースの料金のみでご利用いただけます。グローバルテーブルの設定について詳しくは、DynamoDB デベロッパーガイドを参照してください。

仕組み

DynamoDB グローバルテーブルを作成すると、DynamoDB が単一のユニットとして扱う複数のレプリカテーブル (AWS リージョンごとに 1 つ) で構成されます。すべてのレプリカのテーブル名と主キースキーマは同じです。アプリケーションがあるリージョンのレプリカテーブルにデータを書き込むと、DynamoDB は書き込みを他の AWS リージョンの他のレプリカテーブルに自動的に伝播します。

グローバルテーブルの動作を示す図

たとえば、米国の東海岸、米国の西海岸、欧州西部の 3 つの地域にまたがる大規模な顧客ベースがあるとします。お客様は、アプリケーションを使用してプロファイル情報を更新できます。マネージドレプリケーションソリューションがない場合は、これらの各リージョンのテーブル間でデータの変更をレプリケートするコードを作成するかもしれません。しかし、これには時間と労力を要します。

独自のコードを記述する代わりに、3 つのリージョンテーブルを参照するグローバルテーブルを作成すると、DynamoDB はこれらのテーブル間でデータの変更を自動的にレプリケートし、あるリージョンへの変更が他のリージョンにシームレスに伝播されるようにします。さらに、AWS リージョンの 1 つが一時的に利用できなくなった場合でも、お客様は他のリージョンの同じデータにアクセスできます。

利点

ローカルの読み取りと書き込みで、グローバルなデータアクセスを実現

マルチアクティブのレプリケーションでは、あるリージョンで発生した更新が他のリージョンにも伝播し、最終的にすべてのリージョンのデータの一貫性が保たれることが保証されています。つまり、世界各地に分散しているアプリケーションそれぞれでローカルにアクセスされるテーブルで、常に最新の状態が保たれます。

パフォーマンス

グローバルテーブルではデータをローカルで読み書きすることができ、世界各地に分散されるアプリケーションの規模に関わらず、1 桁ミリ秒のレイテンシーが提供されます。

設定と操作が簡単

グローバルテーブルを使用すると、DynamoDB のテーブルをグローバルに使用できるようにデプロイおよび管理する場合に問題となる、複雑さと運用上の負担がなくなります。データをレプリケートするリージョンを選択するだけで、残りの処理は DynamoDB に任せることができます。アプリケーションでは、既存の DynamoDB API およびエンドポイントを使用してグローバルテーブルにアクセスできます。

可用性、耐久性、マルチリージョンの耐障害性

グローバルテーブルを使用すると、ビジネス継続性のために、アプリケーションの可用性と高いパフォーマンスを確保できます。単一の AWS リージョンが分離または機能低下した場合、アプリケーションは別のリージョンにリダイレクトし、別のレプリカテーブルに対して読み取りと書き込みを実行できます。カスタムビジネスロジックを適用して、リクエストを他のリージョンにリダイレクトするタイミングを決定できます。 DynamoDB は、実行されたがまだすべてのレプリカテーブルに伝播していない書き込みを追跡します。リージョンがオンラインに戻ると、DynamoDB はそのリージョンと他のリージョンのレプリカテーブルとの間の保留中の書き込みの伝播を再開します。

一貫性と競合の解決

レプリカテーブルのアイテムに加えられた変更は、同じグローバルテーブル内の他のすべてのレプリカにレプリケートされます。グローバルテーブルでは、新しく書き込まれた項目は通常、1 秒以内にすべてのレプリカテーブルに伝播されます。 グローバルテーブルでは、各レプリカテーブルに同じデータ項目のセットが格納されます。DynamoDB は、一部の項目のみの部分レプリケーションをサポートしていません。 アプリケーションが異なるリージョンの同じ項目をほぼ同時に更新すると、競合が発生する可能性があります。結果整合性を確保するために、DynamoDB グローバルテーブルは、同時更新間の最終書き込み者優先の調整を実行します。この実行においては、DynamoDB は、最終書き込みを決定するために最善を尽くします。この競合の解決メカニズムにより、すべてのレプリカは最新の更新に同意し、すべてが同じデータを持つ状態となります。

今すぐ始める

まず、既存のテーブルをグローバルテーブルに変換するか、DynamoDB コンソールまたは AWS CLI を使用して新しいグローバルテーブルを作成します。

      ベストプラクティス

        お客様事例

        「COVID-19 パンデミックが始まったとき、私たちの音声、動画サービスには膨大な需要がありました。2020 年初頭には、仮想的な接続を必要とする新規および既存のお客様、1 日のミーティング参加数 1,000 万から 3 億へと、かつてないほど利用が増加しました。バックエンドでは、Zoom Meetings 用の Amazon DynamoDB を使ってこの急増を管理することができました。DynamoDB のグローバルテーブルとオンデマンドモードを併用することで、利用が急増してもパフォーマンスに問題はなく、ほぼ無限にスケールすることができました」。

        Zoom Video Communications, Inc.、クラウドオペレーション担当エンジニアリングマネージャー、Yasin Mohammed 氏

            グローバルテーブルの詳細
            DynamoDB グローバルテーブルの詳細

            Amazon DynamoDB デベロッパーガイドを見る

            詳細 
            無料のアカウントにサインアップ
            無料のアカウントにサインアップ

            AWS 無料利用枠にすぐにアクセスできます。 

            サインアップ 
            コンソールで構築を開始する
            コンソールで構築を開始する

            DynamoDB コンソールで DynamoDB グローバルテーブルの構築を開始します。

            構築を開始する