S3 Replication Time Control(S3 RTC)을 사용하여 객체 복제 - Amazon Simple Storage Service

S3 Replication Time Control(S3 RTC)을 사용하여 객체 복제

S3 Replication Time Control(S3 RTC)은 데이터 복제와 관련된 규정 준수 요구 사항이나 비즈니스 요구 사항을 충족할 수 있도록 지원하며 Amazon S3 복제 활동에 대한 가시성을 제공합니다. S3 RTC는 Amazon S3에 업로드하는 대부분의 객체를 몇 초 만에 복제하고 이러한 객체의 99.99%를 15분 내에 복제합니다.

S3 RTC를 사용하여 복제 보류 중인 객체의 총 수와 크기 및 대상 리전까지의 최대 복제 시간을 모니터링할 수 있습니다. 복제 지표는 AWS Management ConsoleAmazon CloudWatch 사용 설명서를 통해 사용할 수 있습니다. 자세한 내용은 CloudWatch의 S3 복제 지표 단원을 참조하십시오.

주제

    단계별 지침은 동일한 계정이 소유한 원본 및 대상 버킷에 대한 복제 구성단원을 참조하세요. 이 주제에서는 버킷을 동일한 및 서로 다른 AWS 계정이 소유한 경우에 복제 구성에서 S3 RTC를 사용하는 지침을 제공합니다.

    AWS CLI를 사용하여 S3 RTC가 사용 설정된 객체를 복제하려면 버킷을 생성하고 버킷에서 버전 관리를 사용하며 객체를 복제할 권한을 Amazon S3에 부여하는 IAM 역할을 생성하고 복제 구성을 소스 버킷에 추가합니다. 복제 구성을 하려면 S3 Replication Time Control(S3 RTC)이 사용 설정되어 있어야 합니다.

    S3 RTC를 사용하는 상태로 복제(AWS CLI)
    • 다음 예제에서는 ReplicationTimeMetric을(를) 설정하고 원본 버킷에 복제 구성을 추가합니다.

      { "Rules": [ { "Status": "Enabled", "Filter": { "Prefix": "Tax" }, "DeleteMarkerReplication": { "Status": "Disabled" }, "Destination": { "Bucket": "arn:aws:s3:::destination", "Metrics": { "Status": "Enabled", "EventThreshold": { "Minutes": 15 } }, "ReplicationTime": { "Status": "Enabled", "Time": { "Minutes": 15 } } }, "Priority": 1 } ], "Role": "IAM-Role-ARN" }
      중요

      Metrics:EventThreshold:MinutesReplicationTime:Time:Minutes은(는) 유효한 값으로 15만 가질 수 있습니다.

    다음은 S3 Replication Time Control(S3 RTC)을 통해 복제 구성을 추가하는 Java 예제입니다.

    import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.model.DeleteMarkerReplication; import software.amazon.awssdk.services.s3.model.Destination; import software.amazon.awssdk.services.s3.model.Metrics; import software.amazon.awssdk.services.s3.model.MetricsStatus; import software.amazon.awssdk.services.s3.model.PutBucketReplicationRequest; import software.amazon.awssdk.services.s3.model.ReplicationConfiguration; import software.amazon.awssdk.services.s3.model.ReplicationRule; import software.amazon.awssdk.services.s3.model.ReplicationRuleFilter; import software.amazon.awssdk.services.s3.model.ReplicationTime; import software.amazon.awssdk.services.s3.model.ReplicationTimeStatus; import software.amazon.awssdk.services.s3.model.ReplicationTimeValue; public class Main { public static void main(String[] args) { S3Client s3 = S3Client.builder() .region(Region.US_EAST_1) .credentialsProvider(() -> AwsBasicCredentials.create( "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY") ) .build(); ReplicationConfiguration replicationConfig = ReplicationConfiguration .builder() .rules( ReplicationRule .builder() .status("Enabled") .priority(1) .deleteMarkerReplication( DeleteMarkerReplication .builder() .status("Disabled") .build() ) .destination( Destination .builder() .bucket("destination_bucket_arn") .replicationTime( ReplicationTime.builder().time( ReplicationTimeValue.builder().minutes(15).build() ).status( ReplicationTimeStatus.ENABLED ).build() ) .metrics( Metrics.builder().eventThreshold( ReplicationTimeValue.builder().minutes(15).build() ).status( MetricsStatus.ENABLED ).build() ) .build() ) .filter( ReplicationRuleFilter .builder() .prefix("testtest") .build() ) .build()) .role("role_arn") .build(); // Put replication configuration PutBucketReplicationRequest putBucketReplicationRequest = PutBucketReplicationRequest .builder() .bucket("source_bucket") .replicationConfiguration(replicationConfig) .build(); s3.putBucketReplication(putBucketReplicationRequest); } }

    자세한 내용은 S3 Replication Time Control(S3 RTC)을 사용하여 규정 준수 요구 사항 충족 단원을 참조하십시오.