ブロック BLOB のオブジェクト レプリケーションObject replication for block blobs

オブジェクト レプリケーションを使用すると、ソース ストレージ アカウントと宛先アカウントの間でブロック BLOB を非同期にコピーできます。Object replication asynchronously copies block blobs between a source storage account and a destination account. オブジェクト レプリケーションでサポートされるシナリオには次のものがあります。Some scenarios supported by object replication include:

  • 待機時間の最小化。Minimizing latency. オブジェクト レプリケーションでは、クライアントが物理的に近いリージョンのデータを使用できるようにすることで、読み取り要求の待機時間を短縮できます。Object replication can reduce latency for read requests by enabling clients to consume data from a region that is in closer physical proximity.
  • コンピューティング ワークロードの効率の向上。Increase efficiency for compute workloads. オブジェクト レプリケーションでは、コンピューティングワークロードが同じブロック BLOB セットを複数のリージョンで処理できます。With object replication, compute workloads can process the same sets of block blobs in different regions.
  • データ分散の最適化。Optimizing data distribution. データを 1 つの場所で処理または分析し、その結果のみを別のリージョンにレプリケートできます。You can process or analyze data in a single location and then replicate just the results to additional regions.
  • コストの最適化。Optimizing costs. データがレプリケートされた後に、ライフ サイクル管理ポリシーを使用してデータをアーカイブ層に移動することで、コストを削減できます。After your data has been replicated, you can reduce costs by moving it to the archive tier using life cycle management policies.

次の図は、オブジェクト レプリケーションによって、あるリージョンのソース ストレージ アカウントから別の 2 つのリージョンの宛先アカウントにブロック BLOB がレプリケートされる様子を示しています。The following diagram shows how object replication replicates block blobs from a source storage account in one region to destination accounts in two different regions.

オブジェクト レプリケーションのしくみを示す図

オブジェクト レプリケーションを構成する方法については、「オブジェクト レプリケーションの構成」をご覧ください。To learn how to configure object replication, see Configure object replication.

注意

この機能は、階層型名前空間 (Azure Data Lake Storage Gen2) を持つアカウントではまだサポートされていません。This feature is not yet supported in accounts that have a hierarchical namespace (Azure Data Lake Storage Gen2). 詳細については、「Azure Data Lake Storage Gen2 で使用できる BLOB ストレージ機能」を参照してください。To learn more, see Blob storage features available in Azure Data Lake Storage Gen2.

オブジェクト レプリケーションの前提条件Prerequisites for object replication

オブジェクト レプリケーションを使用するには、次の Azure Storage 機能が有効になっている必要もあります。Object replication requires that the following Azure Storage features are also enabled:

変更フィードと BLOB バージョン管理を有効にすると、追加のコストが発生する場合があります。Enabling change feed and blob versioning may incur additional costs. 詳細については、Azure Storage の価格に関するページを参照してください。For more details, refer to the Azure Storage pricing page.

オブジェクト レプリケーションは、汎用 v2 ストレージ アカウントでのみサポートされます。Object replication is supported only for general-purpose v2 storage accounts. ソース アカウントと宛先のアカウントの両方が汎用 v2 である必要があります。Both the source and destination accounts must be general-purpose v2.

オブジェクト レプリケーションのしくみHow object replication works

オブジェクト レプリケーションは、構成したルールに従って、コンテナー内のブロック BLOB を非同期にコピーします。Object replication asynchronously copies block blobs in a container according to rules that you configure. BLOB の内容、BLOB に関連付けられているすべてのバージョン、BLOB のメタデータとプロパティはすべて、ソース コンテナーから宛先コンテナーにコピーされます。The contents of the blob, any versions associated with the blob, and the blob's metadata and properties are all copied from the source container to the destination container.

重要

ブロック BLOB データは非同期にレプリケートされるため、ソース アカウントと宛先アカウントはすぐには同期されません。現在、宛先アカウントにデータをレプリケートするための所要時間に関する SLA はありません。Because block blob data is replicated asynchronously, the source account and destination account are not immediately in sync. There's currently no SLA on how long it takes to replicate data to the destination account. レプリケーションが完了しているかどうかを確認するには、ソース BLOB のレプリケーションの状態を確認します。You can check the replication status on the source blob to determine whether replication is complete. 詳細については、「BLOB のレプリケーションの状態を確認する」を参照してください。For more information, see Check the replication status of a blob.

BLOB バージョン管理Blob versioning

オブジェクトのレプリケーションでは、ソース アカウントと宛先アカウントの両方で BLOB のバージョン管理が有効になっている必要があります。Object replication requires that blob versioning is enabled on both the source and destination accounts. ソース アカウントのレプリケート対象 BLOB が変更されると、変更前の BLOB の状態を反映する新しいバージョンの BLOB がソース アカウントに作成されます。When a replicated blob in the source account is modified, a new version of the blob is created in the source account that reflects the previous state of the blob, before modification. ソース アカウントの現在のバージョン (つまりベース BLOB) には、最新の更新が反映されています。The current version (or base blob) in the source account reflects the most recent updates. 更新された現在のバージョンと新しい以前のバージョンの両方が、宛先アカウントにレプリケートされます。Both the updated current version and the new previous version are replicated to the destination account. 書き込み操作が BLOB のバージョンに与える影響の詳細については、「書き込み操作でのバージョン管理」を参照してください。For more information about how write operations affect blob versions, see Versioning on write operations.

