次の方法で共有


Azure Cache for Redis インスタンスを別のリージョンに移動する

この記事では、Azure Cache for Redis インスタンスを別の Azure リージョンに移動する方法について説明します。 さまざまな理由により、リソースを別のリージョンに移動する場合があります。

  • 新しい Azure リージョンを利用するため。
  • 特定のリージョンでのみ使用できる機能やサービスをデプロイするため。
  • 内部ポリシーとガバナンスの要件を満たすため。
  • キャパシティ プランニングの要件に対応するため。

オンプレミス、クラウドベースの VM、または別のホスティング サービスから Azure Cache for Redis に移行する場合は、「Azure Cache for Redis への移行」を参照することをお勧めします。

使用する Azure Cache for Redis のレベルによって、最適なオプションが決まります。

キャッシュ レベル オプション
プレミアム geo レプリケーション、新しいキャッシュの作成、2 つのキャッシュへのデュアル書き込み、RDB ファイルを使用したデータのエクスポートとインポート、またはプログラムによる移行
Basic または Standard 新しいキャッシュの作成、2 つのキャッシュへのデュアル書き込み、またはプログラムによる移行
Enterprise または Enterprise Flash 新しいキャッシュの作成、RDB ファイルを使用したデータのエクスポートとインポート、またはプログラムによる移行

パッシブ geo レプリケーション (Premium)

前提条件

2 つのキャッシュの間に geo レプリケーションを構成するには、次の前提条件を満たす必要があります。

  • 両方のキャッシュが Premium レベルのキャッシュである。
  • 両方のキャッシュが同じ Azure サブスクリプションに存在する。
  • セカンダリ リンク キャッシュがプライマリ リンク キャッシュと同じキャッシュ サイズであるか、またはそれより大きいキャッシュ サイズである。
  • 両方のキャッシュが既に存在し、実行中である。

準備

キャッシュ インスタンスを別のリージョンに移動するには、目的のリージョンに 2 番目の Premium キャッシュ インスタンスを作成する必要があります。 両方のキャッシュが実行されたら、2 つのキャッシュ インスタンス間に geo レプリケーションを設定できます。

Azure リージョン間のデータ転送は、標準の帯域幅レートで課金されます。

geo レプリケーションでは一部の機能がサポートされていません。

  • ゾーン冗長は geo レプリケーションではサポートされていません。
  • 永続化は geo レプリケーションではサポートされていません。

geo レプリケーションのサポート条件:

geo レプリケーションを構成した後、次の制限が、リンク キャッシュ ペアに適用されます。

  • セカンダリ リンク キャッシュは読み取り専用です。 そこから読み取ることはできますが、データを書き込むことはできません。
    • geo セカンダリ インスタンスからの読み取りを選択した場合は、geo プライマリと geo セカンダリの間で完全データ同期 (geo プライマリまたは geo セカンダリのどちらかが更新されたときや、一部の再起動シナリオなど) が実行されているときは、geo プライマリと geo セカンダリの間の完全データ同期が完了するまで、geo セカンダリ インスタンスはそれに対する Redis 操作でエラーをスローします。
    • geo セカンダリから読み取るアプリケーションは、geo セカンダリがこのようなエラーをスローするたびに geo プライマリにフォールバックするように構築する必要があります。
  • リンクが追加される前にセカンダリ リンク キャッシュにあったデータはすべて削除されます。 ただし、geo レプリケーションが後で削除された場合、レプリケートされたデータはセカンダリ リンク キャッシュに残ります。
  • キャッシュがリンクされている間は、どちらのキャッシュもスケーリングできません。
  • キャッシュでクラスタリングが有効になっている場合は、シャードの数を変更できません。
  • どちらのキャッシュでも永続化を有効にすることはできません。
  • どちらのキャッシュからもエクスポートできます。
  • セカンダリ リンク キャッシュにはインポートできません。
  • キャッシュをリンク解除するまでは、リンクされたキャッシュ、またはそれらを含むリソース グループのどちらも削除できません。 詳しくは、「リンクされたキャッシュを削除しようとすると、操作が失敗するのはどうしてですか」をご覧ください。
  • キャッシュが異なるリージョンに存在する場合、ネットワーク送信コストはリージョン間で移動されたデータに適用されます。 詳しくは、「Azure リージョン間でデータをレプリケートするコストはどれくらいですか」をご覧ください。
  • フェールオーバーは自動ではありません。 プライマリ からセカンダリ インク キャッシュへのフェールオーバーを開始する必要があります。 クライアント アプリケーションをフェールオーバーする方法の詳細については、geo プライマリから geo セカンダリへのフェールオーバーの開始に関する記事を参照してください。

