注記
マルチリージョンの強力な整合性 (MRSC) はプレビュー版で利用でき、変更される可能性があります。
マルチリージョンの強力な整合性 (MRSC) は、プレビューで使用できる新しい DynamoDB グローバルテーブル機能です。MRSC 用に設定されたグローバルテーブルは、マルチリージョンスコープで強力な整合性のある読み込みを実行する機能を提供します。MRSC テーブルで強力な整合性のある読み込みを実行すると、読み込みを実行するリージョンに関係なく、常に項目の最新バージョンを読み取ることができます。
マルチリージョンの強力な整合性のグローバルテーブルを使用して、目標復旧時点 (RPO) を 0 にしてアプリケーションを構築できます。RPO が 0 の場合、アプリケーションの中断によってトラフィックが別の AWS リージョンに移行される場合でも、アプリケーションは常に最新バージョンの DynamoDB データを読み取ることができます。
MRSC プレビューは、グローバルテーブルバージョン 2019.11.21 (現行) でのみサポートされています。
グローバルテーブルの整合性モード
グローバルテーブルを作成するときに、その整合性モードを設定できます。グローバルテーブルには、結果整合性と強力な整合性 (プレビュー) のマルチリージョン整合性モードが用意されています。
グローバルテーブルの作成時に整合性モードを指定しない場合、グローバルテーブルはデフォルトでマルチリージョンの結果整合性 (MREC) になります。グローバルテーブルには、異なる整合性モードで設定されたレプリカを含めることはできません。グローバルテーブルの整合性モードを変更することはできません。
マルチリージョンの結果整合性 (MREC)
マルチリージョンの結果整合性 (MREC) は、グローバルテーブルのデフォルトの整合性モードです。MREC グローバルテーブルレプリカの項目に加えた変更は、通常は 1 秒以内で他のすべてのレプリカにレプリケートされます。つまり、ConsistentRead パラメータを true
(強力な整合性のある読み込み) に設定して行われた読み込みオペレーションは、項目が読み込みが発生したリージョンで更新された場合は常に項目の最新バージョンを返しますが、項目が別のリージョンで更新された場合は古いデータを返す可能性があります。
同じ項目が複数のリージョンで同時に変更されているために発生する競合は、last writer wins アプローチで解決されます。
MREC グローバルテーブルは、MRSC グローバルテーブルと比較して書き込みレイテンシーが低く、強力な整合性のある読み込みレイテンシーを持ちます。
次の場合は、MREC モードを使用する必要があります。
-
アプリケーションは、データが別のリージョンで更新された場合に、強力な整合性のある読み込みオペレーションから返される古いデータを許容できます。
-
マルチリージョンの読み取り整合性よりも、書き込みレイテンシーが低く、強力な整合性のある読み込みレイテンシーを優先します。
-
マルチリージョンの高可用性戦略では、0 を超える RPO を許容できます。
マルチリージョンの強力な整合性 (プレビュー)
注記
マルチリージョンの強力な整合性 (MRSC) はプレビュー版で利用でき、変更される可能性があります。
MRSC グローバルテーブルレプリカの項目に加えた変更は、強力な整合性のある読み込みで、グローバルテーブルの他のレプリカテーブルですぐに読み取ることができます。つまり、ConsistentRead
パラメータを true
(強力な整合性のある読み込み) に設定して行われた読み込みオペレーションは、常にレプリカテーブルから項目の最新バージョンを返します。
書き込みオペレーションによって、別のリージョンで既に変更されている項目が変更される場合、その書き込みオペレーションは ReplicatedWriteConflictException
で失敗します。ReplicatedWriteConflictException
で失敗した書き込みは再試行でき、競合する更新が解決され、他の競合する更新が進行中でない場合、成功します。
MRSC グローバルテーブルは、MREC グローバルテーブルと比較して書き込みレイテンシーが高く、強力な整合性のある読み込みレイテンシーを持ちます。
MRSC モードは、次の場合に使用します。
-
マルチリージョンスコープでの強力な整合性のある読み込み保証が必要です。
-
グローバル読み取り整合性は、書き込みレイテンシーの短縮よりも優先されます。
-
マルチリージョンの高可用性戦略では、RPO を 0 にする必要があります。
MRSC プレビューのリージョンの可用性
MRSC プレビューは以下の AWS リージョンで使用できます。
-
米国東部 (バージニア北部) – us-east-1
-
米国東部 (オハイオ) – us-east-2
-
米国西部 (オレゴン) – us-west-2
MRSC プレビューの考慮事項
MRSC でグローバルテーブルを使用する場合、プレビューには次の考慮事項が適用されます。
ワークロードの考慮事項
-
MRSC のグローバルテーブルはプレビューでのみ使用できます。本番稼働用ワークロードには使用しないでください。
-
MRSC テーブルのパフォーマンスとスループットの特性は、プレビュー全体で変更される可能性があります。
機能のサポート
-
プレビューでは、Amazon 所有のキーのみがサポートされています。
-
AWS マネージドキー はプレビューではサポートされていません。
-
カスタマーマネージドキーは、プレビューではサポートされていません。
-
リソースベースのポリシーを使用して、リージョン間のレプリケーションを中断することはできません。
-
CloudWatch Contributor Insights の情報は、プレビューで MRSC グローバルテーブルのオペレーションが発生したリージョンについてのみ報告されます。
-
プレビューの MRSC グローバルテーブルでは、有効期限 (TTL) はサポートされていません。
-
ローカルセカンダリインデックス (LSI) は、プレビューの MRSC グローバルテーブルではサポートされていません。
-
トランザクション API はプレビューではサポートされていません。
MREC グローバルテーブルとの動作の違い
-
MRSC プレビューは、限られたリージョンで利用できます。
-
MRSC グローバルテーブルには、正確に 3 つのレプリカテーブルが含まれている必要があります。
-
データを含まない既存の単一リージョンテーブルに 2 つのレプリカテーブルを追加して、MRSC グローバルテーブルを作成する必要があります。
-
MRSC グローバルテーブルから単一のレプリカテーブルを削除することはできません。MRSC グローバルテーブルを削除するには、1 つのアクションで 2 つのレプリカテーブルを削除し、その結果として 1 つのリージョンテーブルを作成する必要があります。その後、残りの単一リージョンテーブルを削除できます。
-
グローバルセカンダリインデックスのキー違反は、最初のバックフィル期間を超えて発生する可能性があります。
クォータ
-
AWS アカウント は、MRSC で最大 3 つのグローバルテーブルを持つことができます。
-
プロビジョンされたキャパシティモードの書き込みスループットは、10,000 のレプリケートされた書き込みキャパシティユニット (rWCU) に制限されます。
-
プロビジョンされたキャパシティモードの読み取りスループットは、10,000 の読み込みキャパシティユニット (RCU) に制限されます。
-
オンデマンドキャパシティモードの書き込みスループットは、10,000 のレプリケートされた書き込みリクエストユニット (rWRU) に制限されます。
-
オンデマンドキャパシティモードの読み取りスループットは、10,000 の読み込みリクエストユニット (RRU) に制限されます。