Azure Cache for Redis でデータをインポートまたはエクスポートする

Import/Export は Azure Cache for Redis のデータ管理操作です。 Azure Cache for Redis データベース (RDB) のスナップショットを Premium キャッシュと Azure Storage アカウント内の BLOB の間でインポートとエクスポートを行うことで、データを Azure Cache for Redis にインポートしたり、Azure Cache for Redis からエクスポートしたりすることができます。

  • Export - ページ Blob に、Azure Cache for Redis RDB のスナップショットをエクスポートすることができます。
  • Import - ページ Blob またはブロック Blob から、Azure Cache for Redis RDB のスナップショットをインポートすることができます。

Import/Export により、異なる Azure Cache for Redis インスタンス間での移行や、使用前のキャッシュへのデータ入力が可能になります。

この記事では Azure Cache for Redis でデータをインポートまたはエクスポートする方法を説明し、よく寄せられる質問に回答します。

Azure Cache for Redis のどのレベルがインポートとエクスポートをサポートしているかについては、「機能の比較」を参照してください。

[インポート]

Import を使用して、Redis と互換性のある RDB ファイルを、任意のクラウドまたは環境で稼働している任意の Redis サーバー (Linux や Windows のほか、アマゾン ウェブ サービスをはじめとする各種クラウド プロバイダーで稼働している Redis など) から取り込みます。 データをインポートすると、あらかじめデータが入力されたキャッシュを簡単に作成できます。 インポート処理中に、Azure Cache for Redis では RDB ファイルが Azure Storage からメモリに読み込まれて、キーがキャッシュに挿入されます。

Note

インポート操作を開始する前に、Redis データベース (RDB) ファイルが、Azure Cache for Redis インスタンスと同じリージョンとサブスクリプションにある Azure Storage 内のページ BLOB またはブロック BLOB にアップロードされる設定になっていることを確認してください。 詳細については、 Azure Blob Storage の使用に関するページをご覧ください。 Azure Cache for Redis の Export 機能を使って RDB ファイルをエクスポートした場合、そのファイルは既にページ BLOB に格納されており、インポートの準備ができています。

  1. エクスポートされた 1 つ以上のキャッシュ BLOB をインポートするには、Azure portal でキャッシュを参照し、 [リソース] メニューの [データのインポート] を選択します。 作業ウィンドウに [BLOB の選択] が表示されます。ここで RDB ファイルを見つけることができます。

    [リソース] メニューで [データのインポート] が選択されていることを示すスクリーンショット。

  2. [BLOB の選択] を選択して、インポートするデータを含むストレージ アカウントを選択します。

    ストレージ アカウントのリストを示すスクリーンショット。

  3. インポートするデータが含まれているコンテナーを選択します。

    前に選択したストレージ アカウントのコンテナーのリストを示すスクリーンショット。

  4. BLOB 名の左側の領域を選択し、インポートする 1 つ以上の BLOB、 [選択] の順に選択します。

    コンテナーからの BLOB を示すスクリーンショット。

  5. [インポート] を選択してインポート処理を開始します。

    重要

    インポート処理中は、キャッシュ クライアントからキャッシュにアクセスすることはできません。また、キャッシュ内の既存データはすべて削除されます。

    インポートを開始するために選択する [インポート] ボタンを示すスクリーンショット。

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

    通知領域でのインポートの進行状況を示すスクリーンショット。

[エクスポート]

Export では、Azure Cache for Redis に格納されたデータを、Redis と互換性のある RDB ファイルにエクスポートできます。 この機能を使えば、ある Azure Cache for Redis インスタンスから、別のインスタンスまたは別の Redis サーバーにデータを移動できます。 エクスポート処理中に、Azure Cache for Redis サーバー インスタンスをホストしている VM に一時ファイルが作成されます。 その後、ファイルは、選択されているストレージ アカウントにアップロードされます。 エクスポート処理が完了したら、処理の成否にかかわらず、この一時ファイルは削除されます。

  1. キャッシュの現在の内容をストレージにエクスポートするには、Azure portal でキャッシュを参照し、 [リソース] メニューの [データのエクスポート] を選択します。 作業ウィンドウに [ストレージ コンテナーの選択] が表示されます。

    [リソース] メニューで [データのエクスポート] が選択されていることを示すスクリーンショット

  2. [ストレージ コンテナーの選択] を選び、使用可能なストレージ アカウントのリストを表示します。 目的のストレージ アカウントを選びます。 ストレージ アカウントは、キャッシュと同じサブスクリプションおよびリージョン内にある必要があります。

    重要

    • エクスポートが機能するページ BLOB は、クラシック ストレージ アカウントと Resource Manager ストレージ アカウントの両方でサポートされています。
    • Azure Cache for Redis では、ADLS Gen2 ストレージ アカウントへのエクスポートはサポートされていません。
    • 現時点では BLOB ストレージ アカウントではサポートされていません。

    詳細については、「Azure ストレージ アカウントの概要」を参照してください。

    作業ウィンドウにコンテナーのリストが表示されているスクリーンショット。

  3. エクスポートを保持するストレージ コンテナーを選び、[選択] を選びます。 新しいコンテナーが必要な場合は、まず [コンテナーの追加] を選んで新しいコンテナーを追加し、リストからそれを選びます。

    1 つが強調表示されたコンテナーのリストと、選択ボタンのスクリーンショット。

  4. BLOB 名のプレフィックスを入力し、 [エクスポート] を選択して、エクスポート処理を開始します。 BLOB 名のプレフィックスは、このエクスポート操作によって生成されるファイル名のプレフィックスとして使用されます。

    BLOB 名のプレフィックスと [エクスポート] ボタンを示すスクリーンショット。

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

    通知領域でのエクスポートの進行状況を示すスクリーンショット。

    エクスポート処理中でも、キャッシュは使用可能な状態のままです。

