메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

연습 2: (원본과 대상 버킷을 서로 다른 AWS 계정이 소유한 경우) 교차 리전 복제 구성

이 연습에서는 한 계정이 소유한 원본 버킷에 교차 리전 복제를 설정해 다른 계정 소유의 대상 버킷으로 객체를 복제합니다.

이는 한 계정에서 두 버킷을 모두 소유한 경우의 교차 리전 복제와 동일한 프로세스입니다. 단, 대상 버킷 소유자가 원본 버킷 소유자에게 복제 작업 권한을 위임하는 버킷 정책 생성 단계가 필요합니다.

이 연습에서는 IAM 역할을 생성하고 원본 버킷에 복제 구성을 설정하는 단계를 제외하고는 콘솔로 모든 단계를 수행합니다. 이 작업은 AWS CLI이나 Java용 AWS SDK를 사용해서 수행합니다.

  1. 두 개의 버킷을 만듭니다.

    1. 계정 A로 오리건(us-west-2) 등의 AWS 리전에 원본 버킷을 만듭니다.

      자세한 방법은 Amazon Simple Storage Service 콘솔 사용 설명서Creating a Bucket을 참조하십시오.

    2. 계정 B로는 또 다른 AWS 리전, 예를 들어 미국 표준 지역(us-east-1)에 대상 버킷을 만듭니다.

  2. 두 버킷의 버전 관리를 활성화합니다.

    자세한 방법은 Amazon Simple Storage Service 콘솔 사용 설명서Enabling Bucket Versioning을 참조하십시오.

  3. 대상 버킷에 다음 버킷 정책을 추가해 원본 버킷 소유자에게 복제 작업 권한을 허용합니다.

    Copy
    { "Version":"2008-10-17", "Id":"", "Statement":[ { "Sid":"Stmt123", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::AWS-ID-Account-A:root" }, "Action":["s3:ReplicateObject", "s3:ReplicateDelete"], "Resource":"arn:aws:s3:::destination-bucket/*" } ] }

    자세한 방법은 Amazon Simple Storage Service 콘솔 사용 설명서Editing Bucket Permissions을 참조하십시오.

  4. 계정 A에 IAM 역할을 만듭니다. 다음 단계에서 원본 버킷에 복제 구성을 추가하려면 계정 A로 이 역할을 지정합니다.

    AWS CLI를 사용해 이 IAM 역할을 생성합니다. AWS CLI를 설정하는 자세한 방법은 예제 안내를 위한 도구 설정을 참조하십시오.

    1. 다음 정책을 복사해 S3-role-trust-policy.json 파일에 저장합니다. 해당 정책은 Amazon S3에 역할을 수임할 권한을 부여합니다.

      Copy
      { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
    2. 다음 정책을 복사해 S3-role-permissions-policy.json 파일에 저장합니다. 해당 액세스 정책은 다양한 Amazon S3 버킷과 객체 작업에 대한 권한을 부여합니다. 다음 단계에서는 사용자가 생성하는 IAM 역할에 정책을 추가합니다.

      Copy
      { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObjectVersion", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::source-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:ListBucket", "s3:GetReplicationConfiguration" ], "Resource":[ "arn:aws:s3:::source-bucket" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete" ], "Resource":"arn:aws:s3:::destination-bucket/*" } ] }
    3. 다음 CLI 명령을 실행해 역할을 생성합니다.

      Copy
      $ aws iam create-role \ --role-name RoleForS3CrossAccountCrossRegionReplication \ --assume-role-policy-document file://S3-role-trust-policy.json
    4. 다음 CLI 명령을 실행해 정책을 생성합니다.

      Copy
      $ aws iam create-policy \ --policy-name PolicyForS3CrossAccountCrossRegionReplication \ --policy-document file://S3-role-permissions-policy.json
    5. 이전 명령의 출력 결과에서 반환된 정책 ARN을 적어 둡니다.

    6. 다음 CLI 명령을 실행해 정책과 역할을 연결합니다.

      Copy
      $ aws iam attach-role-policy \ --role-name RoleForS3CrossAccountCrossRegionReplication \ --policy-arn policy-arn

      계정 A로 Amazon S3 작업에 필요한 객체 복제에 대한 역할을 생성합니다.

  5. 계정 A원본 버킷에 교차 리전 복제를 활성화합니다. 복제 구성에서 Amazon S3에게 키 이름 접두사가 "Tax/"인 객체를 지정된 버킷으로 복제하도록 요청하는 규칙 한 개를 추가합니다. Amazon S3는 다음 예와 같이 복제 구성을 XML로 저장합니다.

    Copy
    <ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Role>arn:aws:iam::AWS-ID-Account-A:role/role-name</Role> <Rule> <Status>Enabled</Status> <Prefix>Tax</Prefix> <Destination><Bucket>arn:aws:s3:::destination-bucket</Bucket></Destination> </Rule> </ReplicationConfiguration>

    AWS CLI나 AWS SDK로 복제 구성을 원본 버킷에 추가할 수 있습니다.

    • AWS CLI 사용

      AWS CLI에서는 구성을 JSON으로 지정해야 합니다. 다음 JSON을 파일(replication.json)에 저장합니다. 사용자의 버킷 이름과 IAM 역할 ARN을 제공해야 합니다.

      Copy
      { "Role": "arn:aws:iam::AWS-ID-Account-A:role/role-name", "Rules": [ { "Prefix": "Tax", "Status": "Enabled", "Destination": { "Bucket": "arn:aws:s3:::destination-bucket" } } ] }

      그런 다음, CLI 명령을 실행해 복제 구성을 원본 버킷에 추가합니다.

      Copy
      $ aws s3api put-bucket-replication \ --bucket source-bucket \ --replication-configuration file://replication.json

      AWS CLI를 설정하는 자세한 방법은 예제 안내를 위한 도구 설정을 참조하십시오.

      계정 Aget-bucket-replication 명령을 사용해 복제 구성을 검색할 수 있습니다.

      Copy
      $ aws s3api get-bucket-replication \ --bucket source-bucket
    • Using the AWS SDK for Java.

      코드에 대한 예로는 Java용 AWS SDK로 교차 리전 복제 설정 방법을 참조하십시오.

  6. 다음과 같이 구성을 시험합니다.

    • 계정 A 자격 증명으로 원본 버킷에 객체를 만들고 Amazon S3가 계정 B 소유의 대상 버킷에 객체를 복제했는지 확인합니다. Amazon S3가 객체 복제에 소요하는 시간은 객체 크기에 따라 다릅니다. 복제 상태를 확인하는 데 대한 자세한 내용은 객체의 복제 상태를 확인하는 방법을 참조하십시오.

      원본 버킷에 객체를 업로드하려면 객체 키 이름에 접두사 "Tax"가 반드시 있어야 합니다(예: "Tax/document.pdf"). 계정 A가 원본 버킷에 추가한 복제 구성에 따라, Amazon S3는 접두사 "Tax"가 있는 객체만 복제합니다.

    • 원본 버킷의 객체 ACL을 업데이트하고, 대상 버킷에 변경 내용이 나타나는지 확인합니다.

      자세한 방법은 Amazon Simple Storage Service 콘솔 사용 설명서Editing Object Permissions을 참조하십시오.

    • 객체의 메타데이터를 업데이트하고 대상 버킷에 변경 내용이 나타나는지 확인합니다.

      자세한 방법은 Amazon Simple Storage Service 콘솔 사용 설명서객체 메타데이터 편집을 참조하십시오.

    복제본은 원본 버킷의 객체와 동일합니다.

자세한 내용은 다음 주제를 참조하십시오.

리전 간 복제

복제 가능한 객체와 복제 불가능한 객체

객체의 복제 상태를 확인하는 방법

연습 1: (원본과 대상 버킷을 동일한 AWS 계정이 소유한 경우) 교차 리전 복제 구성

이 페이지에서: