ブロック BLOB のオブジェクト レプリケーションを構成する

オブジェクト レプリケーションを使用すると、ソース ストレージ アカウントと宛先アカウントの間でブロック BLOB を非同期にコピーできます。 オブジェクト レプリケーションを構成するときに、ソース ストレージ アカウントと宛先アカウントを指定するレプリケーション ポリシーを作成します。 レプリケーション ポリシーには、ソース コンテナーと宛先コンテナーを指定し、レプリケートするソース コンテナー内のブロック BLOB を示す 1 つ以上のルールが含まれます。 オブジェクト レプリケーションの詳細については、「ブロック BLOB のオブジェクト レプリケーション」を参照してください。

この記事では、Azure portal、PowerShell、または Azure CLI を使用して、オブジェクト レプリケーション ポリシーを構成する方法について説明します。 Azure Storage リソース プロバイダーのクライアント ライブラリのいずれかを使用して、オブジェクト レプリケーションを構成することもできます。

前提条件

オブジェクト レプリケーションの構成前に、ソースと宛先のストレージ アカウントを作成します (まだ存在していない場合)。 ソース アカウントと宛先アカウントは、汎用 v2 ストレージ アカウントまたは Premium ブロック BLOB アカウントのいずれかにできます。 詳細については、Azure Storage アカウントの作成に関するページを参照してください。

オブジェクトのレプリケーションでは、ソース アカウントと宛先アカウントの両方で BLOB のバージョン管理が有効になっている必要があります。また、ソース アカウントで BLOB の変更フィードが有効になっている必要もあります。 BLOB のバージョン管理については、BLOB のバージョン管理に関するページをご覧ください。 変更フィードの詳細については、Azure Blob Storage の変更フィードのサポートに関するページをご覧ください。 これらの機能を有効にすると、追加コストが発生する可能性があることに注意してください。

ストレージ アカウントにオブジェクト レプリケーション ポリシーを構成するには、ストレージ アカウントのレベル以上を対象とする Azure Resource Manager の [共同作成者] ロールが割り当てられている必要があります。 詳細については、Azure ロールベースのアクセス制御 (Azure RBAC) に関するドキュメントの「Azure 組み込みロール」を参照してください。

階層型名前空間が有効になっているアカウントでは、オブジェクト レプリケーションはまだサポートされていません。

両方のストレージ アカウントへのアクセス権を使ってオブジェクト レプリケーションを構成する

ソース アカウントと宛先アカウントの両方へのアクセス権を持っている場合は、両方のアカウントでオブジェクト レプリケーション ポリシーを構成できます。 次の例は、Azure portal、PowerShell、または Azure CLI を使用してオブジェクト レプリケーションを構成する方法を示しています。

Azure portal でオブジェクト レプリケーションを構成する場合、必要なのはソース アカウントでポリシーを構成することだけです。 ソース アカウントでポリシーを構成すると、Azure portal によって自動的に宛先アカウントにも作成されます。

Azure portal でレプリケーション ポリシーを作成するには、次の手順を実行します。

  1. Azure portal でソース ストレージ アカウントに移動します。

  2. [データ管理] で、 [オブジェクト レプリケーション] を選択します。

  3. [レプリケーション規則の設定] を選択します。

  4. 宛先サブスクリプションとストレージ アカウントを選択します。

  5. [Container pairs](コンテナー ペア) セクションで、ソース アカウントからソース コンテナーを選択し、宛先アカウントから宛先コンテナーを選択します。 Azure portal から、1 つのレプリケーション ポリシーにつき最大 10 個のコンテナー ペアを作成できます。 10 個を超えるコンテナー ペア (最大 1000 個) を構成するには、JSON ファイルを使用したオブジェクト レプリケーションの構成に関するページを参照してください。

    次の図は、一連のレプリケーション ルールを示しています。

    Azure portal のレプリケーション ルールを示すスクリーンショット

  6. 必要に応じて、1 つ以上のフィルターを指定し、プレフィックス パターンに一致する BLOB のみをコピーします。 たとえば、プレフィックス b を指定すると、その文字で始まる名前の BLOB のみがレプリケートされます。 プレフィックスの一部として仮想ディレクトリを指定できます。 プレフィックスの一致は、最大 5 つまで追加できます。 プレフィックス文字列では、ワイルドカード文字をサポートしていません。

    次の図は、レプリケーション ルールの一部としてコピーされる BLOB を制限するフィルターを示しています。

    レプリケーション ルールのフィルターを示すスクリーンショット

  7. 既定では、コピー スコープは新しいオブジェクトのみをコピーするように設定されています。 コンテナー内のすべてのオブジェクトをコピーするか、カスタムの日付と時刻からオブジェクトをコピーするには、変更リンクを選択し、コンテナー ペアのコピー スコープを構成します。

    次の図は、指定した日付と時刻からオブジェクトをコピーするカスタム コピー スコープを示しています。

    オブジェクト レプリケーションのカスタム コピー スコープを示すスクリーンショット

  8. [保存して適用する] を選択してレプリケーション ポリシーを作成し、データのレプリケーションを開始します。

オブジェクト レプリケーションを構成すると、次の図に示すように、Azure portal にレプリケーション ポリシーとルールが表示されます。

Azure portal のオブジェクト レプリケーション ポリシーを示すスクリーンショット

JSON ファイルを使用してオブジェクト レプリケーションを構成する

