次の方法で共有


Azure Cache for Redis でのデータのインポートとエクスポート

Azure Cache for Redis のインポートおよびエクスポート機能は、Azure Redis Cache インスタンスとの間でデータを Redis Database (RDB) スナップショットとしてインポートまたはエクスポートします。 スナップショットは、Azure Storage アカウントの BLOB を使用してインポートまたはエクスポートされます。

データ管理、異なるキャッシュ インスタンス間の移行、または使用前にキャッシュにデータを設定するために、Azure Redis のインポートおよびエクスポート機能を使用できます。 この記事では、Azure Redis でデータをインポートおよびエクスポートする方法と、よく寄せられる質問に回答する方法について説明します。

可用性のスコープ

レベル Basic、Standard プレミアム Enterprise、Enterprise Flash
使用可能 いいえ はい はい

インポートとエクスポートは、Premium、Enterprise、および Enterprise Flash レベルでサポートされています。

互換性

インポート

  • RDB スナップショットは、ページ BLOB またはブロック BLOB からインポートできます。
  • Premium レベルのキャッシュから Enterprise および Enterprise Flash レベルのキャッシュに RDB ファイルをインポートできます。
  • Redis Enterprise および Enterprise Flash レベルのキャッシュから Premium レベルのキャッシュにインポートすることはできません。

エクスポート

  • スナップショットは、Premium レベルの RDB ページ BLOB として、またはエンタープライズ層 .gz ブロック BLOB としてエクスポートできます。
  • BLOB ストレージ アカウントはエクスポートをサポートしていません。

バージョン

  • Redis 4.0 キャッシュでは、RDB バージョン 8 以降がサポートされています。 Redis 6.0 キャッシュでは、RDB バージョン 9 以降がサポートされています。
  • Redis 6.0 などの新しい Redis バージョンから、Redis 4.0 などの古いバージョンにエクスポートされたバックアップをインポートすることはできません。

[前提条件]

  • Azure Cache for Redis の Premium、Enterprise、または Enterprise Flash レベルのキャッシュ。
  • ファイルをインポートするには、Azure Redis Cache と同じリージョンおよびサブスクリプションにある Azure Storage 内のページ BLOB またはブロック BLOB にアップロードされた RDB ファイルを使用します。

    ストレージ アカウント認証にマネージド ID を使用する場合、ストレージ アカウントは別のサブスクリプションに存在する可能性があります。

[インポート]

インポートを使用すると、Linux、Windows、Amazon Web Services などの他のクラウド プロバイダーを含む、任意のクラウドまたは環境で実行されている任意の Redis サーバーから Redis と互換性のある RDB ファイルを取り込むことができます。 データをインポートすると、あらかじめデータが入力されたキャッシュを簡単に作成できます。

インポート プロセス中に、Azure Redis は Azure Storage からメモリに RDB ファイルを読み込み、キーをキャッシュに挿入します。

重要

データをインポートすると、既存のキャッシュ データが削除され、インポート プロセス中にキャッシュ クライアントからキャッシュにアクセスできなくなります。

重要

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

インポートする前に、RDB ファイルが Azure Storage のページ BLOB またはブロック BLOB にアップロードされていることを確認します。 最初にエクスポート手順に従った場合、RDB ファイルは既にページ BLOB に格納されており、インポートの準備ができています。

  1. 1 つ以上のキャッシュ BLOB をインポートするには、Azure portal の Redis Cache ページで、左側のナビゲーション メニューの [管理] で [データのインポート] を選択します。

  2. [ データのインポート ] ページで、 認証方法を選択し、[ BLOB の選択] を選択します。

    [BLOB の選択] が選択されている [データのインポート] ページを示すスクリーンショット。

  3. [ ストレージ アカウント ] ページで、インポートするデータを含むストレージ アカウントを選択します。

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

  4. [ コンテナー ] ページで、インポートするデータを含むストレージ アカウント内のコンテナーを選択します。

    ストレージ アカウント内のコンテナーの一覧を示すスクリーンショット。

  5. コンテナー ページで、インポートする 1 つ以上の BLOB の横にあるチェック ボックスをオンにし、[選択] を 選択します。

    コンテナーから BLOB を選択する方法を示すスクリーンショット。

  6. [ データのインポート ] ページで、[ インポート ] を選択してインポート プロセスを開始します。

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