詳細ビュー

  1. geo レプリケーションのために 2 つのキャッシュをリンクするには、まずプライマリ リンク キャッシュにするキャッシュのリソース メニューの [geo レプリケーション] を選択します。 次に、左側の [geo レプリケーション][キャッシュ レプリケーション リンクの追加] をクリックします。

    キャッシュの geo レプリケーション メニューを示すスクリーンショット。

  2. [互換性のあるキャッシュ] の一覧で目的のセカンダリ キャッシュの名前を選択します。 そのセカンダリ キャッシュが一覧に表示されていない場合は、セカンダリ キャッシュの geo レプリケーションの前提条件が満たされていることを確認します。 キャッシュをリージョンでフィルター処理するには、マップ内のリージョンを選択して、 [互換性のあるキャッシュ] の一覧にあるキャッシュのみを表示します。

    geo レプリケーションとリンクするための互換性のあるキャッシュを示すスクリーンショット。

    また、コンテキスト メニューを使用してリンク プロセスを開始したり、セカンダリ キャッシュに関する詳細を表示したりすることもできます。

    geo レプリケーションのコンテキスト メニューを示すスクリーンショット。

  3. [リンク] を選択して、2 つのキャッシュをリンクし、レプリケーション プロセスを開始します。

    geo レプリケーションのキャッシュをリンクする方法を示すスクリーンショット。

確認

  1. 左側の [geo レプリケーション] を使用して、レプリケーション プロセスの進行状況を表示できます。

    現在のリンク状態を示すスクリーンショット。

    プライマリ キャッシュとセカンダリ キャッシュの両方の [概要] を使用して、左側にリンクの状態を表示することもできます。

    プライマリ キャッシュとセカンダリ キャッシュのリンク状態を表示する方法を強調表示するスクリーンショット。

    レプリケーション プロセスが完了すると、 [リンクの状態] が「成功」に変わります。

    キャッシュ リンクの状態が [成功] であることを示すスクリーンショット。

    プライマリ リンク キャッシュは、リンク プロセス中も引き続き使用できます。 セカンダリ リンク キャッシュは、リンク プロセスが完了するまで使用できません。

ソース リソースをクリーンアップする

ターゲット リージョン内の新しいキャッシュに必要なすべてのデータが設定された後、2 つのキャッシュ間のリンクを削除し、元のインスタンスを削除します。

  1. 2 つのキャッシュ間のリンクを削除し、geo レプリケーションを停止するには、左側の [geo レプリケーション][キャッシュのリンク解除] を選択します。

    キャッシュのリンクを解除する方法を示すスクリーンショット。

    リンク解除プロセスが完了すると、セカンダリ キャッシュが読み取りと書き込みの両方に対して使用可能になります。

geo レプリケーション リンクが削除された場合も、プライマリ リンク キャッシュからレプリケートされたデータはセカンダリ キャッシュに残ります。

  1. 元のインスタンスを削除します。

新しいキャッシュを作成する (すべてのレベル)

前提条件

準備

移動中にデータを維持する必要がない場合、リージョンを移動する最も簡単な方法は、ターゲット リージョンに新しいキャッシュ インスタンスを作成し、アプリケーションを接続することです。 たとえば、Redis をデータベース レコードのルックアサイド キャッシュとして使用すると、キャッシュをゼロから簡単に再構築できます。

