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

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

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

セカンダリ クラスタの作成

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

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

コンソール

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

    Memorystore for Redis Cluster

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gcloud

セカンダリ クラスタを作成するには、gcloud redis clusters create コマンドを使用します。

gcloud redis clusters create CLUSTER_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cross-cluster-replication-role=secondary \
--network=NETWORK \
--primary-cluster=PRIMARY_CLUSTER_PATH

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

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

次に例を示します。

gcloud redis clusters create my-secondary-cluster \
--project=my-project \
--region=asia-east1 \
--cross-cluster-replication-role=secondary \
--network=projects/my-project/global/networks/default
--primary-cluster=projects/my-project/locations/us-central1/clusters/my-primary-cluster

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

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

コンソール

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

    Memorystore for Redis Cluster

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

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

gcloud

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

gcloud redis clusters describe CLUSTER_ID \
--region=REGION_ID \

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

  • CLUSTER_ID: セカンダリ クラスタの ID
  • REGION_ID: セカンダリ クラスタが配置されているリージョンの ID

切り替えを行う

スイッチオーバーを使用すると、障害復旧のためにセカンダリ クラスタをプライマリ クラスタにプロモートして、プライマリ クラスタとセカンダリ クラスタのロールを入れ替えることができます。

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

コンソール

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

    Memorystore for Redis Cluster

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

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

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

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

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

gcloud

切り替えを実行するには、gcloud redis clusters switchover コマンドを使用します。

gcloud redis clusters switchover CLUSTER_ID \
--project=PROJECT_ID \
--region=REGION_ID \

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

  • CLUSTER_ID: スイッチオーバーするセカンダリ クラスタの ID
  • PROJECT_ID: プロジェクト ID
  • REGION_ID: セカンダリ クラスタが配置されているリージョンの ID

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

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

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

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

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

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

コンソール

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

    Memorystore for Redis Cluster

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

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

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

  5. [Detach from Primary] をクリックします。

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

gcloud

セカンダリ クラスタの関連付けを解除するには、gcloud redis clusters detach コマンドを使用します。

gcloud redis clusters detach CLUSTER_ID \
--project=PROJECT_ID \
--region=REGION_ID

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

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

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

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

コンソール

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

    Memorystore for Redis Cluster

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

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

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

  5. [Detach from Primary] をクリックします。

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

    1. セカンダリ クラスタの ID を入力します。複数の ID がある場合は、カンマで区切ってください。

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

gcloud

複数のセカンダリ クラスタの関連付けを解除するには、gcloud redis clusters detach-secondaries コマンドを使用します。

gcloud redis clusters detach-secondaries PRIMARY_CLUSTER_ID \
--clusters-to-detach=SECONDARY_CLUSTERS \
--project=PROJECT_ID \
--region=PRIMARY_CLUSTER_REGION_ID

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

  • PRIMARY_CLUSTER_ID: プライマリ クラスタの ID。
  • SECONDARY_CLUSTERS: 切り離すセカンダリ クラスタ。クラスタ ID はカンマで区切ります。各セカンダリ クラスタは projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID という形式にする必要があります。
  • PROJECT_ID: プロジェクト ID。
  • PRIMARY_CLUSTER_REGION: プライマリ クラスタが配置されているリージョンの ID。

次に例を示します。

gcloud redis clusters detach-secondaries my-primary-cluster \
--clusters-to-detach=projects/my-project/locations/us-west4/clusters/my-secondary-cluster-1,projects/my-project/locations/asia-southeast2/clusters/my-secondary-cluster-2  \
--project=my-project \
--region=us-central1

クラスタ設定を更新する

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

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

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

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

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

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

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

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

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

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

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

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

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