次の方法で共有


Azure Cache for Redis から Azure Managed Redis に移行する (プレビュー)

この記事では、Azure Cache for Redis インスタンスから Azure Managed Redis (プレビュー) インスタンスに移行する方法について説明します。

重要

Azure Managed Redis は現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

前提条件

Azure Cache for Redis と Azure Managed Redis (プレビュー) との機能の比較

機能の説明 Basic Standard Premium バランス (プレビュー) メモリ最適化 (プレビュー) コンピューティング最適化 (プレビュー)
可用性 該当なし 99.9% 99.9% 該当なし 該当なし 該当なし
転送中のデータの暗号化 はい イエス イエス イエス イエス はい
ネットワークの分離 はい イエス イエス イエス イエス はい
スケールアップ/スケールアウト はい イエス イエス イエス イエス はい
スケールダウン/スケールイン はい イエス はい いいえ いいえ いいえ
OSS クラスタリング いいえ 番号 イエス イエス イエス はい
データの永続化 いいえ 番号 イエス イエス イエス はい
ゾーン冗長性 いいえ はい (プレビュー) はい イエス イエス はい
geo レプリケーション いいえ いいえ はい (パッシブ) はい (アクティブ) はい (アクティブ) はい (アクティブ)
接続監査ログ いいえ 番号 はい 可 (イベントベース) 可 (イベントベース) 可 (イベントベース)
Redis モジュール いいえ いいえ 番号 イエス イエス はい
Import/Export いいえ 番号 イエス イエス イエス はい
Reboot はい イエス はい いいえ いいえ いいえ
スケジュールされた更新 はい イエス はい いいえ いいえ いいえ
Microsoft Entra ID 認証 はい イエス イエス イエス イエス はい
Microsoft Entra ID RBAC はい イエス はい いいえ いいえ いいえ
キースペース通知 はい イエス はい いいえ いいえ いいえ
非高可用性 該当なし いいえ 番号 イエス イエス はい

前のマッピングで説明されていないその他の違いを次に示します。 次のクライアント アプリケーションの変更を検討してください。

機能の説明 Azure Cache for Redis Azure Managed Redis (プレビュー)
DNS サフィックス (PROD クラウドの場合のみ) .redis.cache.windows.net <region>.redis.azure.net
TLS ポート 6380 10000
非 TLS ポート 6379 サポートされていません
個々のノードの TLS ポート 130XX 85xx
個々のノードの非 TLS ポート 150XX サポートされていません
クラスター化のサポート OSS クラスタリング モード OSS および Enterprise クラスター モード
サポートされていないコマンド サポートされていないコマンド マルチキー コマンド
リージョン別の提供状況 すべての Azure リージョン 3 つの AZ があるリージョンのみ
詳細については、利用可能な製品に関するセクションを参照してください。
Redis バージョン 6 7.4
"サポートされている TLS バージョン" 1.2 および 1.3 1.2 および 1.3

Azure Cache for Redis インスタンスを Azure Managed Redis に移行する

Note

キャッシュを使用するために、必要に応じて、アプリケーションの残りの部分と関連する Azure リソースを必ず更新してください。

Azure portal から移行するキャッシュを選択する

非クラスター化 Azure Cache for Redis Basic/Standard/Premium

Note

Basic SKU の移行に Azure Managed Redis の非高可用性オプションを使用する

Azure Cache for Redis Azure Managed Redis 追加メモリ (%)
Basic/Standard - C0 バランス - B0 50
Basic/Standard - C1 バランス - B1 0
Basic/Standard - C2 バランス - B3 17
Basic/Standard - C3 バランス - B5 0
Basic/Standard - C4 メモリ最適化 – M10* -8
Basic/Standard – C4 メモリ最適化 – M20** 46
Basic/Standard - C5 メモリ最適化 – M20* -8
Basic/Standard – C5 メモリ最適化 – M50** 57
Basic/Standard - C6 メモリ最適化 - M50 12
Premium - P1 バランス - B5 0
Premium - P2 バランス - B10* -8
Premium - P2 バランス - B20** 46
Premium - P3 バランス - B20* -8
Premium - P3 バランス - B50** 57
Premium - P4 バランス - B50 12
Premium - P5 バランス - B100 0
  • *このオプションは、コスト効率に適しています。 このオプションを選択するには、過去 1 か月間に使用されたメモリの合計のピークが、推奨される AMR メモリよりも小さいことを確認してください。
  • ** このオプションは、豊富なメモリ消費に適しています。

クラスター化 Azure Cache for Redis Premium

  • シャード クラスターの場合は、同等の合計メモリを持つメモリ最適化レベルを選びます。
  • 複数の読み取りレプリカを持つクラスターの場合は、同等の合計メモリを持つコンピューティング最適化レベルをプライマリ レプリカとして選びます。

移行オプション

クライアント アプリケーションは、さまざまなクラスタリング モードとエンドポイントを持つ Azure Managed Redis インスタンスを使用できる必要があります。 Azure Cache for Redis と Azure Managed Redis (プレビュー) は互換性があるため、ほとんどのシナリオでは接続構成以外のアプリケーション コードの変更は必要ありません。

