기존 복제 규칙에 대한 Batch Replication 작업 만들기
기존 복제 규칙에 대한 Batch Replication 작업 만들기
Amazon S3에서 라이브 복제는 복제 구성을 만들기 전에 소스 버킷에 이미 존재했던 객체는 복제하지 않아요. 라이브 복제는 복제 구성이 만들어진 뒤 버킷에 쓰여지는 새 객체와 갱신된 객체만 자동으로 복제합니다. 이미 존재하는 객체를 복제하려면 S3 Batch Replication으로 그 객체들을 온디맨드 복제할 수 있어요.
기존 복제 구성에 대한 S3 Batch Replication은 AWS SDK, AWS Command Line Interface(AWS CLI), Amazon S3 콘솔로 구성할 수 있어요. Batch Replication 개요는 Batch Replication으로 기존 객체 복제 문서를 참고하세요.
Batch Replication 작업이 끝나면 완료 보고서를 받아요. 이 보고서로 작업을 검토하는 방법에 대한 자세한 내용은 작업 상태 및 완료 보고서 추적 문서를 참고하세요.
출처: 문서
사전 요구 사항
Batch Replication 작업을 만들기 전에 Batch Operations AWS Identity and Access Management(IAM) 역할을 만들어 Amazon S3가 사용자를 대신해 작업을 수행할 권한을 부여해야 해요. 자세한 내용은 S3 Batch Replication용 IAM 역할 구성 문서를 참고하세요.
콘솔로 작업 만들기
- AWS Management Console에 로그인하고 Amazon S3 콘솔을 엽니다. (https://console.aws.amazon.com/s3/)
- 왼쪽 탐색 창에서 Batch Operations를 선택해요.
- **작업 만들기(Create job)**를 선택해요.
- AWS 리전 섹션에 작업을 만들 리전이 표시되는지 확인해요.
- 매니페스트(Manifest) 섹션에서 사용할 매니페스트 형식을 지정해요. 매니페스트는 지정된 작업을 실행하려는 모든 객체의 목록이에요. Batch Operations 매니페스트에 대해 자세히 알아보려면 매니페스트 지정 문서를 참고하세요.
- 준비된 매니페스트가 있다면 **S3 inventory 보고서(manifest.json)**나 CSV를 선택해요. 매니페스트가 버전 관리되는 버킷에 있다면 매니페스트의 버전 ID를 지정할 수 있어요. 버전 ID를 지정하지 않으면 Batch Operations는 매니페스트의 현재 버전을 사용합니다. 매니페스트 생성에 대한 자세한 내용은 매니페스트 지정 문서를 참고하세요.
- 참고: 매니페스트의 객체가 버전 관리되는 버킷에 있다면 객체의 버전 ID를 지정해야 해요. 자세한 내용은 매니페스트 지정 문서를 참고하세요.
- 복제 구성을 기반으로 매니페스트를 만들려면 **S3 Replication 구성으로 매니페스트 만들기(Create manifest using S3 Replication configuration)**를 선택한 뒤 복제 구성의 소스 버킷을 선택해요.
- (선택 사항) S3 Replication 구성으로 매니페스트 만들기를 선택했다면 객체 생성 날짜와 복제 상태 같은 추가 필터를 포함할 수 있어요. 복제 상태로 필터링하는 예시는 Batch Replication 작업용 매니페스트 지정 문서를 참고하세요.
- (선택 사항) S3 Replication 구성으로 매니페스트 만들기를 선택했다면 생성된 매니페스트를 저장할 수 있어요. 저장하려면 **Batch Operations 매니페스트 저장(Save Batch Operations manifest)**을 선택한 뒤 매니페스트의 대상 버킷을 지정하고 매니페스트를 암호화할지 선택해요.
- 참고: 생성된 매니페스트는 소스 버킷과 같은 AWS 리전에 저장해야 해요.
- 준비된 매니페스트가 있다면 **S3 inventory 보고서(manifest.json)**나 CSV를 선택해요. 매니페스트가 버전 관리되는 버킷에 있다면 매니페스트의 버전 ID를 지정할 수 있어요. 버전 ID를 지정하지 않으면 Batch Operations는 매니페스트의 현재 버전을 사용합니다. 매니페스트 생성에 대한 자세한 내용은 매니페스트 지정 문서를 참고하세요.
- **다음(Next)**을 선택해요.
- 작업(Operations) 페이지에서 **복제(Replicate)**를 선택한 뒤 다음을 선택해요.
- (선택 사항) **설명(Description)**을 제공해요.
- 필요하면 작업의 **우선순위(Priority)**를 조정해요. 숫자가 클수록 우선순위가 높아요. Amazon S3는 낮은 우선순위 작업보다 높은 우선순위 작업을 먼저 실행하려 합니다. 작업 우선순위에 대한 자세한 내용은 작업 우선순위 지정 문서를 참고하세요.
- (선택 사항) 완료 보고서를 생성해요. 생성하려면 **완료 보고서 생성(Generate completion report)**을 선택해요. 완료 보고서를 생성하기로 했다면 실패한 태스크만(Failed tasks only) 또는 **모든 태스크(All tasks)**를 보고할지 선택하고 보고서의 대상 버킷을 제공해야 해요.
- 권한(Permissions) 섹션에서 Batch Replication에 필요한 권한을 가진 IAM 역할을 선택했는지 확인해요. 복제 실패의 가장 흔한 원인 중 하나는 제공된 IAM 역할의 권한이 부족한 것이에요. 이 역할 생성에 대한 자세한 내용은 S3 Batch Replication용 IAM 역할 구성 문서를 참고하세요.
- (선택 사항) Batch Replication 작업에 작업 태그를 추가해요.
- 다음을 선택해요.
- 작업 구성을 검토한 뒤 **작업 만들기(Create job)**를 선택해요.
AWS CLI로 작업 만들기
다음 예시 create-job 명령은 AWS 계정 111122223333에 대해 S3 생성 매니페스트를 사용하는 S3 Batch Replication 작업을 만들어요. 이 예시는 기존 객체와 이전에 복제에 실패한 객체를 모두 복제합니다. 복제 상태로 필터링하는 방법에 대한 자세한 내용은 Batch Replication 작업용 매니페스트 지정 문서를 참고하세요.
이 명령을 쓰려면 user input placeholders를 자신의 정보로 바꾸세요. IAM 역할 role/batch-Replication-IAM-policy를 이전에 만든 IAM 역할로 바꾸세요. 자세한 내용은 S3 Batch Replication용 IAM 역할 구성 문서를 참고하세요.
aws s3control create-job --account-id 111122223333 \
--operation '{"S3ReplicateObject":{}}' \
--report '{"Bucket":"arn:aws:s3:::amzn-s3-demo-completion-report-bucket",\
"Prefix":"batch-replication-report", \
"Format":"Report_CSV_20180820","Enabled":true,"ReportScope":"AllTasks"}' \
--manifest-generator '{"S3JobManifestGenerator":{
"ExpectedBucketOwner": "111122223333", \
"SourceBucket": "arn:aws:s3:::amzn-s3-demo-source-bucket", \
"EnableManifestOutput": false, "Filter":{
"EligibleForReplication": true, \
"ObjectReplicationStatuses": ["NONE","FAILED"]}}}' \
--priority 1 \
--role-arn arn:aws:iam::111122223333:role/batch-Replication-IAM-policy \
--no-confirmation-required \
--region source-bucket-region
참고: 복제 소스 버킷과 같은 AWS 리전에서 작업을 시작해야 해요.
Batch Replication 작업을 성공적으로 시작하면 응답으로 작업 ID를 받아요. 다음 describe-job 명령으로 이 작업을 모니터링할 수 있어요. 이 명령을 쓰려면 user input placeholders를 자신의 정보로 바꾸세요.
aws s3control describe-job --account-id 111122223333 --job-id job-id --region source-bucket-region
다음 예시는 AWS 계정 111122223333에 대해 사용자 정의 매니페스트를 사용하는 S3 Batch Replication 작업을 만들어요. 매니페스트의 객체가 버전 관리되는 버킷에 있다면 객체의 버전 ID를 지정해야 해요. 매니페스트에 지정된 버전 ID를 가진 객체만 복제됩니다. 매니페스트 생성에 대한 자세한 내용은 매니페스트 지정 문서를 참고하세요.
이 명령을 쓰려면 user input placeholders를 자신의 정보로 바꾸세요. IAM 역할 role/batch-Replication-IAM-policy를 이전에 만든 IAM 역할로 바꾸세요. 자세한 내용은 S3 Batch Replication용 IAM 역할 구성 문서를 참고하세요.
aws s3control create-job --account-id 111122223333 \
--operation '{"S3ReplicateObject":{}}' \
--report '{"Bucket":"arn:aws:s3:::amzn-s3-demo-completion-report-bucket",\
"Prefix":"batch-replication-report", \
"Format":"Report_CSV_20180820","Enabled":true,"ReportScope":"AllTasks"}' \
--manifest '{"Spec":{"Format":"S3BatchOperations_CSV_20180820",\
"Fields":["Bucket","Key","VersionId"]},\
"Location":{"ObjectArn":"arn:aws:s3:::amzn-s3-demo-manifest-bucket/manifest.csv",\
"ETag":"Manifest Etag"}}' \
--priority 1 \
--role-arn arn:aws:iam::111122223333:role/batch-Replication-IAM-policy \
--no-confirmation-required \
--region source-bucket-region
참고: 복제 소스 버킷과 같은 AWS 리전에서 작업을 시작해야 해요.
Batch Replication 작업을 성공적으로 시작하면 응답으로 작업 ID를 받아요. 다음 describe-job 명령으로 이 작업을 모니터링할 수 있어요.
aws s3control describe-job --account-id 111122223333 --job-id job-id --region source-bucket-region