복제 상태 정보 가져오기
복제 상태는 복제 중인 객체의 현재 상태를 확인하는 데 도움이 될 수 있습니다. 원본 객체의 복제 상태는 PENDING
, COMPLETED
, FAILED
중 하나를 반환합니다. 복제본의 복제 상태가 REPLICA
을(를) 반환합니다.
S3 배치 복제 작업을 만들 때 복제 상태 값을 사용할 수도 있습니다. 예를 들어, 이러한 상태 값을 사용하면 복제된 적이 없거나 복제에 실패한 객체를 복제할 수 있습니다. 배치 복제에서 이러한 값을 사용하는 방법에 대한 자세한 내용은 배치 복제 작업에서 복제 상태 정보 사용 섹션을 참조하세요.
주제
복제 상태 개요
복제에는 복제를 구성하는 소스 버킷과 Amazon S3가 객체를 복제하는 하나 이상의 대상 버킷이 있습니다. 이러한 버킷에서 객체(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 배치 복제를 사용하여 실패한 객체를 복제해야 합니다. 배치 복제 사용 방법에 대한 자세한 내용은 S3 배치 복제를 사용한 기존 객체 복제 섹션을 참조하세요.
복제 역할 권한, AWS Key Management Service(AWS KMS) 권한 또는 버킷 권한 누락과 같은 문제의 경우 객체가
FAILED
상태로 전환됩니다. 버킷 또는 리전을 사용할 수 없는 경우와 같은 일시적인 실패의 경우 복제 상태는FAILED
로 전환되지 않고PENDING
상태 그대로 유지됩니다. 리소스가 다시 온라인 상태가 되면 Amazon S3는 해당 객체 복제를 재개합니다. -
대상 버킷으로부터 객체를 요청하면 해당 객체가 Amazon S3에서 생성한 복제본인 경우 Amazon S3는 값이
REPLICA
인x-amz-replication-status
헤더를 반환합니다.
참고
복제가 활성화된 소스 버킷에서 객체를 삭제하려면 먼저 해당 객체의 복제 상태를 통해 객체가 복제되었는지 확인해야 합니다.
소스 버킷에서 S3 수명 주기 구성이 활성화된 경우 객체 상태가 COMPLETED
또는 FAILED
로 표시될 때까지 Amazon S3는 수명 주기 작업을 보류합니다.
여러 대상 버킷에 복제하는 경우 복제 상태
객체를 여러 대상 버킷에 복제하면 x-amz-replication-status
헤더가 다르게 작동합니다. 소스 객체의 헤더는 복제가 모든 대상에 대해 성공하는 경우에만 COMPLETED
값을 반환합니다. 헤더는 복제가 모든 대상에 대해 완료될 때까지 PENDING
값으로 유지됩니다. 하나 이상의 대상이 복제에 실패하면 헤더가 FAILED
을(를) 반환합니다.
Amazon S3 복제본 수정 동기화가 사용 설정된 경우 복제 상태
복제 규칙에서 Amazon S3 복제본 수정 동기화를 사용 설정하면 복제본은 REPLICA
이외의 상태를 보고할 수 있습니다. 메타데이터 변경 사항이 복제 과정에 있는 경우 x-amz-replication-status
헤더가 PENDING
을 반환합니다. 복제본 수정 동기화가 메타데이터 복제에 실패하면 헤더가 FAILED
를 반환합니다. 메타데이터가 올바르게 복제되면 복제본이 헤더 REPLICA
를 반환합니다.
배치 복제 작업에서 복제 상태 정보 사용
배치 복제 작업을 만들 때 필요에 따라 객체 생성 날짜 및 복제 상태와 같은 추가 필터를 지정하여 작업 범위를 줄일 수 있습니다.
다음 값 중 하나 이상을 제공하여 ObjectReplicationStatuses
값을 기반으로 복제할 객체를 필터링할 수 있습니다.
-
"NONE"
- Amazon S3가 이전에 객체 복제를 시도한 적이 없음을 나타냅니다. -
"FAILED"
- Amazon S3가 이전에 객체 복제를 시도했지만 실패했음을 나타냅니다. -
"COMPLETED"
- Amazon S3가 이전에 객체를 성공적으로 복제했음을 나타냅니다. -
"REPLICA"
- Amazon S3가 다른 소스에서 복제한 복제본 객체임을 나타냅니다.
배치 복제에서 이러한 복제 상태 값을 사용하는 방법에 대한 자세한 내용은 배치 복제 작업에 대한 필터 섹션을 참조하세요.
복제 상태 찾기
버킷에 있는 객체의 복제 상태를 가져오기 위해 Amazon S3 인벤토리 도구를 사용할 수 있습니다. Amazon S3는 인벤토리 구성에서 사용자가 지정한 대상 버킷으로 CSV 파일을 전송합니다. 또한 Amazon Athena를 사용하여 인벤토리 보고서의 복제 상태를 쿼리할 수도 있습니다. Amazon S3 인벤토리에 대한 자세한 정보는 Amazon S3 인벤토리 섹션을 참조하세요.
Amazon S3 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWS SDK를 사용하여 객체 복제 상태를 확인할 수도 있습니다.
Amazon S3 콘솔의 객체 세부 정보 페이지에서 객체의 복제 상태를 볼 수 있습니다.
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/
에서 Amazon S3 콘솔을 엽니다. -
왼쪽 탐색 창에서 버킷(Buckets)을 선택합니다.
-
범용 버킷 목록에서 복제 소스 버킷의 이름을 선택합니다.
-
객체(Objects) 목록에서 객체 이름을 선택합니다. 객체 세부 정보 페이지가 나타납니다.
-
속성 탭에서 아래로 스크롤하여 객체 관리 개요 섹션을 찾습니다. 관리 구성에서 복제 상태 아래의 값을 확인합니다.
다음 예제와 같이 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를 사용하여 복제 상태를 가져옵니다.