Batch Replication으로 기존 객체 복제하기
Batch Replication으로 기존 객체 복제하기
S3 Batch Replication은 새 객체를 Amazon S3 버킷 간에 계속 자동 복제하는 라이브 복제와 달라요. S3 Batch Replication은 대신 기존 객체에 대해 온디맨드로 실행됩니다. S3 Batch Replication을 사용해 다음 유형의 객체를 복제할 수 있어요.
- 복제 구성이 생기기 전에 존재했던 객체
- 이전에 복제된 적이 있는 객체
- 복제에 실패한 객체
이 객체들을 Batch Operations 작업으로 온디맨드 복제할 수 있어요.
Batch Replication을 시작하는 방법은 두 가지가 있어요.
- 새 복제 규칙이나 대상에 대한 Batch Replication 시작 – 새 복제 구성에서 첫 번째 규칙을 만들 때나 Amazon S3 콘솔에서 기존 구성에 새 대상 버킷을 추가할 때 일회성 Batch Replication 작업을 만들 수 있어요.
- 기존 복제 구성에 대한 Batch Replication 시작 – Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), AWS SDK, Amazon S3 REST API로 S3 Batch Operations를 사용해 새 Batch Replication 작업을 만들 수 있어요.
Batch Replication 작업이 끝나면 완료 보고서(completion report)를 받아요. 이 보고서로 작업을 검토하는 방법에 대한 자세한 내용은 작업 상태 및 완료 보고서 추적 문서를 참고하세요.
출처: 문서
S3 Batch Replication 고려 사항
S3 Batch Replication을 사용하기 전에 다음 고려 사항 목록을 검토하세요.
- 소스 버킷에 기존 복제 구성이 있어야 해요. 복제를 활성화하려면 라이브 복제 설정 개요와 라이브 복제 구성 예시 문서를 참고하세요.
- 버킷에 S3 Lifecycle이 구성되어 있다면 Batch Replication 작업이 활성화된 동안 라이프사이클 규칙을 비활성화하는 걸 권장해요. 그래야 소스·대상 버킷의 일치를 보장할 수 있어요. 그렇지 않으면 버킷이 서로 어긋나서 대상 버킷이 소스 버킷의 정확한 복제본이 되지 못할 수 있어요. 예를 들어 다음 시나리오를 생각해 보세요.
- 소스 버킷에 객체의 여러 버전과 그 객체의 삭제 마커가 있습니다.
- 소스·대상 버킷에 만료된 삭제 마커를 제거하는 라이프사이클 구성이 있습니다.
- 이 시나리오에서 Batch Replication은 객체 버전을 복제하기 전에 삭제 마커를 대상 버킷으로 복제할 수 있어요. 그러면 라이프사이클 구성이 삭제 마커를 만료로 표시하고, 객체 버전이 복제되기 전에 대상 버킷에서 삭제 마커가 제거될 수 있습니다.
- Batch Operations 작업을 실행하도록 지정하는 AWS Identity and Access Management(IAM) 역할에는 기본 Batch Replication 작업을 수행할 수 있는 필요한 권한이 있어야 해요. IAM 역할 생성에 대한 자세한 내용은 S3 Batch Replication용 IAM 역할 구성 문서를 참고하세요.
- Batch Replication에는 매니페스트가 필요하며, Amazon S3가 생성할 수 있어요. 생성된 매니페스트는 소스 버킷과 같은 AWS 리전에 저장해야 합니다. 매니페스트를 생성하지 않기로 했다면 복제하려는 객체가 들어 있는 Amazon S3 Inventory 보고서나 CSV 파일을 제공할 수 있어요. 자세한 내용은 Batch Replication 작업용 매니페스트 지정 문서를 참고하세요.
- 소스 버킷에서 복제 구성을 최근에 추가하거나 갱신했다면 변경이 완전히 전파되기까지 몇 분 정도 지연될 수 있어요. S3 생성 매니페스트로 Batch Replication 작업을 만들기 전에 잠시 기다리는 걸 권장해요.
- Batch Replication은 대상 버킷에서 객체의 버전 ID를 지정해 삭제한 객체를 다시 복제하는 것을 지원하지 않아요. 이런 객체를 다시 복제하려면 Batch Copy 작업으로 소스 객체를 제자리에서 복사할 수 있어요. 객체를 제자리에서 복사하면 소스 버킷에 객체의 새 버전이 생기고 대상 버킷으로의 복제가 자동으로 시작됩니다. 대상 버킷을 삭제하고 다시 만들어도 복제가 시작되지는 않아요.
- Batch Copy에 대한 자세한 내용은 Batch Operations로 객체를 복사하는 예시 문서를 참고하세요.
- 소스 버킷에서 복제 규칙을 사용한다면 복제 규칙에 연결된 IAM 역할에 객체를 복제할 적절한 권한을 부여하도록 복제 구성을 갱신해야 해요. 이 IAM 역할에는 소스·대상 버킷 모두에서 복제를 수행하는 데 필요한 권한이 있어야 합니다.
- 같은 버킷에 대해 짧은 시간 안에 여러 Batch Replication 작업을 제출하면 Amazon S3는 그 작업들을 동시에 실행해요.
- 서로 다른 두 버킷에 대해 여러 Batch Replication 작업을 제출하면 Amazon S3가 모든 작업을 동시에 실행하지 않을 수 있다는 점에 유의하세요. 계정에서 한 번에 실행할 수 있는 Batch Replication 작업 수를 초과하면 Amazon S3는 우선순위가 낮은 작업을 일시 중지하고 우선순위가 높은 작업을 처리해요. 우선순위가 높은 작업이 완료된 뒤에는 일시 중지된 작업이 다시 활성화됩니다.
- S3 Glacier Flexible Retrieval와 S3 Glacier Deep Archive 스토리지 클래스에 저장된 객체에는 Batch Replication이 지원되지 않아요.
- Archive Access나 Deep Archive Access 스토리지 계층에 저장된 S3 Intelligent-Tiering 객체를 일괄 복제하려면 먼저 복원(restore) 요청을 시작하고 객체가 Frequent Access 계층으로 이동할 때까지 기다려야 해요.
- 단일 Batch Replication 작업은 최대 200억 개 객체의 매니페스트를 지원할 수 있어요.
- S3 Batch Replication으로 데이터 세트를 리전 간에 복제하는데 객체의 서버 측 암호화 유형이 이전에 SSE-S3에서 SSE-KMS로 변경된 적이 있다면 추가 권한이 필요할 수 있어요. 소스 리전 버킷에는
kms:decrypt권한이 있어야 하고, 대상 리전의 버킷에는kms:decrypt와kms:encrypt권한이 필요합니다. 자세한 내용은 암호화된 객체 복제 문서를 참고하세요. - 소스 버킷의 객체에 주석(annotation)이 있다면 그 주석은 Batch Replication 동안 객체와 함께 독립적으로 복제돼요. 개별 주석에 대한 별도 작업 태스크는 없습니다. 작업 태스크 상태는 부모 객체 복제 상태와 주석 복제 상태 모두에 따라 달라져요.
Batch Replication 작업용 매니페스트 지정
매니페스트는 Amazon S3가 처리하길 원하는 객체 키가 들어 있는 Amazon S3 객체예요. Batch Replication 작업을 만들려면 사용자 생성 매니페스트를 제공하거나 복제 구성을 기반으로 Amazon S3가 매니페스트를 생성하게 해야 합니다.
사용자 생성 매니페스트를 제공한다면 Amazon S3 Inventory 보고서 또는 CSV 파일 형태여야 해요. 매니페스트의 객체가 버전 관리되는 버킷에 있다면 객체의 버전 ID를 지정해야 해요. 매니페스트에 지정된 버전 ID를 가진 객체만 복제됩니다. 매니페스트 지정에 대해 자세히 알아보려면 매니페스트 지정 문서를 참고하세요.
Amazon S3가 사용자를 대신해 매니페스트 파일을 생성하도록 선택한다면, 나열된 객체는 소스 버킷의 복제 구성과 같은 소스 버킷, 접두사, 태그를 사용해요. 생성된 매니페스트로 Amazon S3는 객체의 모든 적격 버전을 복제합니다.
참고: Amazon S3가 매니페스트를 생성하도록 선택하면 매니페스트는 소스 버킷과 같은 AWS 리전에 저장해야 해요.
Batch Replication 작업용 필터
Batch Replication 작업을 만들 때 객체 생성 날짜와 복제 상태 같은 추가 필터를 선택적으로 지정해 작업 범위를 줄일 수 있어요.
ObjectReplicationStatuses 값을 기반으로 복제할 객체를 필터링할 수 있으며, 다음 값 중 하나 이상을 제공할 수 있어요.
"NONE"– Amazon S3가 이전에 객체를 복제한 적이 없다는 뜻입니다."FAILED"– Amazon S3가 이전에 객체를 복제하려 시도했지만 실패했다는 뜻입니다."COMPLETED"– Amazon S3가 이전에 객체를 성공적으로 복제했다는 뜻입니다."REPLICA"– 이 객체가 Amazon S3가 다른 소스 버킷에서 복제한 복제본이라는 뜻입니다.
복제 상태에 대한 자세한 내용은 복제 상태 정보 가져오기 문서를 참고하세요.
Batch Replication 작업을 필터링하지 않으면 Batch Operations는 매니페스트의 모든 객체(어떤 ObjectReplicationStatus든)를 복제하려 시도하며, 복제 구성의 규칙과 일치하고 기본적으로 복제되지 않는 일부 객체를 제외합니다. 자세한 내용은 복제 구성으로 복제되지 않는 것은 무엇인가? 문서를 참고하세요.
목표에 따라 ObjectReplicationStatuses를 다음 값 중 하나 이상으로 설정할 수 있어요.
- 복제된 적이 없는 기존 객체만 복제하려면
"NONE"만 포함해요. - 이전에 복제에 실패한 객체만 다시 시도하려면
"FAILED"만 포함해요. - 기존 객체를 복제하면서 이전에 복제에 실패한 객체를 다시 시도하려면
"NONE"과"FAILED"를 모두 포함해요. - 다른 대상으로 복제된 객체로 대상 버킷을 백필하려면
"COMPLETED"를 포함해요. - 이전에 복제된 객체를 복제하려면
"REPLICA"를 포함해요.
Batch Replication 완료 보고서
Batch Replication 작업을 만들 때 CSV 완료 보고서를 요청할 수 있어요. 이 보고서는 객체, 복제 성공·실패 코드, 출력, 설명을 보여줍니다. 작업 추적과 완료 보고서에 대한 자세한 내용은 완료 보고서 문서를 참고하세요.
복제 실패 코드와 설명 목록은 Amazon S3 복제 실패 이유 문서를 참고하세요. Batch Replication 문제 해결에 대한 자세한 내용은 Batch Replication 오류 문서를 참고하세요.
Batch Replication 시작하기
Batch Replication 사용법에 대해 자세히 알아보려면 새 복제 규칙 또는 대상에 대한 Batch Replication 작업 만들기와 기존 복제 규칙에 대한 Batch Replication 작업 만들기 문서를 참고하세요.