Import/Export の FAQ

このセクションでは、Import/Export 機能についてよく寄せられる質問を掲載しています。

Import/Export はどの価格レベルで使用できますか?

Import/Export は Premium 価格レベルでのみ使用できます。

どの Redis サーバーからでもデータをインポートできるのでしょうか?

はい。Azure Cache for Redis インスタンスからエクスポートされたデータをインポートできます。 クラウドまたは環境で実行されている Redis サーバーから RDB ファイルをインポートできます。 この環境には、Linux や Windows のほか、アマゾン ウェブ サービスなどのクラウド プロバイダーが含まれます。 このデータをインポートするには、必要な RDB ファイルを、Redis サーバーから、Azure Storage Account 内のページまたはブロック BLOB にアップロードします。 次に、それを、ご自身の Premium Azure Cache for Redis インスタンスにインポートします。 具体的には、運用環境のキャッシュからデータをエクスポートし、テストまたは移行のためのステージング環境の一部として使用されるキャッシュにインポートする場合が考えられます。

重要

ページ BLOB を使用する場合、Azure Cache for Redis 以外の Redis サーバーからエクスポートされたデータを正常にインポートするには、ページ BLOB のサイズを 512 バイト境界に合わせる必要があります。 必要なバイト パディングを実行するサンプル コードについては、ページ BLOB をアップロードするためのサンプル コードに関するページを参照してください。

RDB のどのバージョンをインポートできますか?

Azure Cache for Redis は、RDB バージョン 7 までの RDB のインポートをサポートしています。

Import/Export 操作中にキャッシュを使うことはできますか?

  • エクスポート - キャッシュは使用可能な状態のままです。エクスポート操作中もキャッシュの使用を続行できます。
  • インポート - インポート処理が開始されると、キャッシュは使用できなくなります。インポート処理が終了すると、キャッシュは使用可能になります。

Redis クラスターで Import/Export を使うことはできますか?

はい。さらに、クラスター化されたキャッシュとクラスター化されていないキャッシュの間でインポート/エクスポートを実行することもできます。 Redis クラスターは、データベース 0 のみをサポートするため、0 以外のデータベースのデータはインポートされません。 クラスター化されたキャッシュのデータがインポートされると、クラスターのシャード間でキーが再配分されます。

Import/Export がカスタム データベース設定を操作する方法

価格レベルによってさまざまなデータベースの制限があるため、キャッシュの作成中に databases の設定にカスタム値を設定する場合、インポート時の考慮事項がいくつかあります。

  • エクスポートしたレベルより低い databases の制限の価格レベルにインポートする場合:
    • すべての価格レベルが 16 の databases の既定の数を使っている場合、データは失われません。
    • インポートしているレベルの制限範囲に含まれるユーザー設定の数値の databases を使用している場合、データは失われません。
    • エクスポートしたデータが新しいレベルの制限を超えるデータベースのデータを含む場合、レベルの高いデータベースのデータはインポートされません。

Import/Export と Redis の永続化にはどのような違いがありますか?

Azure Cache for Redis 永続化では、Redis に保管されたデータを Azure Storage で永続化することができます。 永続化が構成されている場合、Azure Cache for Redis によって、キャッシュ データのスナップショットが Redis バイナリ形式で、構成可能なバックアップ頻度に基いてディスクに保持されます。 プライマリ キャッシュとレプリカ キャッシュの両方が無効になるような致命的なイベントが発生した場合、最新のスナップショットを使用してキャッシュ データが自動的に復元されます。 詳しくは、「Premium Azure Cache for Redis のデータ永続化の構成方法」をご覧ください。

Import/Export では、Azure Cache for Redis へのデータの取り込みと Azure Redis Cache からのデータのエクスポートが可能です。 Redis 永続化を使用してバックアップと復元が構成されることはありません。

PowerShell、CLI、またはその他の管理クライアントを使って Import/Export を自動化することはできますか?

はい、PowerShell の方法については、「Azure Cache for Redis をインポートするには」および「Azure Cache for Redis をエクスポートするには」をご覧ください。

Import/Export 操作中にタイムアウト エラーが発生しました。 これはどういうことですか?

左側の [データのインポート] または [データのエクスポート] に、操作を開始しないまま留まっている時間が 15 分を超えると、次の例のようなエラー メッセージのエラーが発生します。

The request to import data into cache 'contoso55' failed with status 'error' and error 'One of the SAS URIs provided could not be used for the following reason: The SAS token end time (se) must be at least 1 hour from now and the start time (st), if given, must be at least 15 minutes in the past.

このエラーを解決するには、インポート操作またはエクスポート操作を 15 分以内に開始してください。

Azure Blob Storage にデータをエクスポートしているときにエラーが発生しました。 なぜでしょうか?

Export は、ページ BLOB として格納されている RDB ファイルでのみ機能します。 それ以外のタイプの BLOB は、ホット層とクール層の BLOB ストレージ アカウントも含め、現時点ではサポートされていません。 詳細については、「Azure ストレージ アカウントの概要」を参照してください。 ストレージ アカウントの認証にアクセス キーを使っている場合、ストレージ アカウントにファイアウォールの例外が設定されていると、インポートとエクスポートのプロセスが失敗する傾向があります。

次のステップ

Azure Cache for Redis の機能について