クロスリージョン レプリケーションを使用する

このページでは、セカンダリ インスタンスを作成して管理し、クロスリージョン レプリケーションを使用する方法について説明します。

クロスリージョン レプリケーションのコンセプトの概要については、クロスリージョン レプリケーションについてをご覧ください。

セカンダリ インスタンスを作成する

セカンダリ インスタンスを作成すると、Memorystore for Valkey はプライマリ インスタンスの設定の一部をコピーして、セカンダリ インスタンスの設定として適用します。詳細については、インスタンスの設定をご覧ください。

Memorystore for Valkey でセカンダリ インスタンスを作成するには、Google Cloud コンソールまたは Google Cloud CLI を使用します。

コンソール

  1. Google Cloud コンソールで、[Memorystore for Valkey] ページに移動します。

    Memorystore for Valkey

  2. プライマリ インスタンスをクリックします。プライマリ インスタンスは、作成するセカンダリ インスタンスの親です。

  3. サイドパネルで、[セカンダリ インスタンス] タブをクリックします。

  4. [セカンダリ インスタンスを追加] をクリックします。

  5. [セカンダリ インスタンスを追加] ウィンドウで、次の変更を行います。

    1. [インスタンス ID] フィールドに、作成するセカンダリ インスタンスの ID を入力します。ID は 1 ~ 63 文字にする必要があり、小文字、数字、ハイフンのみ使用できます。先頭は英小文字に、末尾は英小文字または数字にする必要があります。また、リージョン内で一意である必要があります。

    2. [リージョン] メニューから、セカンダリ インスタンスを配置するリージョンを選択します。

    3. [ゾーンの可用性] セクションで、次のいずれかのオプションを選択します。

      • インスタンスのすべてのシャードとレプリカを、Memorystore for Valkey がインスタンスを作成するリージョンの 3 つのゾーンに分散する場合は、[マルチゾーン] オプションを選択します。

        たとえば、選択したリージョンが us-central1 で、[マルチゾーン] オプションを選択すると、Memorystore for Valkey はインスタンスのシャードとレプリカを us-central1-aus-central1-b
        us-central1-c ゾーンに分散します。ゾーン障害が発生した場合、インスタンス内のノードはレプリカにフェイルオーバーします。

      • インスタンスのすべてのシャードとレプリカを、Memorystore for Valkey がインスタンスを作成するリージョンの 1 つのゾーンに配置する場合は、[単一ゾーン] オプションを選択し、[ゾーン] メニューからゾーンを選択します。

        単一のゾーンを使用すると、ネットワーク費用を削減できます。ただし、ゾーン障害が発生した場合、フェイルオーバーは行われません。

    4. [レプリカ] メニューで、インスタンスのレプリカ数(シャードあたり)を選択します。レプリカは 0 個、1 個、または 2 個にできます。

    5. [ネットワーク] メニューから、インスタンスのネットワークを選択します。Memorystore for Valkey のネットワーキングの詳細については、ネットワーキングをご覧ください。

  6. [セカンダリ インスタンスを追加] をクリックします。

gcloud

セカンダリ インスタンスを作成するには、gcloud memorystore instances create コマンドを使用します。

gcloud memorystore instances create INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--cross-instance-replication-config-role=secondary \
--psc-auto-connections=network=NETWORK,projectId=PROJECT_ID \
--primary-instance=PRIMARY_INSTANCE_PATH