Azure portal からの通知に従うか、 アクティビティ ログでイベントを表示することで、インポートの進行状況を監視できます。

[通知] ウィンドウのインポートの進行状況を示すスクリーンショット。

[エクスポート]

エクスポート プロセスでは、Azure Redis キャッシュに格納されているデータを RDB ファイルにエクスポートします。 この機能を使用して、Azure Redis キャッシュまたはサーバー間でデータを移動できます。

エクスポート プロセス中に、Azure Redis サーバー インスタンスをホストする仮想マシン上に一時ファイルが作成されます。 その後、選択したストレージ アカウントにファイルがアップロードされます。 エクスポート操作が成功または失敗のいずれかで完了すると、一時ファイルが削除されます。

重要

  • Azure Redis では、Azure Data Lake Storage Gen2 ストレージ アカウントへのエクスポートはサポートされていません。
  • BLOB ストレージ アカウントでは、Azure Redis のエクスポートはサポートされていません。
  • Enterprise および Enterprise Flash では、ファイアウォールまたはプライベート エンドポイントを使用するストレージ アカウントとの間でのインポートまたはエクスポートはサポートされていません。 ストレージ アカウントには公衆ネットワーク アクセスが必要です。

ファイアウォールが有効なストレージ アカウントへのエクスポートが失敗した場合は、「 ストレージ アカウントでファイアウォールが有効になっている場合の 動作」を参照してください。詳細については、 Azure ストレージ アカウントの概要に関するページを参照してください。

  1. キャッシュの現在の内容をストレージにエクスポートするには、Azure portal の Redis Cache ページで、左側のナビゲーション メニューの [管理] で [データのエクスポート] を選択します。

  2. [ データのエクスポート ] ページの [BLOB 名のプレフィックス] に、このエクスポート操作によって生成されたファイルの名前のプレフィックスを入力します。 認証方法を選択し、[ストレージ コンテナーの選択] を選択します

    [データのエクスポート] と [ストレージ コンテナーの選択] が選択されていることを示すスクリーンショット。

  3. [ ストレージ アカウント ] ページで、エクスポートするデータを含むストレージ アカウントを選択します。

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

  4. [ コンテナー ] ページで、エクスポート用の新しいコンテナーを作成する場合は、[ コンテナー] を選択し、[ 新しいコンテナー] ページでコンテナーの名前を入力し、[ 作成] を選択します。 それ以外の場合は、使用する既存のコンテナーを選択します。

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

  5. [ コンテナー ] ページで、エクスポートに使用するコンテナーを選択し、[選択] を 選択します

    選択したストレージ コンテナーと [選択] ボタンを示すスクリーンショット。

  6. [ データのエクスポート ] ページで、[エクスポート] を選択 します

    [エクスポート] ボタンを示すスクリーンショット。

Azure portal からの通知に従うか、 アクティビティ ログでイベントを表示することで、エクスポート操作の進行状況を監視できます。 エクスポート処理中でも、キャッシュは使用可能な状態のままです。

[通知] ウィンドウのエクスポートの進行状況を示すスクリーンショット。

インポートとエクスポートに関する FAQ

このセクションでは、インポート機能とエクスポート機能についてよく寄せられる質問について説明します。

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

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

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

はい。Azure Redis インスタンスからエクスポートされたデータをインポートできます。 Linux、Windows、Amazon Web Services などの他のクラウド プロバイダーを含め、任意のクラウドまたは環境で実行されている任意の Redis サーバーから RDB ファイルをインポートできます。

このデータをインポートするには、Redis サーバーから Azure Storage アカウントのページまたはブロック BLOB に RDB ファイルをアップロードします。 その後、Azure Redis Cache インスタンスにインポートします。

