Redis と Valkey のワークロードを Memorystore for Valkey に移行する

Memorystore は、セルフマネージドの Redis ワークロードと Valkey ワークロードを Memorystore for Valkey に自動的に移行することをサポートしています。この機能を使用すると、独自のインフラストラクチャの管理という運用上の負担からシームレスに移行できます。Memorystore for Valkey のフルマネージド環境に移行すると、手動での OS パッチ適用、レプリケーション設定、カスタム バックアップ スクリプトが不要になり、自動フェイルオーバーと VPC ネイティブのセキュリティ機能が利用可能になります。また、ダウンタイムをほぼゼロに抑えながら、数百のノードにスケーリングすることもできます。

セルフマネージド ワークロードを Memorystore for Valkey に移行すると、運用上の手間であるトイルを省き、データベース インフラストラクチャを最新化する次のメリットが得られます。

  • 運用オーバーヘッドの削減: OS パッチ適用、インフラストラクチャ モニタリング、バックアップ スクリプト、レプリケーション管理など、手動で時間のかかるタスクを Google Cloudにオフロードします。これにより、データベースのメンテナンスではなく、アプリケーション開発に集中できます。
  • エンタープライズ クラスの高可用性を実現する: フルマネージドの 99.99% の SLA を活用します。Memorystore for Valkey は、自動フェイルオーバーと、バックアップと復元の組み込み機能を提供します。これにより、アプリケーションが予期しないノード障害から保護され、迅速な障害復旧が保証されます。
  • ダウンタイムをほぼゼロにしてスケーリングする: 予測不可能なトラフィックの急増に合わせて、インスタンスを動的にスケールインまたはスケールアウトします。アプリケーションをオフラインにすることなく、数百のノード(最大 250 個のシャード)にシームレスに拡張できます。
  • セキュリティを強化する: 複雑で手動で構成されたネットワーク ルールを、安全な組み込みの VPC 接続と、きめ細かい Identity and Access Management(IAM)ベースのアクセス制御に置き換えます。これにより、Google Cloudの厳格なセキュリティ境界によってデータが保護されます。
  • インスタンスを統合してアップグレードする: 散在し、サイロ化され、セルフマネージドのインスタンスを、Memorystore for Valkey の単一の高性能デプロイに簡単に統合できます。この移行の一環として、古い Redis バージョンまたは Valkey バージョンをサポートされている最新リリースに自動的にアップグレードすることもできます。
  • 高度なリアルタイム解析と生成 AI を実現する: キャッシュ保存とセッション管理でマイクロ秒単位のレイテンシを実現する最適化された環境に移行します。生成 AI(GenAI)アプリケーションを強化するために、ベクトル検索などの高度な機能にすぐにアクセスできます。

バージョン サポート

このセクションの表には、移行元の Redis と Valkey のセルフマネージド インスタンスと、Memorystore for Valkey の移行先インスタンスに関する次の情報が一覧表示されます。

  • 移行でサポートされているソース インスタンスのタイプとバージョン
  • ワークロードを移行できるターゲット Memorystore for Valkey インスタンスのバージョン
ソース インスタンスのタイプ ソース インスタンスのバージョン ターゲット インスタンスのバージョン
Redis 3.2.x - 7.2.x Valkey 7.2、8.0、9.0
Valkey 7.x、8.x、9.x Valkey 7.2、8.0、9.0

始める前に

ワークロードの移行を開始する前に、このセクションの前提条件を満たしてください。

Google Cloud コンソール、Google Cloud CLI、API を使用する