詳細ビュー

  1. Azure portal で、Azure Cache for Redis を検索して選択します。

  2. Azure Cache for Redis ページで作成>Azure Cache for Redis を選択します。

  3. [新しい Redis Cache] ページの [基本] タブで、次の設定を構成します。

    • [サブスクリプション] : 使用するサブスクリプションを選択します。
    • リソース グループ: リソース グループを選択するか、[ 新規作成 ] を選択して新しいリソース グループ名を入力します。 すべてのアプリ リソースを同じリソース グループに配置すると、それらを簡単に管理または削除できます。
    • 名前: リージョン内で一意のキャッシュ名を入力します。 名前は次の必要があります。
      • 1 ~ 63 文字の文字列を指定します。
      • 数字、文字、ハイフンのみを含みます。
      • 先頭と末尾に数字または文字を使用します。
      • 連続するハイフンを含まない。
    • リージョン: キャッシュを使用する他のサービスの近くにある Azure リージョン を選択します。
    • キャッシュ SKU: 使用可能なサイズ、パフォーマンス、およびキャッシュの機能を決定する SKU を選択します。
    • キャッシュ サイズ: キャッシュ サイズを選択します。 詳細については、Azure Cache for Redis の概要に関するページを参照してください。

    [新しい Redis Cache] ページの [基本] タブを示すスクリーンショット。

  4. [ネットワーク] タブ 選択するか、[ 次へ: ネットワーク] を選択します。

  5. [ネットワーク] タブで、キャッシュに使う接続方法を選びます。 セキュリティにはプライベート エンドポイント をお勧めします。 [プライベート エンドポイント] を選択した場合は、[プライベート エンドポイントの追加] を選択し、プライベート エンドポイントを作成します。

  6. [ 詳細設定 ] タブを選択するか、[ 次へ: 詳細設定] を選択します。

  7. [ 詳細設定 ] ウィンドウで、次のオプションを構成します。

    • Microsoft Entra 認証またはアクセス キー認証を選択します。 Microsoft Entra 認証 は既定で有効になっています。
    • TLS 以外のポートを 有効に するかどうかを選択します。
    • Premium キャッシュの場合は、 可用性ゾーンを構成または無効にすることができます。 キャッシュの作成後に可用性ゾーンを無効にすることはできません。 Standard キャッシュの場合、可用性ゾーンは自動的に割り当てられます。 可用性ゾーンは Basic SKU では使用できません。
    • Premium キャッシュの場合は、 レプリカ数クラスタリングシャード数システム割り当てマネージド IDおよびデータ永続化の設定を構成します。

    次の図は、Standard SKU の [詳細設定 ] タブを示しています。

    Standard SKU キャッシュの [詳細] ウィンドウを示すスクリーンショット。

    重要

    可能であれば、マネージド ID と共に Microsoft Entra ID を使用して、キャッシュに対する要求を承認します。 Microsoft Entra ID とマネージド ID を使用した承認により、セキュリティが向上し、共有アクセス キーの承認よりも簡単に使用できます。 キャッシュでのマネージド ID の使用について詳しくは、キャッシュ認証への Microsoft Entra ID の使用に関する記事をご覧ください。

  8. 必要に応じて、[ タグ ] タブを選択するか、[ 次へ: タグ] を選択し、タグ名と値を入力してキャッシュ リソースを分類します。

  9. [ 確認と作成] を選択し、検証に合格したら [ 作成] を選択します。

新しいキャッシュのデプロイには数分かかります。 デプロイの進行状況は、ポータルの Azure Cache for Redis ページで監視できます。 キャッシュの状態が [実行中] と表示されたら、キャッシュを使用する準備が整います。

最後に、新しいインスタンスが使用されるようにアプリケーションを更新します。

ソース リソースをクリーンアップする

ターゲット リージョンで新しいキャッシュが実行されたら、元のインスタンスを削除します。

RDB ファイルを使用したデータのエクスポートとインポート (Premium、Enterprise、Enterprise Flash)

オープンソースの Redis は、キャッシュのメモリ内データセットのスナップショットを取得してファイルに保存するための標準的なメカニズムが定義されます。 この (RDB と呼ばれる) ファイルは、別の Redis キャッシュで読み取ることもできます。 Azure Cache for Redis の Premium と Enterprise では、RDB ファイルを使用したキャッシュ インスタンスへのデータのインポートがサポートされています。 RDB ファイルを使用すると、既存のキャッシュから Azure Cache for Redis にデータを転送できます。

重要

RDB ファイルの形式は、Redis のバージョン間で変更されることがあるため、下位互換性が確保されない場合があります。 エクスポートするキャッシュの Redis のバージョンは、新しいキャッシュ インスタンスのバージョンと同じかそれより前である必要があります。

前提条件

  • 両方のキャッシュが Premium レベルまたは Enterprise レベルのキャッシュである。
  • 2 番目のキャッシュは、元のキャッシュと同じキャッシュ サイズまたはそれよりも大きいキャッシュ サイズのどちらかです。
  • エクスポートするキャッシュの Redis のバージョンは、新しいキャッシュ インスタンスのバージョンと同じかそれより前である必要があります。