ソース アカウントの BLOB が削除される場合、現在のバージョンの BLOB が以前のバージョンにキャプチャされ、その後削除されます。When a blob in the source account is deleted, the current version of the blob is captured in a previous version, and then deleted. 以前のバージョンの BLOB はすべて、現在のバージョンが削除された後も保持されます。All previous versions of the blob persist even after the current version is deleted. この状態は、宛先アカウントにレプリケートされます。This state is replicated to the destination account. 削除操作が BLOB のバージョンに与える影響の詳細については、「削除操作でのバージョン管理」を参照してください。For more information about how delete operations affect blob versions, see Versioning on delete operations.

スナップショットSnapshots

オブジェクトのレプリケーションでは、BLOB のスナップショットはサポートされていません。Object replication does not support blob snapshots. ソース アカウントの BLOB のスナップショットは、宛先アカウントにレプリケートされません。Any snapshots on a blob in the source account are not replicated to the destination account.

BLOB の階層Blob tiering

オブジェクトのレプリケーションは、ソース アカウントと宛先アカウントがホット層またはクール層にある場合にサポートされます。Object replication is supported when the source and destination accounts are in the hot or cool tier. ソース アカウントと宛先アカウントが異なる層に存在していてもかまいません。The source and destination accounts may be in different tiers. ただし、ソース アカウントまたは宛先アカウントのどちらかで BLOB がアーカイブ層に移動されている場合、オブジェクトのレプリケーションは失敗します。However, object replication will fail if a blob in either the source or destination account has been moved to the archive tier. BLOB 層の詳細については、「Azure Blob Storage のアクセス層 - ホット、クール、およびアーカイブ」を参照してください。For more information on blob tiers, see Access tiers for Azure Blob Storage - hot, cool, and archive.

不変 BLOBImmutable blobs

オブジェクトのレプリケーションでは、不変 BLOB はサポートされていません。Object replication does not support immutable blobs. ソース コンテナーまたは宛先コンテナーに時間ベースの保有ポリシーまたは訴訟ホールドが設定されている場合、オブジェクトのレプリケーションは失敗します。If a source or destination container has a time-based retention policy or legal hold, then object replication fails. 不変 BLOB の詳細については、「不変ストレージを使用してビジネスに不可欠な BLOB データを保存する」を参照してください。For more information about immutable blobs, see Store business-critical blob data with immutable storage.

オブジェクト レプリケーションのポリシーとルールObject replication policies and rules

オブジェクト レプリケーションを構成するときに、ソース ストレージ アカウントと宛先アカウントを指定するレプリケーション ポリシーを作成します。When you configure object replication, you create a replication policy that specifies the source storage account and the destination account. レプリケーション ポリシーには、ソース コンテナーと宛先コンテナーを指定し、レプリケートするソース コンテナー内のブロック BLOB を示す 1 つ以上のルールが含まれます。A replication policy includes one or more rules that specify a source container and a destination container and indicate which block blobs in the source container will be replicated.

オブジェクト レプリケーションを構成すると、Azure Storage によってソース アカウントの変更フィードが定期的にチェックされ、書き込みまたは削除操作が宛先アカウントに非同期にレプリケートされます。After you configure object replication, Azure Storage checks the change feed for the source account periodically and asynchronously replicates any write or delete operations to the destination account. レプリケーションの待機時間は、レプリケートされるブロック BLOB のサイズによって異なります。Replication latency depends on the size of the block blob being replicated.

レプリケーション ポリシーReplication policies

オブジェクト レプリケーションを構成すると、Azure Storage リソース プロバイダー経由でソース アカウントと宛先アカウントの両方にレプリケーション ポリシーが作成されます。When you configure object replication, a replication policy is created on both the source account and the destination account via the Azure Storage resource provider. レプリケーション ポリシーは、ポリシー ID で識別されます。The replication policy is identified by a policy ID. レプリケーションを実行するには、ソースと宛先のアカウントのポリシーに、同じポリシー ID が設定されている必要があります。The policy on the source and destination accounts must have the same policy ID in order for replication to take place.

1 つのストレージ アカウントを、最大 2 つの宛先アカウントのソース アカウントとして使用できます。A storage account can serve as the source account for up to two destination accounts. ソース アカウントと宛先アカウントが同じリージョンに存在していても、異なるリージョンに存在していてもかまいません。The source and destination accounts may be in the same region or in different regions. また、異なるサブスクリプションや異なる Azure Active Directory (Azure AD) テナントに存在していてもかまいません。They may also reside in different subscriptions and in different Azure Active Directory (Azure AD) tenants. ソース アカウントと宛先アカウントのペアごとに作成できるレプリケーション ポリシーは、1 つのみです。Only one replication policy may be created for each source account/destination account pair.