Google Cloud コンソール、gcloud CLI、API を使用するには、次の操作を行います。

  1. Google Cloud コンソールのプロジェクト セレクタ ページで、 Google Cloud プロジェクトを選択または作成します。

    プロジェクトの選択に移動

  2. プロジェクトに対して課金が有効になっていることを確認します。プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
  3. Google Cloud CLI をインストールして初期化します。

    注: すでに gcloud CLI をインストールしている場合は、gcloud components update を実行して、最新バージョンがインストールされていることを確認してください。Memorystore for Valkey の gcloud CLI コマンドを利用するには、少なくとも gcloud CLI バージョン 489.0.0 が必要です。

  4. Memorystore for Valkey API を有効にします。
    Memorystore for Valkey API
  5. Network Connectivity API を有効にします。
    Network Connectivity API
  6. Service Consumer Management API を有効にします。
    Service Consumer Management API
  7. Compute Engine API を有効にします。
    Compute Engine API

ロールと権限を割り当てる

セルフマネージド Redis インスタンスと Valkey インスタンスのワークロードを Memorystore for Valkey に移行するすべてのオペレーションを実行するには、Google Cloud プロジェクトに対する Memorystore 管理者 roles/memorystore.admin)IAM ロールを付与するよう管理者に依頼してください。

ネットワーク アタッチメントを作成して表示するには、プロジェクトに対する Compute ネットワーク管理者 roles/compute.networkAdmin)IAM ロールを付与するよう管理者に依頼してください。

ワークロードを移行するワークフロー

セルフマネージド Redis インスタンスと Valkey インスタンスのワークロードを Memorystore for Valkey に移行するには、次の操作を行います。

  1. ソース インスタンスを準備する: 安全な接続と Memorystore for Valkey へのアウトバウンド レプリケーションを許可するように、セルフマネージド Redis または Valkey インスタンスを構成します。
  2. 移行先インスタンスを準備する: シャード数やノードタイプなど、必要なインスタンス仕様を決定します。
  3. 移行先インスタンスを作成する: 移行データを受け取る Memorystore for Valkey インスタンスをプロビジョニングします。
  4. ネットワーク アタッチメントを構成する: ネットワーク アタッチメントを設定します。このアタッチメントにより、プロデューサー VPC ネットワーク内のターゲット インスタンスが、コンシューマー VPC ネットワークで実行されているソース インスタンスへの接続を開始できます。その結果、レプリケーションが確立されます。
  5. 移行を開始: 同期プロセスを開始します。移行先インスタンスは移行元インスタンスに自動的に接続し、読み取りレプリカとしてデータのレプリケーションを継続的に開始します。
  6. 移行をモニタリングする: 移行が問題なく進行し、移行のステータスが HEALTHY であることを確認します。
  7. 移行を完了する: アプリケーション トラフィックをターゲット インスタンスに切り替えます。

移行元インスタンスを準備する

ワークロードをターゲットの Memorystore for Valkey インスタンスに移行できるように、セルフマネージドの Redis インスタンスまたは Valkey インスタンスを準備する必要があります。

ターゲット インスタンスのノードからソース インスタンスのノードへの接続を許可するには、次の操作を行います。

  • ソースノードで protected-mode が有効になっている場合は、無効にします。
  • 明示的な bind ディレクティブを使用してソースノードを構成した場合は、ターゲット ノードからの受信接続を許可するようにノードを更新します。ターゲット ノードは、ネットワーク アタッチメントのサブネット内の IP アドレスから接続を開始します。
  • ターゲット ノードからの受信接続をブロックする可能性のあるファイアウォール ルールを更新します。
  • ソースノードで認証と Transport Layer Security(TLS)が有効になっている場合は、無効にします。

ターゲット インスタンスのノードからソース インスタンスのノードへのレプリケーションを確立できるようにするには、次の操作を行います。

  • 移行またはデータ変更に必要な Valkey コマンドまたは Redis コマンド(PINGPSYNCHSET など)の名前を変更しないでください。
  • 移行元インスタンスに、移行先インスタンスのノードから発生する追加のレプリケーション負荷を管理するのに十分なメモリと CPU 容量があることを確認します。

移行先インスタンスを準備する