準備

キャッシュ インスタンスを別のリージョンに移動するには、目的のリージョンに 2 つ目の Premium キャッシュ インスタンス を作成する必要があります。

詳細ビュー

  1. Azure Cache for Redis でデータをインポートまたはエクスポートする方法の詳細については、 「Azure Cache for Redis でデータをインポートまたはエクスポートする」を参照してください。

  2. 新しいキャッシュ インスタンスが使用されるようにアプリケーションを更新します。

確認

インポート操作の進行状況を監視するには、Azure Portal からの通知を確認するか、監査ログのイベントを確認します。

ソース リソースをクリーンアップする

ターゲット リージョンで新しいキャッシュが実行されたら、元のインスタンスを削除します。

2 つのキャッシュへのデュアル書き込み (Basic、Standard、Premium)

キャッシュ間で直接データを移動するのではなく、アプリケーションを使用して、既存のキャッシュと設定中の新しいものの両方にデータを書き込むことができます。 最初に、アプリケーションによって既存のキャッシュからデータが読み取られます。 新しいキャッシュに必要なデータがある場合は、そのキャッシュにアプリケーションを切り替え、古いキャッシュを削除します。 たとえば、Redis をセッション ストアとして使用し、アプリケーション セッションが 7 日間有効であるとします。 1 週間で 2 つのキャッシュに書き込むと、新しいキャッシュに期限切れではないセッション情報がすべて含まれていることがわかります。 その時点以降は、データが失われることを心配せずに安全に利用できます。

前提条件

  • 2 番目のキャッシュは、元のキャッシュと同じキャッシュ サイズまたはそれよりも大きいキャッシュ サイズのどちらかです。

準備

キャッシュ インスタンスを別のリージョンに移動するには、目的のリージョンに 2 番目のキャッシュ インスタンスを作成する必要があります。

詳細ビュー

このオプションを実装する一般的な手順は、次のとおりです。

  1. 新しいインスタンスと元のインスタンスの両方に書き込まれるようにアプリケーション コードを変更します。

  2. 新しいインスタンスに十分なデータが入力されるまで、元のインスタンスからのデータの読み取りを続行します。

  3. 新しいインスタンスからの読み取りと書き込みのみが行われるようにアプリケーション コードを更新します。

ソース リソースをクリーンアップする

ターゲット リージョンで新しいキャッシュが実行されたら、元のインスタンスを削除します。

プログラムで移行する (すべての層)

プログラムで既存のキャッシュからデータを読み込み、Azure Cache for Redis に書き込むことで、カスタム移行プロセスを作成できます。 このオープンソース ツールを使用すると、1 つの Azure Cache for Redis インスタンスから別の Azure Cache リージョン内にある別のインスタンスにデータをコピーできます。 コンパイル済みのバージョンも入手できます。 また、独自の移行ツールを作成する際に役立つガイドとなるソース コードが見つかることもあります。

このツールは、正式には Microsoft でサポートされていません。

前提条件

  • 2 番目のキャッシュは、元のキャッシュと同じキャッシュ サイズまたはそれよりも大きいキャッシュ サイズのどちらかです。

準備

  • 既存のキャッシュが配置されているリージョンで VM を作成します。 データセットが大きい場合は、コピー時間が削減されるように、比較的強力な VM を選択してください。
  • キャッシュ インスタンスを別のリージョンに移動するには、目的のリージョンに 2 番目のキャッシュ インスタンスを作成する必要があります。

詳細ビュー

既存のキャッシュがあるリージョンに VM を作成し、目的のリージョンに新しいキャッシュを作成した後、このオプションを実装する一般的な手順は次のとおりです。

  1. 新しいキャッシュからデータをフラッシュして、空になったことを確認します。 このステップは、コピー ツール自体ではターゲット キャッシュの既存のキーが上書きされないため必須です。

    重要

    絶対にソース キャッシュからフラッシュしないでください。

  2. 上記のオープンソース ツールなどのアプリケーションを使用して、ソース キャッシュからターゲットへのデータのコピーを自動化します。 データセットのサイズによっては、コピー処理が完了するまでに時間がかかる場合があることに注意してください。

ソース リソースをクリーンアップする

ターゲット リージョンで新しいキャッシュが実行されたら、元のインスタンスを削除します。

次のステップ

Azure Cache for Redis の機能について