レプリケーションステータス情報の取得
レプリケーションステータスは、レプリケートされるオブジェクトの現在の状態を判断するのに役立ちます。レプリケート元オブジェクトのレプリケーションステータスは、 PENDING
、COMPLETED
またはFAILED
のいずれかを返します。レプリカのレプリケーションステータスがREPLICA
に返されます。
トピック
レプリケーションステータスの概要
レプリケーションには、レプリケーションを設定するレプリケート元バケットと、Amazon S3 がオブジェクトをレプリケートするレプリケート先バケットがあります。これらのバケットからオブジェクト (GET
オブジェクトを使用) またはオブジェクトメタデータ (HEAD
オブジェクトを使用) をリクエストすると、Amazon S3 はレスポンスとしてx-amz-replication-status
ヘッダーを返します。
-
レプリケート元バケットのオブジェクトをリクエストする場合、リクエストしたオブジェクトがレプリケーション対象であると、Amazon S3 は
x-amz-replication-status
ヘッダーを返します。たとえば、レプリケーション設定でオブジェクトプレフィックス
TaxDocs
を指定して、キー名のプレフィックスTaxDocs
が付いたオブジェクトのみをレプリケートするように Amazon S3 に指示しているとします。このキー名のプレフィックスを持つ、アップロードしたすべてのオブジェクト (TaxDocs/document1.pdf
など) がレプリケートされます。このキー名のプレフィックスが付いたオブジェクトのリクエストでは、Amazon S3 が、オブジェクトのレプリケーション状態がPENDING
、COMPLETED
、またはFAILED
の値のいずれかのx-amz-replication-status
ヘッダーを返します。注記
オブジェクトをアップロードした後で、オブジェクトのレプリケーションに失敗した場合、レプリケーションを再試行できません。もう一度オブジェクトをアップロードする必要があります。レプリケーションロールの許可、AWS KMS 許可、またはバケットの許可がないなどの問題がある場合、オブジェクトは
FAILED
の状態に移行します。バケットやリージョンが使用できないなどの一時的な障害が発生した場合、レプリケーションのステータスはFAILED
にはならず、PENDING
のままになります。リソースがオンラインに戻ると、S3 はこれらのオブジェクトのレプリケーションを再開します。 -
レプリケート先バケットからオブジェクトをリクエストした場合、リクエストされたオブジェクトが Amazon S3 によって作成されたレプリカであるときに、Amazon S3 は値が
REPLICA
であるx-amz-replication-status
ヘッダーを返します。
注記
レプリケーションが有効になっているレプリケート元バケットからオブジェクトを削除する前に、削除する前にオブジェクトのレプリケーションステータスをチェックして、そのオブジェクトがレプリケートされていることを確認します。
レプリケート元バケットでライフサイクル設定が有効である場合、Amazon S3 は、オブジェクトステータスがCOMPLETED
またはFAILED
と表示されるまでライフサイクルアクションを停止します。
複数のレプリケート先バケットにレプリケートする場合のレプリケーションステータス
オブジェクトを複数のレプリケート先バケットにレプリケートした場合、x-amz-replication-status
ヘッダーの動作はそれぞれ異なります。レプリケート元オブジェクトのヘッダーは、すべてのレプリケート先へのレプリケーションが成功した場合のみ、COMPLETED
の値を返します。すべてのレプリケート先に対してレプリケーションが完了するまで、ヘッダーはPENDING
の値のままになります。1 つ以上のレプリケート先がレプリケーションに失敗すると、ヘッダーはFAILED
を返します。
Amazon S3 レプリカ変更の同期が有効になっている場合のレプリケーションステータス
レプリケーションルールが Amazon S3 レプリカの変更を有効にすると、レプリカは REPLICA
以外のステータスをレポートできます。メタデータの変更がレプリケート中の場合は、x-amz-replication-status
ヘッダーは PENDING
を返します。レプリカ変更の同期がメタデータのレプリケートに失敗した場合、ヘッダーは FAILED
を返します。メタデータが正しくレプリケートされると、レプリカはヘッダー REPLICA
を返します。
レプリケーションステータスの検索
バケット内のオブジェクトのレプリケーションステータスを取得するには、Amazon S3 インベントリツールを使用できます。Amazon S3 は、インベントリ設定で指定したレプリケート先バケットに CSV ファイルを送信します。Amazon Athena を使用して、インベントリレポートのレプリケーションステータスをクエリすることもできます。Amazon S3 インベントリのさらなる詳細については、Amazon S3 インベントリ を参照してください。
オブジェクトのレプリケーションステータスは、コンソール、AWS Command Line Interface (AWS CLI)、または AWS SDK で確認できます。
S3 コンソールで、[オブジェクト管理の概要] の、オブジェクトの [詳細] ページで、オブジェクトのレプリケーションステータスを確認できます。
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
[バケット] リストで、バケット名を選択します。
-
[オブジェクト] リストで、オブジェクト名を選択します。
-
[Properties] (プロパティ) タブで [Object management overview] (オブジェクト管理の概要) を見つけると、[Replication status] (レプリケーションステータス) を確認できます。
次のように、head-object
コマンドを使用してオブジェクトメタデータを取得します。
aws s3api head-object --bucket
source-bucket
--keyobject-key
--version-idobject-version-id
このコマンドは、以下のレスポンス例に示すように、ReplicationStatus
を含むオブジェクトメタデータを返します。
{ "AcceptRanges":"bytes", "ContentType":"image/jpeg", "LastModified":"Mon, 23 Mar 2015 21:02:29 GMT", "ContentLength":3191, "ReplicationStatus":"COMPLETED", "VersionId":"jfnW.HIMOfYiD_9rGbSkmroXsFj3fqZ.", "ETag":"\"6805f2cfc46c0f04559748bb039d69ae\"", "Metadata":{ } }
次のコードフラグメントは、それぞれ AWS SDK for Java および AWS SDK for .NET のレプリケーションステータスを取得します。