Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

MemoryDB マルチリージョン

フォーカスモード
MemoryDB マルチリージョン - Amazon MemoryDB

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

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

MemoryDB マルチリージョンは、フルマネージドのアクティブ/アクティブマルチリージョンデータベースです。これにより、最大 99.999% の可用性とマイクロ秒の読み取りおよび 1 桁ミリ秒の書き込みレイテンシーでマルチリージョンアプリケーションを構築できます。リージョンの劣化による可用性と回復性の両方を向上させると同時に、マルチリージョンアプリケーションの低レイテンシーのローカル読み取りと書き込みのメリットも享受できます。

MemoryDB マルチリージョンを使用すると、高可用性のマルチリージョンアプリケーションを構築して、耐障害性を向上させることができます。アクティブ/アクティブレプリケーションを提供するため、マイクロ秒の読み取りレイテンシーと 1 桁ミリ秒の書き込みレイテンシーで、顧客に最も近いリージョンからの読み取りと書き込みをローカルで処理できます。MemoryDB マルチリージョンはリージョン間でデータを非同期的にレプリケートし、データは通常 1 秒以内に伝播されます。更新の競合を自動的に解決し、データ相違の問題を修正して、アプリケーションに集中できるようにします。

MemoryDB マルチリージョンは現在、米国東部 (バージニア北部およびオハイオ)、米国西部 (オレゴン、北カリフォルニア)、欧州 (アイルランド、フランクフルト、ロンドン)、アジアパシフィック (東京、シドニー、ムンバイ、ソウル、シンガポール) の各 AWS リージョンでサポートされています。

から数回クリックするだけで、 AWS Management Console または最新の AWS SDK を使用して、MemoryDB マルチリージョンを簡単に開始できます AWS CLI。

整合性と競合の解決

いずれかのリージョンクラスターでキーに加えられた更新は、マルチリージョンクラスター内の他のリージョンクラスターに非同期的に伝播されます。通常は 1 秒未満です。リージョンが分離または劣化した場合、MemoryDB マルチリージョンは、実行されたが、まだすべてのメンバークラスターに伝達されていない書き込みを追跡します。リージョンがオンラインに戻ると、MemoryDB マルチリージョンはそのリージョンから他のリージョンのメンバークラスターへの保留中の書き込みの伝播を再開します。また、他のメンバークラスターからオンラインに戻ったリージョンへの書き込みの伝播も再開されます。リージョンの分離期間がどれほど長くても、それまでに成功した書き込みはすべて最終的に反映されます。

アプリケーションが異なるリージョンで同じキーをほぼ同時に更新すると、競合が発生する可能性があります。MemoryDB マルチリージョンは、競合のないレプリケートデータ型 (CRDT) を使用して、競合する同時書き込みを照合します。CRDT は、調整なしで個別に同時に更新できるデータ構造です。つまり、書き込みと書き込みの競合は、結果整合性のある各レプリカで個別にマージされます。

具体的には、MemoryDB は 2 レベルの Last Writer Wins (LWW) を使用して競合を解決します。文字列データ型の場合、LWW はキーレベルで競合を解決します。他のデータ型の場合、LWW はサブキーレベルで競合を解決します。競合の解決は完全に管理され、アプリケーションの可用性に影響を与えることなくバックグラウンドで行われます。ハッシュデータ型の例を次に示します。

リージョン A はタイムスタンプ T1 で「HSET K F1 V1」を実行し、リージョン B はタイムスタンプ T2 で「HSET K F2 V2」を実行します。レプリケーション後、リージョン A と B の両方に両方のフィールドを持つキー K があります。 T2 異なるリージョンが同じコレクション内の異なるサブキーを同時に更新している場合、MemoryDB はハッシュデータ型のサブキーレベルで競合を解決するため、2 つの更新は互いに競合しません。したがって、最終データには両方の更新の効果が含まれます。

時間 リージョン A リージョン B

T1

HSET K F1 V1

T2

HSET K F2 V2

T3

sync

sync

T4

K: {F1:V1、F2:V2}

K: {F1:V1、F2:V2}

CRDT と例

MemoryDB マルチリージョンは、競合のないレプリケートデータ型 (CRDT) を実装して、複数のリージョンから発行された同時書き込み競合を解決します。CRDT を使用すると、順序に関係なく、最終的に同じオペレーションセットを受け取ると、異なるリージョンが個別に結果整合性を達成できます。

