

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

# MemoryDB マルチリージョン
<a name="multi-region"></a>

MemoryDB マルチリージョンは、フルマネージド型のアクティブ/アクティブマルチリージョンデータベースです。これを使用することで、最大 99.999% の可用性を持ち、読み取りレイテンシーがマイクロ秒で書き込みレイテンシーが 1 桁ミリ秒のマルチリージョンアプリケーションを構築できます。ユーザーは、可用性と、リージョン劣化からの回復力の両方を向上させることができるだけでなく、マルチリージョンアプリケーションに対するローカルな読み取りと書き込みのレイテンシーが低いというメリットが得られます。

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

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

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

**Topics**
+ [前提条件と制限事項](multi-region.prereq.md)
+ [仕組み](multi-region.how.md)
+ [整合性と競合の解決](#multi-region.conflict)
+ [コンソールでの MemoryDB マルチリージョンの使用](multi-Region.console.md)
+ [CLI での MemoryDB マルチリージョンの使用](multi-Region.cli.md)
+ [MemoryDB マルチリージョンのモニタリング](multi-Region.monitoring.md)
+ [MemoryDB マルチリージョンでのスケーリング](multi-Region.Scaling.md)
+ [サポートされているコマンドとサポートされていないコマンド](multi-Region.SupportedCommands.md)

# 前提条件と制限事項
<a name="multi-region.prereq"></a>

MemoryDB マルチリージョンを利用し始める前に、以下の点に注意してください。
+ **MemoryDB マルチリージョンはユーザーが選択したリージョン間でデータをレプリケートする** – ユーザーは、マルチリージョンクラスターを作成することで、選択したリージョン間でデータが移動することを理解し、これに同意したものとみなされます。

  マルチリージョングループからリージョンを削除すると、そのリージョンのリージョンクラスターも削除されます。
+ **リージョンの可用性** - MemoryDB マルチリージョンは、米国東部 (バージニア北部およびオハイオ）、米国西部 (オレゴン、北カリフォルニア）、欧州 (アイルランド、フランクフルト、ロンドン）、アジアパシフィック (東京、シドニー、ムンバイ、ソウル、シンガポール) の各 AWS リージョンでサポートされています。
+ **動作と設定** – すべてのマルチリージョンのリージョンクラスターは、シャード数、インスタンスタイプ、Valkey エンジンのバージョン、TLS、およびパラメータグループ設定が同一になります。ユーザーは、リージョンクラスターごとに異なる IAM 認証、ACL、スナップショットウィンドウ、タグ、カスタマーマネージドキー (CMK)、およびメンテナンスウィンドウを選択できます。

  MemoryDB マルチリージョンでは、さまざまなリージョンのクラスターにさまざまな数のレプリカを作成できます。
+ **サポートされるノードタイプ** – MemoryDB マルチリージョンは、XL サイズ以上の R7g ノードでサポートされます。

  MemoryDB マルチリージョンは、Valkey エンジンバージョン 7.3 以降をサポートしています。
+ **サポートされているデータ型** – MemoryDB マルチリージョンは現在、ほとんどの Redis OSS または Valkey データ型をサポートしており、今後さらに多くのデータ型をサポートする予定です。サポートされているデータ型には、文字列、ハッシュ、セット、ソートされたセットが含まれますが、これらのデータ型を操作するコマンドがすべてサポートされているわけではありません。
+ **リージョンの合計数** - MemoryDB マルチリージョンを使用すると、最大 5 つの AWS リージョン間で MemoryDB クラスターデータを自動的にレプリケートできます。
+ **サポートされているオプション** – MemoryDB マルチリージョンでは、水平/垂直スケーリング、IAM 統合、ACL、自動およびオンデマンドのスナップショット作成、自動ソフトウェアパッチ適用、およびモニタリングをサポートされています。
+ **バックアップと復元** – スナップショットを作成してマルチリージョンのリージョンクラスターのデータをバックアップできます。スナップショットは、手動で作成することも、MemoryDB の自動スナップショットスケジューラを使用して、毎日、リージョンクラスターごとに個別に指定した時刻に新しいスナップショットを作成することもできます。
+ **移行** – MemoryDB または Redis OSS/Valkey RDB 形式のバックアップを復元できます。バックアップからデータを移行するには、新しい MemoryDB マルチリージョンのリージョンクラスターを作成し、Amazon S3 からスナップショットの場所を指定します。バックアップが MemoryDB スナップショットである場合は、名前を指定することもできます。MemoryDB マルチリージョンは、スナップショットのデータを使用してリージョンクラスターを作成します。MemoryDB マルチリージョンでは、文字列、ハッシュ、セット、ソートされたセットの各データ型がサポートされています。そのため、移行できるのはこれらのサポート対象のデータ型のスナップショットデータのみです。バックアップファイルにサポートされていない Redis OSS データ型が含まれている場合、MemoryDB マルチリージョンはデフォルトで移行オペレーションに失敗します。
+ **リソース予約** – MemoryDB マルチリージョンは、リージョンの可用性を保護するように設計されています。一部のリソースは、ローカルの読み取りおよび書き込みリクエストをピアリージョンのワークロードとは独立して処理できるようにするために、各ノードで永続的に予約されています。これらのリソースは、リージョン分離イベントとその復旧中など、ピアリージョンでイベント (Regionisolation イベントとそれに伴う復旧など) が発生しているときにローカルの可用性を保護する役割も果たします。これにより、単一リージョン MemoryDB とは異なるパフォーマンス特性が得られます。MemoryDB マルチリージョンでは、水平スケーリングおよび垂直スケーリングによる利用可能なリソースの拡張がサポートされます。
+ **RPO/RTO SLA なし** – MemoryDB マルチリージョンでは、RPO/RTO SLA が定められていません。他の AWS リージョンから分離された AWS リージョンでの書き込みを引き続き受け入れるため、クロスレプリケーションの遅延が無期限に増加する可能性があります。当社は、ユーザーが「MultiRegionClusterReplicationLag」メトリクスを使用して分離を検出し、必要な RPO に応じてアプリケーショントラフィックを別のリージョンにリダイレクトすることを想定しています。
+ **単一のエンドポイントや自動フェイルオーバーなし:** – リージョンの停止が発生した場合、ユーザーは顧客のトラフィックを別のリージョンにある顧客のアプリケーションスタックに手動でリダイレクトする必要があります。ユーザーは、顧客が MemoryDB クラスターへのマルチリージョンアクセスを適切に設定していることを確認する必要があります。
+ **TTL サポートなし** – MemoryDB マルチリージョンでは、TTL (有効期限) がサポートされません。
+ **データ階層化またはベクトル検索のサポートなし ** – MemoryDB マルチリージョンでは、ベクトル検索およびデータ階層化機能がサポートされません。
+ MemoryDB マルチリージョンでは、読み取り/変更/書き込みコマンド (APPEND、RENAMENX など) がサポートされません。
+ MemoryDB マルチリージョンでは、Redis OSS トランザクションのアトミック性と一貫性は保証されません。
+ **認証モデル** – MemoryDB マルチリージョン API アクションは、サポートされている任意のリージョンから呼び出すことができます。アクセス許可の範囲は、IAM ポリシーでマルチリージョンクラスターの ARN を指定することで制限できます。マルチリージョンクラスター ARN の形式は `arn:aws:memorydb::<account-id>:multiregioncluster/multi-region-cluster-name` です。ARN にリージョン情報はありません。
+ **スループットの制限** – MemoryDB マルチリージョンは、リージョン内のノードあたり最大 1.3 GB/秒の読み取りスループットと、シャードあたり最大 50 MB/秒のグローバル集計書き込みスループットをサポートできます。
+ **AWS ポリシー** - AWS ReadOnlyAccess ポリシーは、 AWS サービスとリソースへの読み取り専用アクセスを提供しますが、1 つ以上のマルチリージョンクラスターに関する詳細を自動的に取得しません。1 つまたは複数のマルチリージョンクラスターに関する詳細を取得するには、[AmazonMemoryDBReadOnlyAccess](security-iam-awsmanpol.md#iam.identitybasedpolicies.predefinedpolicies-readonly) ポリシーを使用するか、[IAM カスタマー管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)を作成します。
+ **リージョンクラスターの削除** – リージョンクラスターを削除した場合、関連するカスタマーマネージドキー (CMK) は、リージョンクラスターの削除が完了するまで有効のままになります。これにより、残りのリージョンクラスターは一貫性のある状態に収束できます。

# 仕組み
<a name="multi-region.how"></a>

MemoryDB マルチリージョンの仕組みは次のとおりです。
+ **概念**

  マルチリージョンクラスターは、1 つ以上のリージョンクラスターのコレクションであり、すべて 1 つの AWS アカウントによって所有されます。

  リージョンクラスターは、マルチリージョンクラスターの一部 AWSであるリージョン内の単一のクラスターです。各リージョンクラスターには、同じデータセットが保存されます。特定のマルチリージョンクラスターは、 AWS リージョンごとに 1 つのリージョンクラスターのみを持つことができます。

  マルチリージョンクラスターを作成した場合、そのクラスターは、MemoryDB が単一のユニットとして扱う複数のリージョンクラスター (リージョンごとに 1 つ) で構成されます。アプリケーションがリージョンクラスターにデータを書き込むと、MemoryDB はそのデータをマルチリージョンクラスター内の他のすべてのリージョンクラスターに自動的かつ非同期的にレプリケートします。マルチリージョンクラスターにリージョンクラスターを追加して、そのクラスターを追加のリージョンで使用できるようにすることができます。MemoryDB クラスターデータは、最大 5 つのリージョン間で自動的にレプリケートできます。
+ **可用性と耐久性**

  リージョンの分離や機能低下が万一発生した場合は、グローバル DNS を更新して、データベースの再設定なしでアプリケーションへのトラフィックを他の正常なリージョンのいずれかにリダイレクトできます。これにより、アプリケーションの高可用性を維持するプロセスが簡素化されます。MemoryDB は、すべてのリージョンからのすべての書き込みをマルチ AZ トランザクションログに永続的に保存し、リージョン内でデータ損失が発生しないようにします。MemoryDB マルチリージョンは、リージョンで承認されたものの、まだすべてのメンバークラスターにレプリケートされていない書き込みをすべて追跡します。リージョンの分離または機能低下が発生しても、ローカルの書き込みを受け入れ続けます。分離されたリージョンがマルチリージョンクラスターに再度接続されると、承認されたものの、他のリージョンにまたレプリケートされていない書き込みは、マルチリージョンクラスター内のすべてのリージョンにレプリケートされます。また、MemoryDB マルチリージョンは、CRDT メカニズムを使用し、保留中の書き込みと、停止中に他のリージョンで発生した可能性がある更新を自動的に調整します。
+ **MemoryDB マルチリージョンクラスターへの接続**

  リージョンクラスターとの間でデータの書き込み/読み取りを行うには、サポートされている Redis OSS/Valkey クライアント (Valkey GLIDE を含む) のいずれかを使用してリージョンクラスターに接続します。各リージョンクラスターには、Redis OSS/Valkey クライアントが接続できるエンドポイントがあります。リージョンクラスターエンドポイントは、 AWS コンソール、CLI、または API を使用して取得できます。その後、このエンドポイントをアプリケーションで使用 (または設定) して、リージョンクラスターからデータを読み書きできます。

## 整合性と競合の解決
<a name="multi-region.conflict"></a>

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

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

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

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


| Time | リージョン A | リージョン B | 
| --- | --- | --- | 
|  T1  |   HSET K F1 V1  |    | 
|  T2  |    |   HSET K F2 V2  | 
|  T3  |  sync  |  sync  | 
|  T4  |   K: \$1F1:V1, F2:V2\$1  |  K: \$1F1:V1, F2:V2\$1  | 

### CRDT と例
<a name="clusters.multi-Region.CRDT"></a>

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

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

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

**同時実行: Last Writer Wins**

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

![\[同時実行: Last Writer Wins。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/concurrent-ex-last-writer-wins.png)


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

**競合するデータ型での同時実行: 最後の書き込みが有効**

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

![\[競合するデータ型での同時実行: 最後の書き込みが有効。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/concurrent-ex-conflict-data-types-last-writer-wins.png)


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

**同時作成/削除: 最後の書き込みが有効**

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

![\[同時作成/削除: 削除が前に実行された場合は、最後の書き込みが有効になります。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/concurrent-create-delete-last-writer-wins-before.jpg)


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

削除が後に実行された場合:

![\[同時作成/削除: 削除が後に実行された場合は、最後の書き込みが有効になります。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/concurrent-create-delete-last-writer-wins-after.jpg)


リージョン A でセット型のキー x に新しいメンバーが追加されました。その後、リージョン B でキーが削除されました。リージョン B でのオペレーションが最後に実行されたオペレーションであるため、最終的にキーは削除された状態に収束します。

**カウンター、同時オペレーション: 最後の書き込みが有効になる完全値レプリケーション**

MemoryDB マルチリージョンのカウンターは、完全値レプリケーションを実行し、最後の書き込み戦略を適用することで、非カウンタータイプと同様に動作します。同時オペレーションは結合されませんが、代わりに最後のオペレーションが有効になります。例えば、次のようになります。

![\[最後の書き込みが有効になる場合の完全値レプリケーション。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/concurrent-full-rep-last-writer-wins.jpg)


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

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

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

![\[決定的としてレプリケートされる非決定的コマンド。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/nondeterministic_commands.png)


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

# コンソールでの MemoryDB マルチリージョンの使用
<a name="multi-Region.console"></a>

コンソールで MemoryDB マルチリージョンを使用する方法は以下のとおりです。

**Topics**
+ [MemoryDB マルチリージョンで新しいクラスターを作成する](#multi-Region.console.create)
+ [スナップショットをマルチリージョンクラスター内の新規または既存のクラスターに復元する](#multi-Region.console.restore)
+ [MemoryDB マルチリージョンでクラスターを変更する](#multi-Region.console.modify)
+ [MemoryDB マルチリージョンでクラスターを削除する](#multi-Region.console.delete)

## MemoryDB マルチリージョンで新しいクラスターを作成する
<a name="multi-Region.console.create"></a>

1. クラスターリストまたはダッシュボードから [クラスターを作成] セクションに移動します。  
![\[クラスターを作成する、コンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/create-multi-region1.png)

1.  **[クラスタータイプ]**フィールドで、**[マルチリージョンクラスター]** を選択します。

1.  **[クラスターの作成方法]** フィールドで、**[簡易作成]** を選択します。

1.  **[名前]** と **[説明]** を入力し、デフォルト値を確認して、**[作成]** を選択します。

**クラスターを作成および設定する**

1. クラスターリストまたはダッシュボードから [クラスターを作成] セクションに移動します。  
![\[クラスターを作成および設定する、コンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/create-multi-region2-configure.png)

1.  **[クラスタータイプ]**フィールドで、**[マルチリージョンクラスター]** を選択します。

1.  **[クラスターの作成方法]** フィールドで、**[新しいクラスターを作成]** を選択します。

1.  **[名前]** と **[説明]** を入力し、デフォルト値を確認して、**[作成]** を選択します。

## スナップショットをマルチリージョンクラスター内の新規または既存のクラスターに復元する
<a name="multi-Region.console.restore"></a>

1. クラスターリストまたはダッシュボードから [クラスターを作成] セクションに移動します。  
![\[クラスターを復元する、コンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/restore-multi-region-from-snapshot1.png)

1. **[クラスタータイプ]** フィールドで、**[マルチリージョンクラスター]** を選択します。

1.  **[クラスターの作成方法]** フィールドで、**[スナップショットから復元]** を選択します。

1.  ソーススナップショットを選択し、必須フィールドに入力します。選択内容を確認し、**[復元]** を選択します。  
![\[マルチリージョンクラスターに復元するソーススナップショットを選択するコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/restore-multi-region-from-snapshot2-confirm.png)

1. マルチリージョンクラスターを表示するには、[クラスター] セクションに移動します。  
![\[マルチリージョンクラスターを変更するための [クラスター] セクションのコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/restore-multi-region-from-snapshot3-confirm.png)

1. 次に、ターゲットのマルチリージョンクラスター名を選択します。  
![\[変更するマルチリージョンクラスターを選択するコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/restore-multi-region-from-snapshot4-confirm.png)

1. 次に、ターゲットのリージョンクラスター名を選択します。  
![\[変更するリージョンクラスターを選択するコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/restore-multi-region-from-snapshot5-confirm.png)

## MemoryDB マルチリージョンでクラスターを変更する
<a name="multi-Region.console.modify"></a>

1. [クラスター] セクションに移動します。現在のクラスターがすべて表示されます。  
![\[これが画像です。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/modify-multi-region1.png)

   次に、変更するクラスターのタイプに応じて次のいずれかの手順を選択します。

1. マルチリージョンクラスターを含む単一クラスターを変更するには、まずそのクラスターが属するマルチリージョンを選択します。次に、[アクション] (右上) の [編集] ボタンを選択します。次に、ターゲットの単一クラスターを選択します。このクラスターは、**[詳細]** ページから変更することもできます。

**リージョンクラスターを変更する**

1. マルチリージョンクラスターを変更するには、ターゲットのマルチリージョンクラスター名を選択します。  
![\[変更するターゲットマルチリージョンクラスターを選択するコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/modify-multi-region2.png)

   次に、クラスターを選択し、[アクション] (右上) または [詳細] ページの **[編集]** ボタンを選択します。

1. リージョンクラスターを追加するには、選択したターゲットマルチリージョンクラスターを選択し、**アクション**ドロップダウンに移動して** AWS リージョンの追加**を選択します。 AWS リージョンの詳細ページに移動し、ターゲットのマルチリージョンクラスターを選択して、そこから を追加することもできます。  
![\[リージョンクラスターを追加するターゲットマルチリージョンクラスターを選択するコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/modify-multi-region3-add-regional-cluster.png)

1. リージョンを追加するには、ターゲットのリージョンを選択します。次に、必要な情報を入力し、** AWS リージョンの追加**を選択します。  
![\[リージョンを追加するターゲットマルチリージョンクラスターを選択するコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/modify-multi-region4-add-region.png)

1. 空のマルチリージョンクラスターに新しいリージョンクラスターを追加する場合は、マルチリージョンクラスターの作成と同じオプションが表示されます。唯一の違いは、マルチリージョンクラスター情報が既に入力されていることです。  
![\[新しいリージョンクラスターを追加する空のマルチリージョンクラスターを選択するコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/modify-multi-region5-add-regional-cluster-to-empty.png)

## MemoryDB マルチリージョンでクラスターを削除する
<a name="multi-Region.console.delete"></a>

1. リージョン内の単一クラスターを削除するには、ターゲットのリージョンクラスターを選択します。次に、[アクション] メニュードロップダウンに移動し、個々のクラスターを選択して、**[削除]** を選択します。  
![\[削除する単一クラスターを選択するコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/delete-multi-region1-select.png)

   削除する前に確認ウィンドウが表示されます。このウィンドウには、スナップショットの作成オプションが表示されます。削除する場合は、テキストフィールドに「削除」と入力し、**[削除]** を選択します。  
![\[削除の確認ウィンドウのコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/delete-multi-region2-snapshot.png)

1. マルチリージョンクラスターに関連付けられているリージョンクラスターをすべて削除するには、1 つ以上のクラスターを含むターゲットマルチリージョンクラスターを選択します。次に、ターゲットのマルチリージョンクラスターが選択されている状態で [アクション] メニュードロップダウンに移動し、**[削除]** を選択します。  
![\[マルチリージョンクラスターに関連付けられているクラスターをすべて削除するために選択を行うコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/delete-multi-region3-associated-clusters.png)

1. マルチリージョンクラスター全体を削除するには、ターゲットの空のマルチリージョンクラスターを選択します。次に、[アクション] メニュードロップダウンに移動し、**[削除]** を選択します。  
![\[マルチリージョンクラスター全体を削除するコンソールビュー。\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/images/delete-multi-region4-entire-mrc.png)

# CLI での MemoryDB マルチリージョンの使用
<a name="multi-Region.cli"></a>

CLI で MemoryDB マルチリージョンを使用する方法は以下のとおりです。

**注記**  
MemoryDB マルチリージョンでは、db.r7g.xlarge 以降のノードタイプのみがサポートされます。

## MemoryDBMulti リージョンでのクラスターの作成
<a name="multi-Region.cli.create"></a>

**マルチリージョンクラスターを作成する**

```
aws memorydb create-multi-region-cluster \
	--multi-region-cluster-name-suffix my-multi-region-cluster \
	--node-type db.r7g.xlarge \
	--engine valkey \
	--region us-east-1
```

**米国東部 (バージニア北部) リージョンでリージョンクラスターを作成する**

```
aws memorydb create-cluster \
	--cluster-name my-cluster \
	--multi-region-cluster-name my-multi-region-cluster \
	--node-type db.r7g.xlarge \
	--acl-name open-access \
	--region us-east-1 \
```

**欧州 (アイルランド) リージョンでリージョンクラスターを作成する**

```
aws memorydb create-cluster \
	--cluster-name my-cluster \
	--multi-region-cluster-name my-multi-region-cluster \
	--node-type db.r7g.xlarge \
	--acl-name open-access \
	--region eu-west-1 \
```

**任意のリージョンのマルチリージョンクラスターについて説明する**

```
aws memorydb describe-multi-region-cluster \
	--multi-region-cluster-name my-multi-region-cluster \
	--region eu-west-1
```

## マルチリージョンクラスターを更新する
<a name="multi-Region.cli.update"></a>

**ノードタイプの変更**

```
aws memorydb update-multi-region-cluster \
	--multi-region-cluster-name my-multi-region-cluster \
	--node-type db.r7g.4xlarge \
	--region us-east-1
```

**シャード数の変更**

```
aws memorydb update-multi-region-cluster \
	--multi-region-cluster-name my-multi-region-cluster \
	--shard-configuration \
	ShardCount=3 \
	--update-strategy COORDINATED \
	--region us-east-1
```

## MemoryDB クラスターのスケーリング
<a name="multi-Region.cli.scaling"></a>

まず、`list-allowed-node-type-updates` コマンドを使用してスケールアップまたはスケールダウンできるノードを一覧表示します。

```
aws memorydb list-allowed-node-type-updates \
	--cluster-name my-cluster-name
```

これにより、スケールアップまたはスケールダウンできるノードのリストが表示されます。次に、それらのノードを更新するには、`update-cluster` コマンドを使用します。

```
aws memorydb update-cluster  \
	--cluster-name my-cluster \
	--node-type db.r6g.2xlarge
```

マルチリージョンでのスケーリングの詳細については、「[MemoryDB マルチリージョンでのスケーリング](multi-Region.Scaling.md)」を参照してください。

## MemoryDB マルチリージョンでのクラスターの削除
<a name="multi-Region.cli.update"></a>

**リージョンクラスターを削除する**

```
aws memorydb delete-cluster \	
	--cluster-name my-cluster \
	--multi-region-cluster-name my-multi-region-cluster \
	--region us-east-1
```

**マルチリージョンクラスターを削除する**

```
aws memorydb delete-multi-region-cluster \
	--multi-region-cluster-name my-multi-region-cluster \
	--region us-east-1
```

# MemoryDB マルチリージョンのモニタリング
<a name="multi-Region.monitoring"></a>

Amazon CloudWatch を使用して、マルチリージョンクラスターの動作とパフォーマンスをモニタリングできます。MemoryDB は、マルチリージョンクラスター内の各リージョンクラスターの `MultiRegionClusterReplicationLag` メトリクスを公開します。

`MultiRegionClusterReplicationLag` は、更新がリモートのマルチリージョンのリージョンクラスターにあるマルチ AZ トランザクションログに書き込まれてから、その更新がローカルのマルチリージョンのリージョンクラスターにあるプライマリノードに書き込まれるまでの経過時間を示します。このメトリクスは、ミリ秒単位で表され、すべてのレプリケート元リージョンとレプリケート先リージョンのペアについてシャードレベルで出力されます。

通常オペレーション中、`MultiRegionClusterReplicationLag` は完全に一定にする必要があります。`MultiRegionClusterReplicationLag` の値が増加している場合、1 つのリージョンクラスターからの更新が他のリージョンクラスターにタイムリーに伝播されていないことを示している可能性があります。これにより、時間の経過とともに、他のリージョンクラスターが*遅れを取る*可能性があります。これらのリージョンは更新を一貫して受け取ることができないからです。

`MultiRegionClusterReplicationLag` AWS リージョンが分離または低下し、そのリージョンにリージョンクラスターがある場合、 は増加する可能性があります。この場合、アプリケーションの読み取りおよび書き込みアクティビティを別の正常な AWS リージョンに一時的にリダイレクトできます。

# MemoryDB マルチリージョンでのスケーリング
<a name="multi-Region.Scaling"></a>

クラスターの需要の変化に応じて MemoryDB のクラスター内のノードタイプまたはシャード数を変更することで、パフォーマンスを向上させたりコストを削減したりできます。MemoryDB マルチリージョンクラスターをスケーリングすると、そのクラスターに含まれているすべてのリージョンクラスターがスケーリングされます。MemoryDB マルチリージョンクラスターでは、オンラインリシャーディングがサポートされています。MemoryDB マルチリージョンクラスターでは、オフラインリシャーディングはサポートされていません。

クラスターを再スケーリングするかどうかの判断条件には、次のようなものがあります。
+ **メモリプレッシャー**

  リージョンクラスター内のノードがメモリプレッシャーを受けている場合、より多くのリソースがより効率よくデータを保存してリクエストを処理するようにスケールアウトまたはスケールアップできます。

  ノードがメモリプレッシャーを受けているかどうかは、FreeableMemory、SwapUsage、BytesUsedForMemoryDB、MultiRegionClusterReplicationLag といったメトリクスをモニタリングすることで判断できます。
+ **CPU またはネットワークのボトルネック**

  レイテンシーやスループットがクラスターの問題となっている場合、問題解決のためにスケールアウトまたはスケールアップが必要な場合があります。

  レイテンシーとスループットのレベルは、`CPUUtilization`、`NetworkBytesIn`、` NetworkBytesOut`、`CurrConnections`、` NewConnections`、` and MultiRegionClusterReplicationLag` の各メトリクスを監視することでモニタリングできます。
+ ** クラスターがオーバースケーリングされている**

  現在のクラスターの需要からすると、スケールインまたはスケールダウンを行ってもパフォーマンスに影響せず、コストも削減できます。

クラスターの使用状況をモニタリングし、FreeableMemory、SwapUsage、BytesUsedForMemoryDB、CPUUtilization、NetworkBytesIn、NetworkBytesOut、CurrConnections、NewConnections、および MultiRegionClusterReplicationLag といったメトリクスを使用して安全にスケールインまたはスケールダウンできるかどうかを判断できます。

MemoryDB マルチリージョンクラスターをスケールするには、水平スケーリングと垂直スケーリングの 2 つの方法があります。
+ 水平スケーリングでは、シャードを追加または削除することで、MemoryDB マルチリージョンクラスター内のシャードの数を変更できます。オンラインのリシャーディングプロセスでは、リージョンクラスターによる受信リクエストの処理を継続しながら、スケールイン/スケールアウトすることができます。
+ 垂直スケーリングでは、ノードタイプを変更することで、MemoryDB マルチリージョンクラスターのサイズを変更します。オンラインの垂直スケーリングでは、リージョンクラスターによる受信リクエストの処理を継続しながら、スケールアップ/スケールダウンすることができます。

スケーリングでは、デフォルトで「調整された」更新戦略が使用されます。つまり、すべてのリージョンクラスターが正常にスケールされるか、どのリージョンクラスターもスケールされないかのいずれかです。

スケールアウトオペレーションでは、「調整されない」更新戦略もサポートされます。つまり、正常にスケールアウトされるリージョンクラスターもあれば、スケールアウト試行に失敗するリージョンクラスターもあるということです。1 つのリージョンクラスターのスケールアウトが成功した場合、それ以外のすべてのリージョンクラスターは、それぞれのスケールアウトも成功するまでスケールアウトを再試行し続けます。

すべてのリージョンクラスターがスケールアウトに失敗した場合、マルチリージョンクラスターは「調整されない」スケールアウトに失敗します。

**注記**  
「調整されない」スケールアウトでは、各リージョンクラスターのスケールアウトが異なる時間に行われた場合、リージョンクラスター間での容量の不均衡が長期間続く可能性があります。これにより、MultiRegionClusterReplicationLag メトリクスが増加し、リージョンクラスターのデータが長時間にわたって異なるものになる可能性があります。

MemoryDB マルチリージョンクラスターのリージョンクラスターはレプリカノードの数の設定を異なるものにすることができますが、リージョンクラスター内のシャードはすべて同じ数のレプリカノードを持ちます。

スケールインまたはスケールダウンのいずれかを実行して MemoryDB マルチリージョンクラスターのサイズとメモリ容量を減らす場合は、新しい設定にデータ用の十分なメモリおよび空き IP と十分なエンジンオーバーヘッドがあること、およびリージョンクラスターの MultiRegionClusterReplicationLag メトリクスが数秒以内または 1 分以内であることを確認してください。

、、MemoryDB API を使用して AWS マネジメントコンソール、MemoryDB マルチリージョンクラスターを水平 AWS CLIおよび垂直方向にスケーリングできます。

# サポートされているコマンドとサポートされていないコマンド
<a name="multi-Region.SupportedCommands"></a>

**サポートされているコマンド**

**注記**  
SET コマンドでは現在、EX、PX、EXAT、PXAT、および KEEPTTL オプションがサポートされていません。
RESTORE コマンドでは、TTL をゼロ以外の値に設定することができません。ABSTTL、IDLETIME、および FREQ オプションもサポートされていません。


| データ型 | コマンド | 
| --- | --- | 
|  String  |  SET\$1、DECR、DECRBY、GET、GETRANGE、SUBSTR、GETDEL、GETSET、INCR、INCRBY、INCRBYFLOAT、MGET、MSET、MSETNX、SETNX、STRLEN、LCS  | 
|  ハッシュ  |  HINCRBY、HINCRBYFLOAT、HDEL、HSET、HMSET、HGET、HEXISTS、HLEN、HKEYS、HVALS、HGETALL、HMGET、HSTRLEN、HSETNX、HRANDFIELD、HSCAN  | 
|  設定  |  SADD、SREM、SISMEMBER、SMISMEMBER、SCARD、SMEMBERS、SRANDMEMBER、SSCAN、SUNION、SINTERCARD、SINTER、SDIFF、SPOP  | 
|  ソートされたセット  |  ZADD、ZINCRBY、ZSCORE、ZMSCORE、ZCARD、ZRANK、ZREVRANK、ZRANGE、ZRANGEBYSCORE、ZRANGEBYLEX、ZREVRANGE、ZREVRANGEBYLEX、ZREVRANGEBYSCORE、ZREMRANGEBYLEX、ZREMRANGEBYSCORE、ZREMRANGEBYRANK、ZUNION、ZINTER、ZINTERCARD、ZDIFF、ZLEXCOUNT、ZCOUNT、ZREM、ZMPOP、ZPOPMIN、ZPOPMAX、ZSCAN、ZRANDMEMBER  | 
|  ジェネリック  |  SCAN、DEL、UNLINK、DUMP、RESTORE\$1\$1、EXISTS、KEYS、RANDOMKEY、TYPE  | 

**サポートされていないコマンド**

サポートされていないコマンドの一般的なカテゴリは、サポートされていないデータ型 (ビットマップ、Hyperloglog、リスト、地理空間、ストリーム)、TTL 関連のコマンド、ブロックコマンド、および関数関連のコマンドです。完全なリストを次に示します。


| データ型 | コマンド | 
| --- | --- | 
| String | APPEND、GETEX、SETEX、SETRANGE | 
| Bitmap | BITCOUNT、BITFIELD、BITFIELD\$1RO、BITOP、BITPOS、GETBIT、SETBIT | 
| Hyperloglog | PFADD、PFCOUNT、PFDEBUG、PFMERGE、PFSELFTEST | 
| リスト | BLMOVE、BLMPOP、BLPOP、BRPOP、BRPOPLPUSH、LINDEX、LINSERT、LLEN、LMOVE、LMPOP、LPOP、LPOS、PUSH、LPUSHX、LRANGE、LREM、LSET、LTRIM、RPOP、RPOPLPUSH、RPUSH、RPUSHX | 
| 設定 | SMOVE、SUNIONSTORE、SDIFFSTORE、SINTERSTORE | 
| ソートされたセット | BZMPOP、BZPOPMAX、BZPOPMIN、ZDIFFSTORE、ZINTERSTORE、ZRANGESTORE、ZUNIONSTORE | 
| 地理空間 | GEOADD、GEODIST、GEOHASH、GEOPOS、GEORADIUS、GEORADIUS\$1RO、GEORADIUSBYMEMBER、GEORADIUSBYMEMBER\$1RO、GEOSEARCH、GEOSEARCHSTORE | 
| ストリーム | XACK、XADD、XAUTOCLAIM、XCLAIM、XDEL、XLEN、XPENDING、XRANGE、XREAD、XREADGROUP、XREVRANGE、XSETID、XTRIM、XGROUP、XINFO | 
| ジェネリック | COPY、FLUSHDB、FLUSHALL、MOVE、RENAME、RENAMENX、SORT、SORT\$1RO、SWAPDB、OBJECT、FUNCTION、FCALL、FCALL\$1RO、EXPIRE、EXPIREAT、EXPIRETIME、PERSIST、PEXPIRE、PEXPIREAT、PEXPIRETIME、PSETEX、PTTL、TTL | 