서로 다른 Amazon Simple Storage Service(Amazon S3) 버킷 간에 객체 복제를 설정했습니다. 복제에 실패할 경우 복제 실패 객체의 목록을 확인하려면 어떻게 해야 합니까?
간략한 설명
S3 복제 시간 제어(S3 RTC) 기능을 활성화하면 복제에 실패한 적격 객체나 복제 소요 시간이 15분을 초과한 적격 객체에 대한 알림을 설정할 수 있습니다. 또한 다음 방법 중 하나로 복제에 실패한 객체의 목록을 확인할 수 있습니다.
- Amazon S3 인벤토리 보고서 검토
- HeadObject API 호출 실행
해결 방법
Amazon S3 인벤토리 보고서
Amazon S3 인벤토리 보고서에는 일별 또는 주별로 객체 및 객체 메타데이터의 목록이 표시됩니다. 객체의 복제 상태는 PENDING, COMPLETED, FAILED 또는 REPLICA일 수 있습니다.
복제에 실패한 객체를 찾으려면 최근 보고서를 필터링하여 복제 상태가 FAILED인 객체만 표시하십시오. 그런 다음 대상 버킷에 대한 수동 객체 복사를 시작할 수 있습니다. 또는 원본 버킷에 객체를 다시 업로드하여 복제를 트리거할 수 있습니다.
또한 Amazon Athena를 사용하여 인벤토리 보고서를 쿼리하는 방법으로 복제 상태를 확인할 수도 있습니다.
HeadObject API 호출
원본 버킷에 복제 기능이 설정된 객체의 목록이 있다면 해당 객체에 대해 HeadObject API 호출을 실행할 수 있습니다. HeadObject는 객체의 PENDING, COMPLETED 또는 FAILED 복제 상태를 반환합니다. HeadObject API 호출의 응답에 포함된 x-amz-replication-status 요소에서 복제 상태를 확인할 수 있습니다.
참고: HeadObject를 실행하려면 요청 대상 객체에 대한 읽기 액세스 권한이 있어야 합니다. HEAD 요청은 GET 요청과 동일한 옵션을 사용하지만 GET을 수행하지는 않습니다.
HeadObject가 FAILED 복제 상태의 객체를 반환하면 대상 버킷에 대해 이러한 객체의 수동 복사를 시작할 수 있습니다. 또는 원본 버킷에 객체를 다시 업로드하여 복제를 트리거할 수 있습니다.
중요: 객체를 대상 버킷에 수동으로 복사할 경우 Amazon S3 인벤토리 보고서와 HeadObject API 호출에서는 원본 버킷의 객체에 대해 계속해서 FAILED 복제 상태가 반환됩니다. 객체의 복제 상태를 변경하려면 객체를 원본 버킷에 다시 업로드하여 복제를 트리거해야 합니다. 새로운 복제가 성공하면 객체의 복제 상태가 COMPLETED로 변경됩니다. 객체를 대상 버킷에 수동으로 복사해야 하는 경우에는 수동 복사 날짜를 기록해 두어야 합니다. 그런 다음 마지막 수정 날짜까지 복제 상태가 FAILED인 객체를 필터링해야 대상 버킷에 복사된 객체 또는 복사되지 않은 객체를 식별할 수 있습니다.