Azure Managed Redis (プレビュー) インスタンスのデータ永続化を構成する
Redis の永続化を使用すると、キャッシュインスタンスに格納データを保持できます。 ハードウェア障害が発生した場合、キャッシュ インスタンスは、オンラインに戻ったときに永続化ファイルのデータでリハイドレートされます。 データを保持する機能は、すべてのキャッシュ データがメモリに保存されるため、キャッシュ インスタンスの持続性を向上させる重要な方法です。 キャッシュ ノードがダウンしているときに障害が発生した場合、データ損失が発生する可能性があります。 永続化は、Azure Managed Redis (プレビュー) を使用した高可用性とディザスター リカバリー戦略の重要な部分になります。
重要
データ永続化は、予期しない Redis ノードの障害に対する回復性を提供することを目的としたものですが、データ バックアップやポイントインタイム リカバリー (PITR) 機能ではありません。 破損したデータが Redis インスタンスに書き込まれた場合は、このデータも保持されます。 Redis インスタンスのバックアップを作成するには、エクスポート機能を使用します。
可用性のスコープ
レベル | メモリ最適化、バランス、コンピューティング最適化 | フラッシュ最適化 |
---|---|---|
利用可能 | はい | はい |
Redis でのデータ永続化の型
Azure Managed Redis での永続化には、"Redis データベース" (RDB) 形式と "追加専用ファイル" (AOF) 形式という 2 つのオプションがあります。
- RDB 永続化 - RDB 永続化を使用する場合、Azure Managed Redis によってキャッシュのスナップショットがバイナリ形式で保持されます。 スナップショットは、Redis インスタンスにマウントされたマネージド ディスクに保存されます。 構成可能なバックアップ頻度によって、スナップショットを永続化する頻度が決まります。 プライマリとレプリカの両方が無効になるような致命的なイベントが発生した場合、最新のスナップショットを使用してキャッシュが自動的に再構築されます。 RDB 永続化の長所と短所について、詳細をご確認ください。
- AOF 永続化 - AOF 永続化を使用する場合、Azure Managed Redis がすべての書き込み操作をログに保存します。 ログは、Redis インスタンスにマウントされたマネージド ディスクに 1 秒に 1 回保存されます。 プライマリとレプリカの両方のキャッシュが無効になるような致命的なイベントが発生した場合、保存されている書き込み操作を使用してキャッシュが自動的に再構築されます。 AOF 永続化の長所と短所について、詳細をご確認ください。
重要
Azure Managed Redis の永続化機能は、データ損失後に同じキャッシュにデータを自動的に復元するために使うことが想定されています。 RDB または AOF 永続化データ ファイルは、ユーザーがアクセスすることも、新規または既存のキャッシュにインポートすることもできません。 キャッシュ間でデータを移動するには、インポートとエクスポートの機能を使用してください。 詳細については、「Azure Managed Redis でのデータのインポートとエクスポート」を参照してください。
新しいキャッシュに追加できるデータのバックアップを生成するには、PowerShell または Azure CLI を使って、定期的にデータをエクスポートする自動化スクリプトを作成できます。
前提条件と制限事項
永続化機能は、データを損失した後に同じキャッシュにデータを復元するために使うことが想定されています。
- RDB/AOF 永続化データ ファイルを新しいキャッシュまたは既存のキャッシュにインポートすることはできません。 代わりに、インポート/エクスポート機能を使用します。
- アクティブ geo レプリケーションを使用するキャッシュでは、永続化はサポートされていません。
- 永続化データ ファイルを保持しているマネージド ディスクは、既定では Microsoft マネージド キー (MMK) を使用して暗号化されますが、カスタマー マネージド キー (CMK) も使用できます。 詳細については、「データの暗号化」を参照してください。
Azure portal を使用してデータ永続化を設定する方法
Azure portal にサインインし、Azure Managed Redis のクイックスタート ガイドの手順に従って開始します。
[詳細設定] タブが表示されたら、[データ永続化] セクションで [RDB] または [AOF] オプションを選択します。
RDB 永続化を有効にするには、 [RDB] を選択し、設定を構成します。
設定 提案された値 説明 バックアップ頻度 ドロップダウンを使用して、バックアップ間隔を選択します。 選択肢には、60 分、 6 時間、 12 時間が含まれます。 前のバックアップ操作が正常に完了すると、この間隔のカウントダウンが開始されます。 この期間が経過すると、新しいバックアップが開始されます。 AOF 永続化を有効にするには、[AOF] を選択します。 使用できるバックアップ頻度オプションは 1 つだけです。
Azure Managed Redis のクイックスタート ガイドの残りの手順に従って、キャッシュの作成を完了します。
Note
[リソース] メニューの [詳細設定] に移動することで、以前に作成した Azure Managed Redis インスタンスにいつでも永続化を追加できます。
PowerShell と Azure CLI を使用してデータ永続化を設定する方法
PowerShell の使用
New-AzRedisEnterpriseCache コマンドを使用すると、データ永続化を使用して新しい Azure Managed Redis インスタンスを作成できます。 永続化のセットアップを構成するには、RdbPersistenceEnabled
、RdbPersistenceFrequency
、AofPersistenceEnabled
、AofPersistenceFrequency
の各パラメーターを使用します。 この例では、1 時間の頻度で、RDB 永続化を使用して新しい Balanced B10 インスタンスを作成します。
New-AzRedisEnterpriseCache -Name "MyCache" -ResourceGroupName "MyGroup" -Location "West US" -Sku "Balanced_B10" -RdbPersistenceEnabled -RdbPersistenceFrequency "1h"
既存のキャッシュは、Update-AzRedisEnterpriseCacheDatabase コマンドを使用して更新できます。 次の例では、既存のインスタンスに 12 時間の頻度で RDB 永続化を追加します。
Update-AzRedisEnterpriseCacheDatabase -Name "MyCache" -ResourceGroupName "MyGroup" -RdbPersistenceEnabled -RdbPersistenceFrequency "12h"
Azure CLI の使用
az redisenterprise create コマンドを使用すると、データ永続化を使用して新しい Azure Managed Redis インスタンスを作成できます。 永続化のセットアップを構成するには、rdb-enabled
、rdb-frequency
、aof-enabled
、aof-frequency
の各パラメーターを使用します。 この例では、1 時間の頻度で、RDB 永続化を使用して新しい Balanced B10 インスタンスを作成します。
az redisenterprise create --cluster-name "cache1" --resource-group "rg1" --location "East US" --sku "Balanced_B10" --persistence rdb-enabled=true rdb-frequency="1h"
既存のキャッシュは、az redisenterprise database update コマンドを使用して更新できます。 次の例では、既存のキャッシュ インスタンスに 12 時間の頻度で RDB 永続化を追加します。
az redisenterprise database update --cluster-name "cache1" --resource-group "rg1" --persistence rdb-enabled=true rdb-frequency="12h"
データ暗号化の管理
Redis 永続化では保存データが作成されるため、このデータの暗号化は多くのユーザーにとって重要な問題です。 Azure Managed Redis では、キャッシュ インスタンスにマウントされたマネージド ディスクにデータが保存されます。 既定では、永続化データを保持しているディスクと OS ディスクは、Microsoft マネージド キーを使用して暗号化されます。 カスタマー マネージド キー (CMK) を使用して、データ暗号化を制御することもできます。 手順については、「Azure Managed Redis での暗号化」を参照してください。
永続化の FAQ
次の一覧は、Azure Managed Redis の永続化に関するよく寄せられる質問への回答です。
- 以前に作成したキャッシュで永続化を有効にできますか
- AOF 永続化と RDB 永続化を同時に有効にすることはできますか
- geo レプリケーションではどのように永続化が行われるのですか。
- どちらの永続化モデルを選択すべきですか
- 別のサイズにスケーリングしていて、スケーリング操作の前に作成したバックアップを復元したらどうなりますか
- データ永続化で使用されているマネージド ディスクに対して課金されますか
RDB 永続化
- キャッシュの作成後に RDB バックアップ頻度を変更できますか
- RDB バックアップ頻度を 60 分に設定しているときに、バックアップの間隔が 60 分より長くなるのはなぜですか
- 新しいバックアップが作成されると、古い RDB バックアップはどうなりますか
AOF 永続化
- AOF 永続化はキャッシュのスループット、待ち時間、またはパフォーマンスに影響しますか?
- 再書き込みとは何ですか。キャッシュにどのように影響しますか
- AOF が有効になっているキャッシュをスケーリングする場合に、どのようなことを想定すべきですか
以前に作成したキャッシュで永続化を有効にできますか
はい、永続化はキャッシュの作成時と、既存の Azure Managed Redis インスタンスの両方に構成できます。
AOF 永続化と RDB 永続化を同時に有効にすることはできますか
いいえ、RDB または AOF を有効にすることはできますが、両方を同時に有効にすることはできません。
geo レプリケーションではどのように永続化が行われるのですか。
データの永続化を有効にした場合、キャッシュでは geo レプリケーションを有効にできません。 これは、リージョンの障害が発生した場合、データ永続化よりも、アクティブ geo レプリケーションの方が回復性が高いためです。 データのコピーをバックアップとしてエクスポートする必要がある場合は、代わりにエクスポート機能を使用してください。
どちらの永続化モデルを選択すべきですか
AOF 永続化では、すべての書き込みがログに保存されます。これはスループットに大きな影響を与える可能性があります。 RDB 永続化では、構成されたバックアップ間隔に基づいてバックアップを保存し、パフォーマンスへの影響を最小限に抑えます。 主な目的がデータ損失の最小化で、キャッシュでのスループットの低下に対処できるという場合は、AOF 永続化を選択してください。 キャッシュでのスループットを最適に維持したいものの、データ復旧メカニズムも必要という場合は、RDB 永続化を選択してください。
AOF 永続化を使用しているときのパフォーマンスの詳細については、「AOF 永続化はキャッシュのスループット、待ち時間、またはパフォーマンスに影響しますか」を参照してください。
AOF 永続化はキャッシュのスループット、待ち時間、またはパフォーマンスに影響しますか?
AOF 永続化を使用すると、スループットに影響します。 AOF はすべてのプライマリ プロセスで実行されるため、AOF 永続化のない同一のキャッシュよりも、AOF 永続化を使用するキャッシュの CPU とサーバーの負荷が高くなります。 AOF は、各書き込みと削除が数秒の遅延のみで保持されるため、メモリ内のデータとの最適な整合性を提供します。 トレードオフは、AOF の方がコンピューティング集中型であるということです。
別のサイズにスケーリングしていて、スケーリング操作の前に作成したバックアップを復元したらどうなりますか
RDB 永続化の場合も AOF 永続化の場合も、以下のように処理されます。
- より大きなサイズにスケーリングした場合、影響はありません。
- 小さいサイズにスケーリングしていて、最新のバックアップからのデータをすべて保持するにはサイズが小さいためスペースが足りない場合、キーは復元プロセス中に削除されます。 通常は allkeys-lru 削除ポリシーを使用して、キーが削除されます。
データ永続化で使用されているマネージド ディスクに対して課金されますか?
マネージド ディスク ストレージには課金されません。 価格に含まれています。
キャッシュの作成後に RDB バックアップ頻度を変更できますか
はい。Azure portal、CLI、または PowerShell を使用して、RDB 永続化のバックアップ頻度を変更できます。
RDB バックアップ頻度を 60 分に設定しているときに、バックアップの間隔が 60 分より長くなるのはなぜですか
RDB 永続化のバックアップ頻度の間隔は、その前のバックアップ プロセスが正常に完了するまでは開始しません。 バックアップ間隔を 60 分に設定し、バックアップ プロセスが完了するのに 15 分かかる場合、次のバックアップは、前回のバックアップの開始時刻から 75 分経過するまで開始しません。
新しいバックアップが作成されると、古い RDB バックアップはどうなりますか
最新のものを除くすべての RDB 永続化のバックアップは自動的に削除されます。 この削除はすぐに行われないことがありますが、古いバックアップは無期限には保持されません。
再書き込みとは何ですか。キャッシュにどのように影響しますか
AOF ファイルが十分な大きさになると、キャッシュに対する再書き込みが自動的にキューに登録されます。 再書き込みにより、現在のデータ セットを作成するために必要な最小の操作セットで AOF ファイルのサイズ変更が行われます。 再書き込み中はパフォーマンス制限に早く達するということを想定しておいてください (特に大型のデータセットを処理する場合)。 再書き込みの発生頻度は、AOF ファイルが大きくなるにつれて低下しますが、発生時にはかなりの時間を要します。
AOF が有効になっているキャッシュをスケーリングする場合に、どのようなことを想定すべきですか
スケーリング時の AOF ファイルが大きい場合は、スケーリングの完了後にファイルが再度読み込まれるため、スケール操作に通常よりも長い時間がかかることを想定しておいてください。
スケーリングの詳細については、「別のサイズにスケーリングしていて、スケーリング操作の前に作成したバックアップを復元したらどうなりますか」を参照してください。