レプリケーション プロセスをスムーズに進めるには、移行元インスタンスからの受信ワークロードを処理できるように、移行先 Memorystore for Valkey インスタンスのサイズを適切に設定する必要があります。これを行うには、ターゲット インスタンスの正確な仕様を特定する必要があります。これらの仕様には、移行元インスタンスとの互換性、クラスタモードのタイプ、データベースの数、シャード数、バージョン、移行先インスタンスのノードタイプが含まれます。

ターゲット インスタンスを準備するには、次のガイドラインを使用します。

  • ソース インスタンスとの互換性: ソース インスタンスとターゲット インスタンスは、同じプロジェクトとリージョンに存在する必要があります。
  • クラスタモード: 移行先インスタンスのクラスタモードは、移行元インスタンスのクラスタモードと一致する必要があります。ソース インスタンスがクラスタモードが無効の場合、ターゲット インスタンスもクラスタモードが無効である必要があります。それ以外の場合、ターゲット インスタンスはクラスタモードが有効になっている必要があります。
  • データベースの数: ターゲット インスタンスがクラスタモードが無効になっている場合、インスタンス上の論理データベースの数は、移行元インスタンス上のデータベースの数以上である必要があります。
  • シャード数: ターゲット インスタンスがクラスタモード有効の場合、ターゲット インスタンスのシャード数は、ソース インスタンスのシャード数と同じである必要があります。ただし、ソース インスタンスとターゲット インスタンスのレプリカ数は異なる場合があります。
  • インスタンスのバージョン: 移行先インスタンスのバージョンは、移行元インスタンスのバージョンと互換性がある必要があります。詳細については、バージョンのサポートをご覧ください。
  • メンテナンス バージョン: ターゲット インスタンスのメンテナンス バージョンは MEMORYSTORE_20260313_01_00 以降である必要があります。詳細については、メンテナンスについてをご覧ください。
  • ノードタイプ: 移行先インスタンスのノードタイプは、移行元インスタンスのノードから受信するデータを処理できるだけの大きさである必要があります。ターゲット インスタンスに選択できるノードタイプと、各ノードタイプの対応するキースペース容量の詳細については、ノードタイプの仕様をご覧ください。

ターゲット インスタンスを作成する

移行元インスタンスから移行されたデータを受信する要件を満たす移行先インスタンスがない場合は、インスタンスを作成する必要があります。

このインスタンスは、 Google Cloud コンソールまたは gcloud CLI を使用して作成できます。

コンソール

ターゲット インスタンスを作成するには、インスタンスを作成するをご覧ください。

gcloud

ターゲット インスタンスを作成するには、インスタンスを作成するをご覧ください。

ネットワーク アタッチメントを構成する

移行元インスタンスのワークロードを移行先インスタンスに移行するには、移行先インスタンスのノードが移行元インスタンスのノードへの接続を確立する必要があります。これにより、ソース インスタンスのデータをターゲット インスタンスに複製できます。

この接続とレプリケーションを行うには、ネットワーク アタッチメントを使用する必要があります。ターゲット ノードからの接続試行は、ネットワーク アタッチメントにリンクされているソース インスタンスの VPC ネットワーク内のサブネットから発信されます。

次の要件を満たすネットワーク アタッチメントを使用できます。

  • これは、ターゲット インスタンスと同じプロジェクトとリージョンに存在する必要があります。
  • サブネットは、ソース インスタンスと同じ VPC ネットワーク内に配置する必要があります。
  • 移行元インスタンスのサブネットには、十分な IP CIDR の範囲が必要です。少なくとも N+1 個の使用可能な IP アドレス(N は移行先インスタンスのノード数)をサポートする必要があります。たとえば、ターゲット インスタンスに 3 つのシャードと 1 つのレプリカがある場合、6 つのノード(プライマリ インスタンス用の 3 つのノードとレプリカ用の 3 つのノード)があります。したがって、少なくとも 7 つの IP アドレスが必要です。
  • この範囲は Memorystore for Valkey 用に予約されているため、サブネット範囲を 10.0.0.0/23 と重複させることはできません。

