レプリケーションステータス情報の取得
レプリケーションステータスは、レプリケートされるオブジェクトの現在の状態を判断するのに役立ちます。レプリケート元オブジェクトのレプリケーションステータスは、 PENDING
、COMPLETED
またはFAILED
のいずれかを返します。レプリカのレプリケーションステータスがREPLICA
に返されます。
S3 バッチレプリケーションジョブを作成するときにも、レプリケーションステータス値を使用することもできます。例えば、これらのステータス値を使用して、レプリケートされたことがない、またはレプリケーションに失敗したオブジェクトをレプリケートできます。バッチレプリケーションでこれらの値を使用する方法の詳細については、「バッチレプリケーションジョブでのレプリケーションステータス情報の使用」を参照してください。
トピック
レプリケーションステータスの概要
レプリケーションには、レプリケーションを設定するレプリケート元バケットと、Amazon S3 がオブジェクトをレプリケートする 1 つ以上のレプリケート先バケットがあります。これらのバケットからオブジェクト (GetObject
を使用) またはオブジェクトメタデータ (HeadObject
を使用) をリクエストすると、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
ヘッダーを返します。注記
オブジェクトをアップロードした後で、オブジェクトのレプリケーションに失敗した場合、レプリケーションを再試行できません。オブジェクトを再度アップロードするか、S3 バッチレプリケーションを使用して失敗したオブジェクトをレプリケートする必要があります。バッチレプリケーションの使用の詳細については、「バッチレプリケーションを使用した既存のオブジェクトのレプリケーション」を参照してください。
レプリケーションロールの許可、AWS Key Management Service (AWS KMS) 許可、またはバケットの許可がないなどの問題がある場合、オブジェクトは
FAILED
ステータスに移行します。バケットやリージョンが使用できないなどの一時的な障害が発生した場合、レプリケーションのステータスはFAILED
にはならず、PENDING
のままになります。リソースがオンラインに戻ると、Amazon S3 はこれらのオブジェクトのレプリケーションを再開します。 -
レプリケート先バケットからオブジェクトをリクエストした場合、リクエストされたオブジェクトが Amazon S3 によって作成されたレプリカであるときに、Amazon S3 は値が
REPLICA
であるx-amz-replication-status
ヘッダーを返します。
注記
レプリケーションが有効になっているレプリケート元バケットからオブジェクトを削除する前に、削除する前にオブジェクトのレプリケーションステータスをチェックして、そのオブジェクトがレプリケートされていることを確認します。
レプリケート元バケットで S3 ライフサイクル設定が有効である場合、Amazon S3 は、オブジェクトのステータスが COMPLETED
または FAILED
になるまでライフサイクルアクションを停止します。
複数のレプリケート先バケットにレプリケートする場合のレプリケーションステータス
オブジェクトを複数のレプリケート先バケットにレプリケートした場合、x-amz-replication-status
ヘッダーの動作はそれぞれ異なります。レプリケート元オブジェクトのヘッダーは、すべてのレプリケート先へのレプリケーションが成功した場合のみ、COMPLETED
の値を返します。すべてのレプリケート先に対してレプリケーションが完了するまで、ヘッダーはPENDING
の値のままになります。1 つ以上のレプリケート先がレプリケーションに失敗すると、ヘッダーはFAILED
を返します。
Amazon S3 レプリカ変更の同期が有効になっている場合のレプリケーションステータス
レプリケーションルールが Amazon S3 レプリカの変更を有効にすると、レプリカは REPLICA
以外のステータスをレポートできます。メタデータの変更がレプリケート中の場合は、x-amz-replication-status
ヘッダーは PENDING
を返します。レプリカ変更の同期がメタデータのレプリケートに失敗した場合、ヘッダーは FAILED
を返します。メタデータが正しくレプリケートされると、レプリカはヘッダー REPLICA
を返します。
バッチレプリケーションジョブでのレプリケーションステータス情報の使用
バッチレプリケーションジョブを作成するときに、オプションで、オブジェクトの作成日やレプリケーションステータスなどの追加のフィルターを指定して、ジョブのスコープを縮小できます。
オブジェクトのレプリケーションは、ObjectReplicationStatuses
値を基に、以下の値を 1 つ以上指定することでフィルターできます。
-
"NONE"
- Simple Storage Service (Amazon S3) がこれまでオブジェクトのレプリケートを試みたことがないことを示します。 -
"FAILED"
- Amazon S3 が以前にオブジェクトのレプリケートを試みたがオブジェクトのレプリケーションに失敗したことを示します。 -
"COMPLETED"
- Simple Storage Service (Amazon S3) が以前にオブジェクトを正常にレプリケートしたことを示します。 -
"REPLICA"
- Amazon S3 が別のソースからレプリケートしたレプリカオブジェクトであることを示します。
バッチレプリケーションでこれらのレプリケーションステータス値を使用する方法の詳細については、「バッチレプリケーションジョブのフィルター」を参照してください。
レプリケーションステータスの検索
バケット内のオブジェクトのレプリケーションステータスを取得するには、Amazon S3 インベントリツールを使用できます。Amazon S3 は、インベントリ設定で指定したレプリケート先バケットに CSV ファイルを送信します。Amazon Athena を使用して、インベントリレポートのレプリケーションステータスをクエリすることもできます。Amazon S3 インベントリのさらなる詳細については、S3 インベントリを使用したデータのカタログ化と分析 を参照してください。
オブジェクトのレプリケーションステータスは、Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、または AWS SDK で確認できます。
S3 コンソールでは、オブジェクトの詳細ページで、オブジェクトのレプリケーションステータスを確認できます。
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
左側のナビゲーションペインで、[バケット] を選択します。
-
[汎用バケット] リストで、レプリケーションソースバケットの名前を選択します。
-
[オブジェクト] リストで、オブジェクト名を選択します。オブジェクトの詳細ページが表示されます。
-
[プロパティ] タブで、[オブジェクト管理の概要] セクションまでスクロールします。[管理設定] で、[レプリケーションステータス] の [値] を確認します。
次の例に示すように、AWS Command Line Interface (AWS CLI) head-object
コマンドを使用して、オブジェクトのメタデータを取得します。
をレプリケーションソースバケットの名前に置き換え、その他の amzn-s3-demo-source-bucket1
を独自の情報に置き換えます。user input
placeholders
aws s3api head-object --bucket
amzn-s3-demo-source-bucket1
--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 を使用してレプリケーションステータスを取得します。