1 つのキーが複数のリージョンで同時に更新された場合、データの整合性を確保するために書き込みと書き込みの競合を解決する必要があります。MemoryDB マルチリージョンは、Last Writer Wins (LWW) 戦略を使用して、成功したオペレーションを決定し、最終的に「happens after」が観測されるオペレーションの効果のみを決定します。オペレーション op1 が op2 の実行時に最初に実行されたリージョンで op1 の効果が適用された場合、オペレーション op2 は「以前に発生した」と言います。

コレクション (ハッシュ、設定、SortedSet) の場合、MemoryDB マルチリージョンは要素レベルで競合を解決します。これにより、MemoryDB マルチリージョンは LWW を使用して各要素の書き込み/書き込みの競合を解決できます。例えば、複数のリージョンから同じコレクションに異なる要素を同時に追加すると、コレクションにはすべての要素が含まれます。

同時実行: 最後のライターが勝つ

MemoryDB マルチリージョンでは、キーの同時作成がある場合、任意のリージョンで最後に実行されたオペレーションによってキーの結果が決まります。例:

同時実行: 最後のライターが成功します。

キー x は値「b」のリージョン B で作成されましたが、それ以降は値「a」のリージョン A で同じキーが作成されました。最終的に、リージョン A の オペレーションが最後に実行されたオペレーションであるため、キーは「a」という値に収束します。

競合するデータ型との同時実行: 最後のライターが成功

前の例では、キーは両方のリージョンで同じタイプで作成されました。キーが異なるデータ型で作成された場合も、同様の動作が観察されます。

競合するデータ型との同時実行: 最後のライターが成功します。

キー x は、値「b」を持つリージョン B で文字列として作成されました。ただし、その後、そのオペレーションがリージョン A にレプリケートされる前に、リージョン A にハッシュとして同じキーが作成されます。最終的に、リージョン A のオペレーションが最後に実行されたオペレーションであったため、キーは収束し、リージョン A でハッシュが作成されます。

同時作成/削除: 最後のライターが勝つ

削除と「作成」が同時に行われるシナリオ (つまり、値の置換/追加) では、最後に実行されたオペレーションが優先されます。最終結果は、削除オペレーションの順序によって決まります。削除が以前に行われた場合:

作成と削除の同時実行: 削除が以前に行われた場合、最後のライターが優先されます。

「Set」タイプのキー x がリージョン B で削除されました。その後、リージョン A でそのキーに新しいメンバーが追加されます。最終的に、リージョン A での オペレーションが最後に実行された オペレーションであるため、キーはリージョン A で唯一の 要素を持つ Set に収束します。

削除が次の後に行われた場合:

作成と削除の同時実行: 最後のライターは、その後に削除が発生した場合に優先されます。

Set on Region A タイプのキー x に新しいメンバーが追加されました。その後、キーがリージョン B で削除されました。最終的には、リージョン B でのオペレーションが最後に実行されたオペレーションであるため、キーが削除されるように収束されます。

カウンター、同時オペレーション: 最後のライターによるフル値のレプリケーションが成功

MemoryDB マルチリージョンのカウンターは、フル値のレプリケーションを実行し、last-writer-strategy を適用することで、非カウンタータイプと同様に動作します。同時オペレーションは結合されませんが、代わりに最後のオペレーションが優先されます。例:

最後のライターが成功した場合のフル値のレプリケーション。

このシナリオでは、キー x の開始値は 1 です。次に、リージョン B はカウンター x を 2 増やし、その後すぐにリージョン A はカウンターを 1 増やしました。リージョン A が最後に実行されたオペレーションであるため、キー x は最終的に値 2 に収束します。1 ずつ増加すると、最後に実行されたオペレーションになります。

非決定的コマンドは決定的としてレプリケートされます

異なるリージョン間で値の一貫性を保証するために、MemoryDB マルチリージョンの非決定的コマンドは決定的としてレプリケートされます。非決定コマンドは、SETNX などの外部要因に依存するコマンドです。SETNX は、キーが存在するかどうかによって異なります。キーはリモートリージョンに存在する場合がありますが、コマンドを受信するローカルリージョンには存在しない場合があります。このため、それ以外の場合、非決定的なコマンドはフル値のレプリケーションとしてレプリケートされます。文字列の場合、SET コマンドとしてレプリケートされます。

非決定的コマンドは決定的としてレプリケートされます。

つまり、文字列型に対するすべてのオペレーションは SET または DEL としてレプリケートされ、ハッシュ型に対するすべてのオペレーションは HSET または HDEL としてレプリケートされ、セット型に対するすべてのオペレーションは SADD または SREM としてレプリケートされ、ソートされたセットに対するすべてのオペレーションは ZADD または ZREM としてレプリケートされます。

このページの内容

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.