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

Azure Cache for Redis のインポートおよびエクスポート機能をデータ管理操作として使用します。 Azure Cache for Redis データベース (RDB) スナップショットを使用して、キャッシュ インスタンスにデータをインポートするか、キャッシュ インスタンスからデータをエクスポートします。 スナップショットは、Azure ストレージ アカウントの BLOB を使用してインポートまたはエクスポートされます。

インポートとエクスポートは、Premium、Enterprise、Enterprise Flash の各レベルでサポートされています:

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

インポートとエクスポートを使用して、異なる Azure Cache for Redis インスタンス間での移行や、使用前のキャッシュへのデータの設定ができます。

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

可用性のスコープ

レベル Basic、Standard Premium Enterprise、Enterprise Flash
使用可能 いいえ イエス はい

互換性

  • データは、Premium レベルの RDB ページ BLOB としてエクスポートされます。 Enterprise および Enterprise Flash レベルでは、データは .gz ブロック BLOB としてエクスポートされます。
  • Redis 4.0 を実行しているキャッシュでは、RDB バージョン 8 以下がサポートされています。 Redis 6.0 を実行しているキャッシュでは、RDB バージョン 9 以下がサポートされています。
  • 新しいバージョンの Redis (Redis 6.0 など) からエクスポートされたバックアップを、古いバージョンの Redis (Redis 4.0 など) にインポートすることはできません
  • Premium レベルのキャッシュからの RDB ファイルは、Enterprise および Enterprise Flash レベルのキャッシュにインポートできます。

[インポート]

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 にアップロードされる設定になっていることを確認してください。 認証にマネージド ID を使用している場合、ストレージ アカウントは別のサブスクリプションに存在することができます。 詳細については、 Azure Blob Storage の使用に関するページをご覧ください。 Azure Cache for Redis の Export 機能を使って RDB ファイルをエクスポートした場合、そのファイルは既にページ BLOB に格納されており、インポートの準備ができています。

重要

現在、Redis Enterprise レベルから Premium レベルへのインポートはサポートされていません。

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

    Screenshot showing Import data selected in the Resource menu.

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

    Screenshot showing a list of storage accounts.

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

    Screenshot showing list of containers from the previously chosen storage account.

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

    Screenshot showing a blob from the container.

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

    重要

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

    Screenshot showing the Import button to select to begin the import.

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

    重要

    アクティビティ ログのサポートは、Enterprise レベルではまだ利用できません。

    Screenshot showing the import progress in the notifications area.

Export

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

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

    Screenshot showing Export data selected in the Resource menu

  2. [ストレージ コンテナーの選択] を選び、使用可能なストレージ アカウントのリストを表示します。 目的のストレージ アカウントを選びます。 ストレージ アカウントは、キャッシュと同じリージョンに存在する必要があります。 認証にマネージド ID を使用している場合、ストレージ アカウントは別のサブスクリプションに存在することができます。 それ以外の場合、ストレージ アカウントは、キャッシュと同じサブスクリプションに存在する必要があります。

    重要

    • エクスポートが機能するページ BLOB は、クラシック ストレージ アカウントと Resource Manager ストレージ アカウントの両方でサポートされています。
    • Azure Cache for Redis では、ADLS Gen2 ストレージ アカウントへのエクスポートはサポートされていません。
    • 現時点では BLOB ストレージ アカウントではサポートされていません。
    • ファイアウォールが有効なストレージ アカウントへのキャッシュ データのエクスポートが失敗した場合は、「ストレージ アカウントでファイアウォールを有効にした場合のエクスポート方法」を参照してください

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

    Screenshot showing a list of containers in the working pane.

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

    Screenshot of a list of containers with one highlighted and a select button.

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

    Screenshot showing a blob name prefix and an Export button.

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

    Screenshot showing the export progress in the notifications area.

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

Import/Export の FAQ

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

インポート/エクスポートをサポートするレベルはどれですか?

インポートおよびエクスポート機能は、PremiumEnterpriseEnterprise Flash の各レベルでのみ使用できます。

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

はい。Azure Cache for Redis インスタンスからエクスポートされたデータをインポートできます。 クラウドまたは環境で実行されている Redis サーバーから RDB ファイルをインポートできます。 この環境には、Linux や Windows のほか、アマゾン ウェブ サービスなどのクラウド プロバイダーが含まれます。 このデータをインポートするには、必要な RDB ファイルを、Redis サーバーから、Azure Storage Account 内のページまたはブロック BLOB にアップロードします。 次に、それを、ご自身の Premium Azure Cache for Redis インスタンスにインポートします。

たとえば、次の操作を行います。

  1. 運用キャッシュからデータをエクスポートします。

  2. その後、テストや移行のためのステージング環境の一部として使用されるキャッシュにインポートします。

重要

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

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

インポートで使用されるサポートされている RDB バージョンの詳細については、互換性に関するセクションをご覧ください。

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

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

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

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

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

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

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

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

Azure Cache for Redis 永続化機能は、主にデータ持続性機能です。 一方、インポート/エクスポート機能は、特定の時点の復旧のために定期的なデータ バックアップを作成する方法として設計されています。

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

データ永続化は、ディザスター リカバリー用に設計されています。 これは、特定の時点の復旧メカニズムとして意図されていません。

  • Premium レベルでは、データ永続化ファイルは Azure Storage に保存されますが、ファイルを別のキャッシュにインポートすることはできません。
  • Enterprise レベルでは、データ永続化ファイルは、ユーザーがアクセスできないマウントされたディスクに保存されます。

特定の時点の復旧のために定期的なデータ バックアップを作成する場合は、インポート/エクスポート機能を使用することをお勧めします。 詳しくは、「Azure Cache for Redis のデータ永続化の構成方法」をご覧ください。

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

はい。 Premium レベルについては、次の手順を参照してください:

Enterprise レベルおよび Enterprise Flash レベルの場合:

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 サービスにこのストレージ アカウントへのアクセスを許可する] をオンにしてから、マネージド ID (システム/ユーザー割り当て) を使用し、そのオブジェクト ID に対してストレージ BLOB データ共同作成者 RBAC ロールをプロビジョニングする必要があります。

詳細については、ストレージ アカウントのマネージド ID - Azure Cache for Redis に関する記事を参照してください

キャッシュとは異なるサブスクリプションのストレージ アカウントからデータをインポートまたはエクスポートできますか?

Premium レベルでは、キャッシュとは異なるサブスクリプションのストレージ アカウントからデータをインポートおよびエクスポートできますが、認証方法としてマネージド ID を使用する必要があります。 インポートまたはエクスポートの構成時のストレージ アカウントを保持している、選択したサブスクリプションを選択する必要があります。

エクスポートを許可するために、ストレージ アカウント コンテナーの Shared Access Signature (SAS) トークンに付与する必要があるアクセス許可はどれですか?

Azure ストレージ アカウントにエクスポートして正常に機能させるには、 Shared Access Signature (SAS) トークン に次のアクセス許可が必要です。

  • read
  • add
  • create
  • write
  • delete
  • tag
  • move

次のステップ

Azure Cache for Redis の機能について