グローバルテーブル – DynamoDB の複数リージョンレプリケーション - Amazon DynamoDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

グローバルテーブル – DynamoDB の複数リージョンレプリケーション

Amazon DynamoDB グローバルテーブルにより、フルマネージドで、マルチリージョン、マルチアクティブなデータベースオプションが提供されます。このオプションでは、大規模に拡張されたグローバルアプリケーションからの読み込み/書き込みのパフォーマンスが高速に、かつローカルに実現されます。

グローバルテーブルは、マルチリージョン、マルチアクティブデータベースをデプロイするためのフルマネージドソリューションです。独自のレプリケーションソリューションを構築および管理する必要はありません。テーブルを使用可能にするリージョンを指定すると、DynamoDB AWS は進行中のデータ変更をすべてのリージョンに伝達します。

グローバルテーブルを使用する具体的な利点は次のとおりです。

  • 選択したリージョンに DynamoDB テーブルを自動的にレプリケートする AWS

  • リージョン間でデータをレプリケートし、更新の競合を解決するという困難な作業が不要になるため、アプリケーションのビジネスロジックに集中できます。

  • 可能性は低いものの、リージョン全体が分離またはパフォーマンスが低下した場合でも、アプリケーションの可用性を高く保つのに役立ちます。

DynamoDB グローバルテーブルは、グローバルに分散したユーザーがいる場合など、大規模にスケールされたアプリケーションを使用する場合に最適です。このような環境では、ユーザーは、非常に高速なアプリケーションパフォーマンスを期待します。グローバルテーブルは、世界中のリージョンへのマルチアクティブレプリケーションを自動的に行います。 AWS ユーザーがどこにいても、低レイテンシーでデータを提供することができます。

次の動画では、グローバルテーブルの概要を紹介します。

AWS AWS CLIグローバルテーブルは管理コンソールまたはで設定できます。グローバルテーブルは既存の DynamoDB API を使用するため、アプリケーションを変更する必要はありません。プロビジョニングされたリソースに対してのみ料金が発生します。前払い料金や契約はありません。

グローバルテーブルを使用してリージョン間でシームレスにデータをレプリケートする

米国東海岸、米国西海岸、西ヨーロッパという 3 つの地域領域にわたる大規模な顧客ベースがあるとします。これらのユーザーは、アプリケーションの使用中に自分のプロファイル情報を更新できます。このユースケースを満たすには、ユーザーが所在する 3 つの異なる CustomerProfiles リージョンで、 AWS という名前の同一の DynamoDB テーブルを 3 つ作成する必要があります。これらの 3 つのテーブルは互いに完全に分離され、1 つのテーブルのデータを変更しても他のテーブルに反映されることはありません。マネージド型のレプリケーションソリューションを使用しない場合、コードを書き込んで、データ変更をレプリケートする必要があります。ただし、これを行うには時間も労力もかかります。

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

注記
  • グローバルテーブル グローバルテーブルバージョン 2017.11.29 (レガシー) のリージョンのサポートは、米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (北カリフォルニア)、米国西部 (オレゴン)、欧州 (アイルランド)、欧州 (ロンドン)、欧州 (フランクフルト)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、アジアパシフィック (ソウル) に制限されています。

  • トランザクションオペレーションは、書き込みが最初に行われたリージョン内でのみ、不可分性、一貫性、分離性、および耐久性 (ACID) を保証します。グローバルテーブルのリージョン間では、トランザクションはサポートされていません。たとえば、米国東部 (オハイオ) リージョンと米国西部 (オレゴン) リージョンのレプリカを含むグローバルテーブルがあり、米国東部 (バージニア北部) TransactWriteItems リージョンで操作を実行すると、変更が複製されるにつれて、米国西部 (オレゴン) リージョンで部分的に完了したトランザクションが表示されることがあります。変更は、ソースリージョンでコミットされると、他のリージョンにのみレプリケートされます。

  • AWS リージョンを無効にすると、DynamoDB はリージョンにアクセスできないことを検出してから 20 時間後に、このレプリカをレプリケーショングループから削除します AWS 。レプリカは削除されず、このリージョンとの間でレプリケーションが停止します。

  • ソーステーブルを正常に削除するには、リードレプリカを追加してから 24 時間待つ必要があります。リードレプリカを追加してから最初の 24 時間以内にテーブルを削除しようとすると、「過去 24 時間以内にテーブルに追加された新しいレプリカのソースリージョンとして機能しているため、レプリカを削除できません」というエラーメッセージが表示されます。

  • 新しいレプリカを追加しても、ソースリージョンのパフォーマンスへの影響はありません。

  • レプリカの読み取りキャパシティと書き込みキャパシティを変更すると、新しい書き込みキャパシティは他の同期レプリカに反映されますが、新しい読み取りキャパシティは反映されません。

AWS リージョンの可用性と料金については、「Amazon DynamoDB 料金表」を参照してください。

次のようにしてグローバルテーブルにセキュリティとアクセスを提供します。 AWS KMS

  • AWSServiceRoleForDynamoDBReplicationAWS マネージドキーカスタマー管理キーまたはレプリカの暗号化に使用されたキーに対してサービスにリンクされたロールを使用して、 AWS KMS グローバルテーブルに対して操作を実行できます。

  • レプリカの暗号化に使用されるカスタマーマネージドキーにアクセスできない場合、DynamoDB はこのレプリカをレプリケーショングループから削除します。KMS キーにアクセスできないことが検出されてから 20 時間後に、レプリカは削除されず、このリージョンとの間でレプリケーションが停止します。

  • レプリカテーブルの暗号化に使用されるカスタマーマネージドキー を無効にする場合は、キーがレプリカテーブルの暗号化に使用されなくなった場合にのみ無効にする必要があります。レプリカテーブルを削除するコマンドを発行した後、キーを無効にする前に、削除オペレーションが完了し、グローバルテーブルが Active になるのを待つ必要があります。そうしないと、レプリカテーブルとの間で部分的なデータレプリケーションが行われる可能性があります。

  • レプリカテーブルの IAM ロールポリシーを変更または削除する場合は、レプリカテーブルが Active 状態のときに行う必要があります。この操作を行わないと、レプリカテーブルの作成、更新、削除が失敗する可能性があります。

  • グローバルテーブルは、作成時、デフォルトで削除保護が無効になっています。グローバルテーブルで削除保護が有効になっている場合でも、そのテーブルのレプリカの最初の状態ではデフォルトで削除保護が無効になっています。

  • テーブルの削除保護が無効になっている間は、誤って削除される可能性があります。テーブルの削除保護が有効になっている間は、誰も削除できません。

  • 1 つのレプリカテーブルの削除保護設定を変更しても、グループ内の他のレプリカは更新されません。

注記

カスタマーマネージドキーは、グローバルテーブルバージョン 2017.11.29 (レガシー) でサポートされていません。DynamoDB グローバルテーブルでカスタマー管理キーを使用する場合は、テーブルをグローバルテーブルバージョン 2019.11.21 (Current) にアップグレードしてから有効にする必要があります。