ソース ストレージ アカウントへのアクセス許可がない場合や、10 個を超えるコンテナー ペアを使用する場合は、宛先アカウントでオブジェクト レプリケーションを構成し、ポリシー定義が含まれている JSON ファイルを別のユーザーに提供することで、ソース アカウントでも同じポリシーを作成できます。 たとえば、ソース アカウントが宛先アカウントとは異なる Azure AD テナントにある場合は、この方法を使用してオブジェクト レプリケーションを構成できます。

Note

ストレージ アカウントでは、テナント間のオブジェクト レプリケーションが既定で許可されています。 テナント間のレプリケーションが行われないようにするには、お使いのストレージ アカウントでクロス テナント オブジェクト レプリケーションを禁止するように AllowCrossTenantReplication プロパティ (プレビュー) を設定することができます。 詳細については、「Azure Active Directory テナント間でのオブジェクト レプリケーションを禁止する」を参照してください。

このセクションの例では、宛先アカウントでオブジェクト レプリケーション ポリシーを構成してから、そのポリシーの JSON ファイルを取得し、それを使って別のユーザーがソース アカウントでそのポリシーを構成できるようにする方法を説明します。

Azure portal で JSON ファイルを使用して宛先アカウントにオブジェクト レプリケーションを構成するには、次の手順に従います。

  1. 宛先アカウントにレプリケーション ポリシーを定義するローカル JSON ファイルを作成します。 Azure Storage でポリシー ID が定義されるように、policyId フィールドを既定値に設定します。

    レプリケーション ポリシーを定義する JSON ファイルを簡単に作成する方法は、まず、Azure portal で 2 つのストレージ アカウント間にテスト レプリケーション ポリシーを作成することです。 その後、レプリケーション ルールをダウンロードし、必要に応じて JSON ファイルを変更できます。

  2. Azure portal で宛先アカウントの [オブジェクト レプリケーション] 設定に移動します。

  3. [レプリケーション ルールのアップロード] を選択します。

  4. JSON ファイルをアップロードします。 Azure portal には、次の図に示すように、作成されるポリシーとルールが表示されます。

    JSON ファイルをアップロードしてレプリケーション ポリシーを定義する方法を示すスクリーンショット

  5. [アップロード] を選択して、宛先アカウントにレプリケーション ポリシーを作成 ます。

その後、別のユーザーに提供できるポリシー定義を含む JSON ファイルをダウンロードして、ソース アカウントを構成できます。 この JSON ファイルをダウンロードするには、次の手順に従います。

  1. Azure portal で宛先アカウントの [オブジェクト レプリケーション] 設定に移動します。

  2. 次の図に示すように、ダウンロードするポリシーの横にある [詳細] ボタンを選択し、 [ルールのダウンロード] を選択します。

    レプリケーション ルールを JSON ファイルにダウンロードする方法を示すスクリーンショット

  3. JSON ファイルをローカル コンピューターに保存して別のユーザーと共有して、ソース アカウントにポリシーを構成します。

ダウンロードした JSON ファイルには、Azure Storage で宛先アカウントのポリシーに作成されたポリシー ID が含まれています。 ソース アカウントでオブジェクト レプリケーションを構成するには、同じポリシー ID を使用する必要があります。

JSON ファイルをアップロードして、Azure portal から宛先アカウントにレプリケーション ポリシーを作成しても、ソース アカウントに同じポリシーが自動的に作成されることはない点に注意してください。 Azure Storage でオブジェクトのレプリケートを開始する前に、別のユーザーがソース アカウントにポリシーを作成する必要があります。

BLOB のレプリケーションの状態を確認する

Azure portal、PowerShell、または Azure CLI を使用して、ソース アカウントの BLOB のレプリケーションの状態を確認できます。 オブジェクト レプリケーションのプロパティは、レプリケーションが完了するか失敗するまで設定されません。

Azure portal でソース アカウントの BLOB のレプリケーションの状態を確認するには、次の手順に従います。

  1. Azure portal でソース アカウントに移動します。
  2. ソース BLOB が含まれているコンテナーを探します。
  3. BLOB を選択して、そのプロパティを表示します。 BLOB が正常にレプリケートされている場合は、状態が [完了] に設定されていることが [オブジェクト レプリケーション] セクションに示されます。 このコンテナーのオブジェクト レプリケーションを管理するルールのレプリケーション ポリシー ID と ID も表示されます。

ソース アカウントの BLOB のレプリケーションの状態を示すスクリーンショット

ソース アカウントの BLOB のレプリケーションの状態が失敗を示している場合は、次の考えられる原因を調査します。

  • 宛先アカウントに対してオブジェクト レプリケーション ポリシーが構成されていることを確認します。
  • 宛先コンテナーがまだ存在することを確認します。
  • 書き込み操作の一部としてカスタマー指定のキーでソース BLOB が暗号化されている場合、オブジェクトのレプリケーションは失敗します。 カスタマー指定のキーの詳細については、「BLOB ストレージに対する要求で暗号化キーを指定する」を参照してください。

レプリケーション ポリシーを削除する

レプリケーション ポリシーとそれに関連するルールを削除するには、Azure portal、PowerShell、または CLI を使用します。

Azure portal でレプリケーション ポリシーを削除するには、次の手順を実行します。

  1. Azure portal でソース ストレージ アカウントに移動します。
  2. [設定] で、 [オブジェクト レプリケーション] を選択します。
  3. ポリシー名の横にある [詳細] ボタンを選択します。
  4. [Delete Rules](ルールの削除) を選択します。

次のステップ