次のように置き換えます。

  • INSTANCE_ID: 作成するセカンダリ インスタンスの ID。ID は 1 ~ 63 文字にする必要があり、小文字、数字、ハイフンのみ使用できます。先頭は英小文字、末尾は英小文字または数字にする必要があります。また、リージョン内で一意である必要があります。
  • PROJECT_ID: セカンダリ インスタンスを作成するプロジェクトの ID。これは、プライマリ インスタンスが配置されているプロジェクトと同じです。
  • REGION_ID: セカンダリ インスタンスを配置するリージョンの ID。
  • NETWORK: インスタンスの作成に使用されるネットワーク。形式は projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID にする必要があります。ネットワーク ID は、サービス接続ポリシーで使用されているネットワーク ID と一致する必要があります。それ以外の場合は、セカンダリ インスタンスを作成できません。
  • PRIMARY_INSTANCE_PATH: プライマリ インスタンスのパス。例: projects/my-project/locations/us-central1/instances/my-primary-instanceセカンダリ インスタンスでない限り、プロジェクト内の任意のインスタンスをプライマリ インスタンスとして選択できます。

次に例を示します。

gcloud memorystore instances create my-secondary-instance \
--project=my-project \
--location=us-central1 \
--cross-instance-replication-config-role=secondary \
--psc-auto-connections=network=projects/my-project/global/networks/default,projectId=my-project \
--primary-instance=projects/my-project/locations/us-central1/instances/my-primary-instance

セカンダリ インスタンスを表示する

セカンダリ インスタンスの概要情報を表示するには、Google Cloud コンソールまたは Google Cloud CLI を使用します。

コンソール

  1. Google Cloud コンソールで、[Memorystore for Valkey] ページに移動します。

    Memorystore for Valkey

  2. プライマリ インスタンスの横にある展開矢印をクリックします。このインスタンスは、情報を表示するセカンダリ インスタンスの親です。

  3. セカンダリ インスタンスをクリックします。インスタンスの概要情報が表示されます。

gcloud

レプリケーション グループ内のプライマリ インスタンスとセカンダリ インスタンスを一覧表示するメンバーシップ フィールドなど、セカンダリ インスタンスに関する情報を表示するには、gcloud memorystore instances describe コマンドを使用します。

gcloud memorystore instances describe INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID

次のように置き換えます。

  • INSTANCE_ID: セカンダリ インスタンスの ID
  • PROJECT_ID: セカンダリ インスタンスを含むプロジェクトの ID
  • REGION_ID: セカンダリ インスタンスが配置されているリージョンの ID

切り替えを行う

切り替えでは、障害復旧のためにセカンダリ インスタンスをプライマリ インスタンスに昇格させることで、プライマリ インスタンスとセカンダリ インスタンスのロールを入れ替えることができます。詳細については、クロスリージョン レプリケーションの概要をご覧ください。

切り替えは、 Google Cloud コンソールまたは Google Cloud CLI を使用して実行できます。

コンソール

  1. Google Cloud コンソールで、[Memorystore for Valkey] ページに移動します。

    Memorystore for Valkey

  2. プライマリ インスタンスの横にある展開矢印をクリックします。このインスタンスは、切り替えるセカンダリ インスタンスの親です。

  3. セカンダリ インスタンスをクリックします。

  4. [プライマリに昇格] をクリックします。

  5. [セカンダリ インスタンスをプライマリにプロモートしますか?] ダイアログで、セカンダリ インスタンスの ID を入力し、[プロモート] をクリックします。

切り替えが完了したら、アプリケーションを新しいプライマリ インスタンスに再接続する必要があります。

gcloud

切り替えを実行するには、gcloud memorystore instances update コマンドを使用します。

gcloud memorystore instances update INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--clear-primary-instance \
--cross-instance-replication-config-role=primary \
--cross-instance-replication-config-secondary-instances=[instance=SECONDARY_INSTANCE_PATH]

次のように置き換えます。

  • INSTANCE_ID: スイッチオーバーを実行してプライマリ インスタンスに昇格するセカンダリ インスタンスの ID。
  • PROJECT_ID: セカンダリ インスタンスが含まれているプロジェクトの ID。
  • REGION_ID: セカンダリ インスタンスが配置されているリージョンの ID。
  • SECONDARY_INSTANCE_PATH: セカンダリ インスタンスのパス。例: projects/my-project/locations/us-central1/instances/my-secondary-instance

    セカンダリ インスタンスが複数ある場合は、各インスタンスをカンマで区切ります。例: [instance=projects/my-project/locations/us-central1/instances/my-first-secondary-instance,instance=projects/my-project/locations/europe-west1/instances/my-second-secondary-instance]