ネットワーク アタッチメントがこれらの要件を満たしていない場合や、ネットワーク アタッチメントがない場合は、ネットワーク アタッチメントを作成する必要があります。

移行を開始する

移行を開始すると、移行先インスタンスは移行元インスタンスとのレプリケーションを確立します。移行元インスタンスに書き込まれたデータは、移行先インスタンスに自動的に複製されます。移行先インスタンスは、移行元インスタンスのリードレプリカになります。

移行を開始するには、 Google Cloud コンソールまたは gcloud CLI を使用します。

コンソール

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

    Memorystore for Valkey

  2. ターゲット インスタンスの ID をクリックします。

  3. [インスタンスの概要] ページで、[移行を開始] をクリックします。

  4. [セルフ マネージド Redis および Valkey インスタンスの移行] ウィンドウで、次の操作を行います。

  5. [準備] タブで、ソース インスタンスの前提条件ネットワーク アタッチメントのガイドラインに関する情報を確認します。次に、[続行] をクリックします。

  6. [接続] タブで、次の操作を行います。

    1. 移行元インスタンスの IP アドレスポートを入力します。この情報は、移行元インスタンスを準備するでメモしました。
    2. データの移行に使用するネットワーク アタッチメントを選択します。
    3. [続行] をクリックします。
  7. [確認] タブで、移行プロセスに関連する情報を確認します。この情報には、ターゲット インスタンスの ID、送信元インスタンスの IP アドレスとポート、ネットワーク アタッチメントの名前が含まれます。この情報を確認したら、[移行を開始] をクリックします。

  8. [インスタンスの概要] ページで、[移行中] ステータスが表示されていることを確認します。

移行先インスタンスのノードが移行元インスタンスのノードに接続できない場合、または移行元インスタンスのデータを移行先インスタンスに複製できない場合、移行は失敗します。

この場合、Memorystore for Valkey は、移行プロセスを開始する前の状態にターゲット インスタンスをロールバックします。ターゲット インスタンスのステータスが Ready に戻り、インスタンスで読み取りと書き込みの両方が再び可能になります。

移行の失敗に関する問題を解決したら、移行を再開できます。

gcloud

移行を開始するには、gcloud beta memorystore instances start-migration コマンドを使用します。

gcloud beta memorystore instances start-migration INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION \
--source-ip=SOURCE_IP_ADDRESS \
--source-port=SOURCE_PORT \
--network-attachment=projects/NETWORK_ATTACHMENT_PROJECT_ID/locations/NETWORK_ATTACHMENT_REGION/networkAttachments/NETWORK_ATTACHMENT_ID

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

  • INSTANCE_ID: ターゲット インスタンスの ID。
  • PROJECT_ID: ターゲット インスタンスを含む Google Cloud プロジェクトの ID またはプロジェクト番号
  • REGION: ターゲット インスタンスが配置されているリージョン。
  • SOURCE_IP_ADDRESS: 送信元インスタンスの IP アドレス。この IP アドレスは、ソース インスタンスを準備するでメモしました。
  • SOURCE_PORT: ソース インスタンスのポート番号。このポートは、移行元インスタンスを準備するでメモしました。
  • NETWORK_ATTACHMENT_PROJECT_ID: データの移行に使用するネットワーク アタッチメントを含むGoogle Cloud プロジェクトの ID またはプロジェクト番号。
  • NETWORK_ATTACHMENT_REGION: ネットワーク アタッチメントが配置されているリージョン。
  • NETWORK_ATTACHMENT_ID: ネットワーク アタッチメントの ID。

移行が正常に開始されたことを確認するには、gcloud memorystore instances describe コマンドを使用します。

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

state パラメータの横に MIGRATING ステータスが表示されていることを確認します。