レプリケーション ルールReplication rules

レプリケーション ルールでは、Azure Storage がソース コンテナーから宛先コンテナーにどのように BLOB をレプリケートするかを指定します。Replication rules specify how Azure Storage will replicate blobs from a source container to a destination container. レプリケーション ポリシーごとに最大 10 個のレプリケーション ルールを指定できます。You can specify up to 10 replication rules for each replication policy. 各レプリケーション ルールではソースと宛先のコンテナーが 1 つずつ定義され、ソースと宛先の各コンテナーは 1 つのルールでのみ使用できますEach replication rule defines a single source and destination container, and each source and destination container can be used in only one rule.

レプリケーション ルールを作成すると、既定では、その後にソース コンテナーに追加された新しいブロック BLOB のみがコピーされます。When you create a replication rule, by default only new block blobs that are subsequently added to the source container are copied. 新しいブロック BLOB と既存のブロック BLOB の両方がコピーされるように指定することも、指定した時間以降に作成されたブロック BLOB をコピーするカスタム コピー スコープを定義することもできます。You can specify that both new and existing block blobs are copied, or you can define a custom copy scope that copies block blobs created from a specified time onward.

また、レプリケーション ルールの一部として 1 つ以上のフィルターを指定して、ブロック BLOB をプレフィックスでフィルター処理することもできます。You can also specify one or more filters as part of a replication rule to filter block blobs by prefix. プレフィックスを指定すると、ソース コンテナー内のそのプレフィックスと一致する BLOB のみが宛先コンテナーにコピーされます。When you specify a prefix, only blobs matching that prefix in the source container will be copied to the destination container.

ルールでソースと宛先のコンテナーを指定する前に、それらの両方が存在している必要があります。The source and destination containers must both exist before you can specify them in a rule. レプリケーション ポリシーを作成した後、宛先コンテナーへの書き込み操作は許可されません。After you create the replication policy, write operations to the destination container are not permitted. 宛先コンテナーへの書き込みを試みると、エラー コード 409 (競合) で失敗します。Any attempts to write to the destination container fail with error code 409 (Conflict). レプリケーション ルールが構成されている宛先コンテナーに書き込むには、そのコンテナーに対して構成されているルールを削除するか、レプリケーション ポリシーを削除する必要があります。To write to a destination container for which a replication rule is configured, you must either delete the rule that is configured for that container, or remove the replication policy. レプリケーション ポリシーがアクティブになっている場合、宛先コンテナーに対する読み取りおよび削除操作は許可されます。Read and delete operations to the destination container are permitted when the replication policy is active.

宛先コンテナーの BLOB で Set Blob Tier 操作を呼び出して、それをアーカイブ層に移動できます。You can call the Set Blob Tier operation on a blob in the destination container to move it to the archive tier. アーカイブ層の詳細については、「Azure Blob Storage: ホット、クール、アーカイブ ストレージ層」を参照してください。For more information about the archive tier, see Azure Blob storage: hot, cool, and archive access tiers.

レプリケーションの状態Replication status

ソース アカウントの BLOB のレプリケーション状態を確認できます。You can check the replication status for a blob in the source account. 詳細については、「BLOB のレプリケーションの状態を確認する」を参照してください。For more information, see Check the replication status of a blob.

ソース アカウントの BLOB のレプリケーションの状態が失敗を示している場合は、次の考えられる原因を調査します。If the replication status for a blob in the source account indicates failure, then investigate the following possible causes:

  • 宛先アカウントに対してオブジェクト レプリケーション ポリシーが構成されていることを確認します。Make sure that the object replication policy is configured on the destination account.
  • 宛先コンテナーがまだ存在することを確認します。Verify that the destination container still exists.
  • 書き込み操作の一部としてカスタマー指定のキーでソース BLOB が暗号化されている場合、オブジェクトのレプリケーションは失敗します。If the source blob has been encrypted with a customer-provided key as part of a write operation, then object replication will fail. カスタマー指定のキーの詳細については、「BLOB ストレージに対する要求で暗号化キーを指定する」を参照してください。For more information about customer-provided keys, see Provide an encryption key on a request to Blob storage.

課金Billing

オブジェクト レプリケーションでは、ソース アカウントと宛先アカウントに対する読み取りと書き込みトランザクションに追加コストが発生します。また、ソース アカウントから宛先アカウントへのデータのレプリケーションを行うためのエグレス料金と、変更フィードを処理するための読み取り料金も発生します。Object replication incurs additional costs on read and write transactions against the source and destination accounts, as well as egress charges for the replication of data from the source account to the destination account and read charges to process change feed.

次の手順Next steps