my-project プロジェクトに次のインスタンスが含まれているとします。

  • instance-1: このプライマリ インスタンスは us-east1 リージョンにあります。
  • instance-2: このセカンダリ インスタンスは asia-east1 リージョンに存在します。
  • instance-3: このセカンダリ インスタンスは southamerica-east1 リージョンに存在します。

instance-2 が新しいプライマリ インスタンスで、instance-1 がセカンダリ インスタンスになるように、instance-1instance-2 のロールを反転します。

これを行うには、次のコードを使用します。

gcloud memorystore instances update instance-2 \
--project=my-project \
--location=asia-east1 \
--clear-primary-instance \
--cross-instance-replication-config-role=primary \
--cross-instance-replication-config-secondary-instances=[instance=projects/my-project/locations/us-east1/instances/instance-1,instance=projects/my-project/locations/southamerica-east1/instances/instance-3]

切り替えが完了したら、アプリケーションを新しいプライマリ インスタンスに再接続する必要があります。

セカンダリ インスタンスを切断する

1 つ以上のセカンダリ インスタンスをプライマリ インスタンスから切り離すと、読み取りと書き込みの両方に対応する機能的に完全な独立したインスタンスになります。詳細については、クロスリージョン レプリケーションを管理する方法をご覧ください。

セカンダリ インスタンスを切り離すには、 Google Cloud コンソールまたは Google Cloud CLI を使用します。

セカンダリ インスタンスを切り離す

このセクションでは、セカンダリ インスタンスをプライマリ インスタンスから切り離す方法について説明します。

コンソール

  1. Google Cloud コンソールで、[Memorystore for Valkey] ページに移動します。

    Memorystore for Valkey

  2. プライマリ インスタンスをクリックします。これは、プライマリ インスタンスから切り離すセカンダリ インスタンスの親です。

  3. サイドパネルで、[セカンダリ インスタンス] タブをクリックします。

  4. プライマリ インスタンスから切り離すセカンダリ インスタンスの ID の横にあるチェックボックスをオンにします。

  5. [メインから切り離す] をクリックします。

  6. [セカンダリ インスタンスを切り離しますか?] ダイアログで、セカンダリ インスタンスの ID を入力し、[切り離し] をクリックします。

gcloud

セカンダリ インスタンスを切り離すには、gcloud memorystore instances update コマンドを使用します。

gcloud memorystore instances update INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--cross-instance-replication-config-role=none \
--clear-primary-instance

次のように置き換えます。

  • INSTANCE_ID: 切り離すセカンダリ インスタンスの ID
  • PROJECT_ID: セカンダリ インスタンスを含むプロジェクトの ID
  • REGION_ID: セカンダリ インスタンスが配置されているリージョン

複数のセカンダリ インスタンスを切断する

このセクションでは、複数のセカンダリ インスタンスをプライマリ インスタンスから切り離す方法について説明します。このセクションの手順を使用して、使用できないセカンダリ インスタンスをプライマリ インスタンスから切り離すこともできます。

コンソール

  1. Google Cloud コンソールで、[Memorystore for Valkey] ページに移動します。

    Memorystore for Valkey

  2. プライマリ インスタンスをクリックします。これは、プライマリ インスタンスから切り離すセカンダリ インスタンスの親です。

  3. サイドパネルで、[セカンダリ インスタンス] タブをクリックします。

  4. プライマリ インスタンスから切り離すセカンダリ インスタンスの ID の横にあるチェックボックスをオンにします。

  5. [メインから切り離す] をクリックします。

  6. [セカンダリ インスタンスを切断しますか?] ダイアログで、次の操作を行います。

    1. セカンダリ インスタンスの ID を入力します。ID はカンマで区切ります。

    2. [接続解除] をクリックします。

gcloud

