次の方法で共有


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

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

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

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

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

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

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

前提条件

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

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

準備

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

Note

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 レプリケーション][キャッシュのリンク解除] を選択します。

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

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

Note

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

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

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

前提条件

準備

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

移動

  1. キャッシュを作成するには、Azure portal にサインインします。 ポータル メニューで、[リソースの作成] を選択します。

    Azure portal の左側のナビゲーション ウィンドウ上で強調表示されている [リソースの作成] オプションを示すスクリーンショット。

  2. [作業の開始] ペインで、検索バーに「Azure Cache for Redis」と入力します。 検索結果で、Azure Cache for Redis を見つけた後、[作成] を選択します。

    検索ボックスに Azure Cache for Redis が入力され、[作成] ボタンが強調表示されている Azure Marketplace を示すスクリーンショット。

  3. [新しい Redis Cache] ペインの [基本] タブで、以下のキャッシュの設定を構成します。

    設定 アクション 説明
    サブスクリプション Azure サブスクリプションを選択します。 Azure Cache for Redis の新しいインスタンスの作成に使用するサブスクリプション。
    リソース グループ リソース グループを選択するか、 [新規作成] を選択し、新しいリソース グループの名前を入力します。 その中にキャッシュやその他のリソースを作成するリソース グループの名前。 すべてのアプリ リソースを 1 つのリソース グループに配置することで、それらをまとめて簡単に管理または削除できます。
    DNS 名 一意の名前を入力します。 キャッシュ名は、数字、英字、ハイフンのみを含む 1 から 63 文字の文字列とする必要があります。 名前の先頭と末尾には数字または文字を使用する必要があり、連続するハイフンを含めることはできません。 キャッシュ インスタンスの "ホスト名" は \<DNS name>.redis.cache.windows.net です。
    場所 場所を選択します。 キャッシュを使用する他のサービスに近い Azure リージョン
    キャッシュ SKU SKU を選択します。 この SKU によって、このキャッシュで利用できるサイズ、パフォーマンス、機能のパラメーターが決まります。 詳細については、Azure Cache for Redis の概要に関するページを参照してください。
    キャッシュ サイズ キャッシュ サイズを選択します。 詳細については、Azure Cache for Redis の概要に関するページを参照してください。
  4. [ネットワーク] タブを選択するか、[次へ: ネットワーク] を選択します。

  5. [ネットワーク] タブで、キャッシュで使用する接続方法を選択します。

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

  7. [詳細] ペインで、以下の情報に基づいて認証方法を確認または選択します。

    [詳細] ペインと選択できる利用可能なオプションを示すスクリーンショット。

    • 既定では、新しい Basic、Standard、または Premium キャッシュでは、Microsoft Entra 認証が有効になり、アクセス キー認証が無効になります。
    • Basic または Standard キャッシュの場合は、非 TLS ポートを選択できます。
    • Standard および Premium キャッシュの場合は、可用性ゾーンを有効にすることを選択できます。 キャッシュの作成後に可用性ゾーンを無効にすることはできません。
    • Premium キャッシュを利用する場合は、非 TLS ポート、クラスタリング、マネージド ID、データ永続化の設定を構成します。

    重要

    最適なセキュリティを確保するため、可能であれば、キャッシュに対する要求を認可するのに Microsoft Entra ID とマネージド ID を使用することをお勧めします。 Microsoft Entra ID とマネージド ID を使用した認可は、共有アクセス キー認可よりも優れたセキュリティと使いやすさを提供します。 キャッシュでマネージド ID を使用する方法の詳細については、「キャッシュ認証での Microsoft Entra ID の使用」を参照してください。

  8. (省略可能) [タグ] タブを選択するか、[次へ: タグ] を選択します。

  9. (省略可能) キャッシュ リソースを分類したい場合は、[タグ] タブで、タグの名前と値を入力します。

  10. [確認および作成] ボタンを選択します。

    [確認と作成] タブでは、Azure が構成を自動的に検証します。

  11. 緑色の検証に成功のメッセージが表示された後、 [作成] を選択します。

新しいキャッシュのデプロイは数分で完了します。 デプロイの進行状況は、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 キャッシュ インスタンスまたは 2 番目の Enterprise キャッシュ インスタンスを作成する必要があります。

詳細ビュー

  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 リージョン内にある別のインスタンスにデータをコピーできます。 コンパイル済みのバージョンも入手できます。 また、独自の移行ツールを作成する際に役立つガイドとなるソース コードが見つかることもあります。

Note

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

前提条件

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

準備

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

詳細ビュー

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

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

    重要

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

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

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

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

次のステップ

Azure Cache for Redis の機能について