詳細については、以下をご覧ください。

Azure Cache for Redis を Azure Managed Redis に移行するためのオプション

オプション 長所 短所
新しいキャッシュを作成する 実装が非常に簡単です。 新しいキャッシュにデータを再入力する必要があります。多くのアプリケーションで動作しない可能性があります。
RDB ファイルを使用してデータをエクスポートおよびインポートする 一般に、Redis キャッシュとの互換性があります。 RDB ファイルの生成後に既存のキャッシュに書き込まれると、一部のデータが失われる可能性があります。
2 つのキャッシュにデータを二重に書き込む データの損失やダウンタイムはありません 既存のキャッシュが中断されない操作です。 新しいキャッシュのテストが簡単になります。 長期間にわたって 2 つのキャッシュが必要です。
プログラムでデータを移行する データの移動方法を完全に制御できます。 カスタム コードが必要です。

新しい Azure Cache for Redis を作成する

このアプローチは、技術的には移行ではありません。 データの損失が気にならない場合、Azure Managed Redis レベルに移行する最も簡単な方法は、新しいキャッシュ インスタンスを作成し、それにアプリケーションを接続することです。 たとえば、Redis をデータベース レコードのルックアサイド キャッシュとして使用すると、キャッシュをゼロから簡単に再構築できます。 このオプションを実装する一般的な手順は、次のとおりです。

  1. 新しい Azure Managed Redis インスタンスを作成します。
  2. 新しいインスタンスが使用されるようにアプリケーションを更新します。
  3. 古い Azure Cache for Redis インスタンスを削除します。

データを RDB ファイルにエクスポートし、Azure Managed Redis にインポートします

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

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

  1. 既存の Azure Cache for Redis インスタンスと同じ (またはより大きい) サイズの新しい Azure Managed Redis インスタンスを作成します。
  2. 次のエクスポート手順または PowerShell の Export コマンドレットを使用して、既存の Azure Cache for Redis インスタンスから RDB ファイルをエクスポートします
  3. 次のインポート手順または PowerShell インポート コマンドレットを使用して、RDB ファイルを新しい Azure Managed Redis インスタンスにインポートします
  4. 新しい Azure Managed Redis インスタンスの接続文字列を使用するようにアプリケーションを更新します。

データのエクスポート:

az redis export --resource-group <ResourceGroupName> --name <Azure Cache for Redis instance name> --prefix <BlobPrefix> --container <ContainerName> --file-format <FileFormat>

データのインポート:

az redis import --resource-group <ResourceGroupName> --name <Azure Managed Redis instance name> --files <BlobUris>

ResourceGroupNameCacheNameBlobPrefixContainerName、および FileFormat を具体的な値に置き換えます。 ファイル形式には、RDB と AOF のいずれかを指定できます。

移行期間内に 2 つの Redis キャッシュに同時に書き込む

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

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

  1. 既存の Azure Cache for Redis インスタンスと同じ (またはより大きい) サイズの新しい Azure Managed Redis インスタンスを作成します。
  2. 新しいインスタンスと元のインスタンスの両方に書き込まれるようにアプリケーション コードを変更します。
  3. 新しいインスタンスに十分なデータが入力されるまで、元のインスタンスからのデータの読み取りを続行します。
  4. 新しいインスタンスからの読み取りと書き込みのみが行われるようにアプリケーション コードを更新します。
  5. 元のインスタンスを削除します。

プログラムで移行する

プログラムで既存の Azure Cache for Redis インスタンスからデータを読み込み、Azure Managed Redis インスタンスに書き込むことで、カスタム移行プロセスを作成します。 試すことができるオープン ソース ツールには次の 2 つがあります。

  • Redis-copy
    • このオープンソース ツールを使用すると、別の Azure Cache for Redis インスタンスにデータをコピーできます。 このツールは、さまざまな Azure Cache for Redis リージョンのキャッシュ インスタンス間でデータを移動する場合に役立ちます。 コンパイル済みのバージョンも入手できます。 独自の移行ツールの作成に役立つガイドになるソース コードも見つけることができます。
  • RIOT
    • RIOT は、Redis コミュニティによってテストされたもう 1 つの人気がある移行ツールです。 これは、Redis 内外からデータを取得するのに役立つコマンド ライン ユーティリティです。

Note

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

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

  1. 既存のキャッシュが配置されているリージョンで VM を作成します。 データセットが大きい場合は、コピー時間が削減されるように、比較的強力な VM を選択してください。
  2. 新しい Azure Managed Redis インスタンスを作成します。
  3. 新しいキャッシュからデータをフラッシュして、空になったことを確認します。 このステップは、コピー ツール自体ではターゲット キャッシュの既存のキーが上書きされないため必須です。 重要: ソース キャッシュからのフラッシュは "しないで" ください。
  4. 前述のオープンソース ツールなどのアプリケーションを使用して、ソース キャッシュからターゲットへのデータのコピーを自動化します。 データセットのサイズによっては、コピー処理が完了するまでに時間がかかる場合があることに注意してください。