たとえば、運用キャッシュからデータをエクスポートし、テストまたは移行のためにステージング環境の一部であるキャッシュにインポートすることができます。

重要

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

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

インポートでサポートされている RDB バージョンの詳細については、「 互換性」を参照してください。

インポート/エクスポート操作中にキャッシュを使用できますか?

  • キャッシュはエクスポート中も使用でき、エクスポート操作中も引き続きキャッシュを使用できます。
  • インポート操作の開始時にキャッシュが使用できなくなります。 また、インポート 操作が完了すると、キャッシュが再び使用可能になります。

Redis クラスタリングで import-export を使用できますか?

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

インポート/エクスポートはカスタム データベース設定でどのように機能しますか?

一部の価格レベルでは 、データベースの制限が異なります。 キャッシュの作成時に databases 設定のカスタム値を構成した場合は、インポート時にいくつかの考慮事項があります。

エクスポートしたレベルよりも databases 制限の低い価格レベルにインポートする場合:

  • 既定の数の databases (すべての価格レベルで 16) を使用した場合、データは失われません。
  • インポートするレベルの制限内にあるカスタム数の databases を使用する場合、データは失われません。
  • エクスポートされたデータが新しい層の制限を超えるデータベースからのデータである場合、余分なデータベースのデータはインポートされません。

インポート/エクスポートと Redis データの永続化の違い

Azure Cache for Redis のデータ永続化機能は主にデータの持続性を目的としていますが、インポート/エクスポート機能は、特定の時点への復旧 (PITR) 用に定期的なデータ バックアップを行うように設計されています。

データ永続化を構成すると、キャッシュは構成可能なバックアップ頻度に基づいて、データのスナップショットをディスクに保持します。 データは、Redis 独自のバイナリ形式で書き込まれます。

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

致命的なイベントによってプライマリ キャッシュとレプリカ キャッシュの両方が無効になった場合、永続化されたキャッシュ データは最新のスナップショットを使用して自動的に復元されます。 データ永続化はディザスター リカバリー用に設計されており、PITR メカニズムとして意図されていません。

PITR の定期的なデータ バックアップを作成するには、インポート/エクスポート機能を使用します。 詳しくは、「Azure Cache for Redis のデータ永続化の構成方法」をご覧ください。

Azure PowerShell または Azure CLI を使用してインポート/エクスポートを自動化できますか?

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

Enterprise および Enterprise Flash レベルについては、次の内容を参照してください。

Azure Blob Storage にデータをエクスポートするときにエラーが発生したのはなぜですか?

Export は、ページ BLOB として格納されている RDB ファイルでのみ機能します。 ホット層とクール層を持つ BLOB ストレージ アカウントなど、その他の種類の BLOB はサポートされていません。 詳細については、「Azure ストレージ アカウントの概要」を参照してください。

アクセス キーを使用してストレージ アカウントを認証する場合、ストレージ アカウントにファイアウォール例外があると、インポート/エクスポート プロセスが失敗する可能性があります。

ストレージ アカウントでファイアウォールを有効にした場合はどうなりますか?

Premium レベルのインスタンスの場合は、 ストレージ アカウントの設定で[信頼できるサービスの一覧の Azure サービスにこのストレージ アカウントへのアクセスを許可 する]を選択する必要があります。 次に、システム割り当てマネージド ID またはユーザー割り当てマネージド ID を使用し、そのオブジェクト ID に対して ストレージ BLOB データ共同作成者 ロールベースのアクセス制御 (RBAC) ロールをプロビジョニングします。 詳細については、「 ストレージ アカウントのマネージド ID」を参照してください。

Enterprise および Enterprise Flash インスタンスは、ファイアウォールまたはプライベート エンドポイントを使用するストレージ アカウントとの間でのインポートまたはエクスポートをサポートしていません。 ストレージ アカウントには公衆ネットワーク アクセスが必要です。

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

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

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

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

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