複数のセカンダリ インスタンスの関連付けを解除するには、gcloud memorystore instances update コマンドを使用します。

gcloud memorystore instances update PRIMARY_INSTANCE_ID \
--project=PROJECT_ID \
--location=PRIMARY_INSTANCE_REGION_ID \
--remove-cross-instance-replication-config-secondary-instances=[instance=SECONDARY_INSTANCES] \
--cross-instance-replication-config-role=none

次のように置き換えます。

  • PRIMARY_INSTANCE_ID: プライマリ インスタンスの ID。
  • PROJECT_ID: セカンダリ インスタンスが含まれているプロジェクトの ID。
  • PRIMARY_INSTANCE_REGION_ID: プライマリ インスタンスが配置されているリージョンの ID。
  • SECONDARY_INSTANCES: 切り離すセカンダリ インスタンス。インスタンス ID はカンマで区切ります。各セカンダリ インスタンスの形式は projects/PROJECT_ID/locations/SECONDARY_INSTANCE_REGION_ID/instances/INSTANCE_ID にする必要があります。

次に例を示します。

gcloud memorystore instances update my-primary-instance \
--project=my-project \
--location=us-central1 \
--remove-cross-instance-replication-config-secondary-instances=[instance=projects/my-project/locations/us-west4/instances/my-secondary-instance-1,instance=projects/my-project/locations/asia-southeast2/instances/my-secondary-instance-2] \
--cross-instance-replication-config-role=none

また、接続解除したくないインスタンスのリストを指定して、セカンダリ インスタンスをプライマリ インスタンスから切り離すこともできます。Memorystore for Valkey は、このリストに含まれていないインスタンスを切り離します。

次のセカンダリ インスタンスがあるとします。

  • instance-1: このインスタンスは us-east1 リージョンに配置されています。
  • instance-2: このインスタンスは asia-east1 リージョンに存在します。

両方のセカンダリ インスタンスを my-primary-instance から切り離す。このプライマリ インスタンスは us-central1 リージョンにあり、my-project プロジェクトに含まれています。

セカンダリ インスタンスを切り離すには、次のコードを使用します。

gcloud memorystore instances update my-primary-instance \
--project=my-project \
--location=us-central1 \
--cross-instance-replication-config-secondary-instances=[]
--cross-instance-replication-config-role=none

この例では、null の [] 値が --cross-instance-replication-config-secondary-instances パラメータに割り当てられているため、Memorystore for Valkey はすべてのセカンダリ インスタンスをプライマリ インスタンスから切り離します。

インスタンスの設定を更新する

このセクションには、インスタンス設定を更新するためのリンクが用意されています。インスタンス設定の更新プロセスは、プライマリ インスタンスとセカンダリ インスタンスのどちらで設定を変更するかによって異なります。設定を更新する方法については、インスタンスの設定をご覧ください。

プライマリ インスタンスの設定を更新する

プライマリ インスタンスで次の設定を変更する必要があります。変更を行うと、Memorystore for Valkey は変更をセカンダリ インスタンスに同期します。

セカンダリ インスタンスの設定を更新する

セカンダリ インスタンスで次の設定を変更する必要があります。

クロスリージョン レプリケーションを使用するインスタンスを削除する

このセクションでは、クロスリージョン レプリケーションを使用するプライマリ インスタンスとセカンダリ インスタンスを削除する方法について説明します。

プライマリ インスタンスを削除する

プライマリ インスタンスを削除するには、次の操作を行います。

  1. すべてのセカンダリ インスタンスを切り離すか、削除します。
  2. プライマリ インスタンスを削除するには、インスタンスを削除するの手順に沿って操作します。

誤って削除されないように、プライマリ インスタンスとセカンダリ インスタンスを同時に削除することはできません。

セカンダリ インスタンスを削除する

セカンダリ インスタンスを削除するには、インスタンスを削除するの手順に沿って操作します。インスタンス ID には、セカンダリ インスタンスの ID を使用します。