移行先インスタンスのノードが移行元インスタンスのノードに接続できない場合、または移行元インスタンスのデータを移行先インスタンスに複製できない場合、移行は失敗します。

この場合、Memorystore for Valkey は、移行プロセスを開始する前の状態にターゲット インスタンスをロールバックします。ターゲット インスタンスのステータスが ACTIVE に戻り、インスタンスは再び読み取りと書き込みの両方の権限を持つようになります。

移行の失敗に関する問題を解決したら、移行を再開できます。

移行をモニタリングする

移行が問題なく進行していることを確認するには、移行元インスタンスと移行先インスタンスで移行をモニタリングします。

移行元インスタンスをモニタリングする

移行元インスタンスで、移行元ノードのクライアント出力バッファの使用率が低いままであることを確認します。使用率が低い状態が続いている場合は、遅延が最小限に抑えられ、ソース インスタンスからターゲット インスタンスへのデータの同期が成功していることを示します。

移行先インスタンスをモニタリングする

移行先インスタンスの各プライマリ ノードで、ノード移行ステータス指標のステータスが HEALTHY であることを確認します。このステータスは、ソース インスタンスとターゲット インスタンスのシャード間のレプリケーション リンクが正常でアクティブであることを示します。

ターゲット インスタンスの移行は、Google Cloud コンソールを使用してモニタリングできます。ターゲット インスタンスの各プライマリ ノードのノード移行ステータス指標の値を確認する手順は次のとおりです。

  1. Google Cloud コンソールで、Metrics Explorer のページに移動します。

    Metrics Explorer

  2. [指標] メニューから、[ノード移行ステータス] 指標を選択します。これを行うには、[Memorystore インスタンス ノード] > [インスタンス] > [ノード移行ステータス] を選択し、[適用] をクリックします。

  3. [フィルタ] フィールドで、次のフィルタを追加します。

    • instance_id = (equals) INSTANCE_ID
    • role = (equals) primary
    • status != (does not equal) HEALTHY

    INSTANCE_ID は、ターゲット インスタンスの ID に置き換えます。

    これらのフィルタを追加すると、ターゲット インスタンスのプライマリ ノードをモニタリングして、正常でないノードがあるかどうかを確認できます。ノードが表示されない場合は、すべてのノードが正常であるため、移行を完了できます。

移行を完了する

アプリケーション トラフィックをターゲット インスタンスに切り替える準備ができたら、移行を完了します。これにより、移行先インスタンスのノードは移行元インスタンスのノードとのレプリケーションを行わなくなります。ターゲット インスタンスでは、すべての読み取り / 書き込みオペレーションが許可されます。

移行を完了するには、 Google Cloud コンソールまたは gcloud CLI を使用します。

コンソール

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

    Memorystore for Valkey

  2. ターゲット インスタンスの ID をクリックします。

  3. [インスタンスの概要] ページで、[移行を完了] をクリックします。

  4. [移行を完了] ダイアログで、次の操作を行います。

    1. 移行元インスタンスのすべてのデータが移行先インスタンスに複製されるようにするには、[標準] を選択します。

    2. [インスタンス ID] テキスト フィールドに、ターゲット インスタンスの ID を入力します。

    3. [移行を完了] をクリックします。

  5. [インスタンスの概要] ページで、[移行済み] ステータスが表示されていることを確認します。

gcloud

移行を完了するには、gcloud beta memorystore instances finish-migration コマンドを使用します。

gcloud beta memorystore instances finish-migration INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION

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

  • INSTANCE_ID: ターゲット インスタンスの ID
  • PROJECT_ID: ターゲット インスタンスを含む Google Cloud プロジェクトの ID またはプロジェクト番号
  • REGION: ターゲット インスタンスが配置されているリージョン

移行が正常に完了したことを確認するには、gcloud memorystore instances describe コマンドを使用します。

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

state パラメータの横に MIGRATED ステータスが表示されていることを確認します。