자습서: Amazon S3에서 Amazon S3로 데이터 전송AWS 계정 - AWS DataSync

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

자습서: Amazon S3에서 Amazon S3로 데이터 전송AWS 계정

를 사용하면 서로 다른 Amazon S3 버킷 간에 데이터를 이동할 수AWS 계정 있습니다.AWS DataSync

중요

이 자습서의 방법을AWS 계정 사용하여 데이터를 복사하는 방법은 Amazon S3에서만 작동합니다.

개요

이 자습서에서는AWS Identity and Access Management (IAM) 및 () 를 사용하여 Amazon S3에서 다른 S3 버킷에 있는 다른 S3 버킷으로 데이터를 전송하는DataSync 작업을 생성하는 방법을 알아봅니다AWS 계정.AWS Command Line InterfaceAWS CLI

작은 정보

S3 버킷도 다른 위치에 있는 경우 이 자습서를 따르십시오AWS 리전. 프로세스는 몇 가지 추가 단계를 제외하고 거의 동일합니다. 하지만 기본적으로 비활성화된 지역에 대해서는 이러한 유형의 전송이 지원되지DataSync 않는다는 점에 유의하세요.

이러한 종류의 시나리오는 다음과 같습니다.

  • 계정 A: 데이터를AWS 계정 복사할 S3 버킷을 관리하는 데 사용합니다.

  • 계정 B: 데이터를AWS 계정 복사할 S3 버킷을 관리하는 데 사용

Transfers across accounts

다음 다이어그램은 S3 버킷의 데이터를 다른 S3 버킷에 있는 다른 S3 버킷으로 복사하는 시나리오를 보여줍니다AWS 계정.

데이터가 하나의 S3 버킷AWS 계정 (계정 A) 에서 다른 S3 버킷AWS 계정 (계정 B) 의 S3 버킷으로 이동하기 전에 데이터를 이동하는 예제DataSync 시나리오입니다.
Transfers across accounts and Regions

다음 다이어그램은 S3 버킷의 데이터를 다른 AND 지역에 있는 다른 S3 버킷으로 복사하는 시나리오를 보여줍니다.AWS 계정

데이터를 다른AWS 계정 (계정 B) 및 지역의 S3 버킷으로 이동하기 전에 한 지역AWS 계정 (계정 A) 및 지역의 S3 버킷에서 데이터를 이동하는 예제DataSync 시나리오입니다.

필수 조건

교차 계정 이체를 용이하게 하기 위한 IAM 작업을 시작하기 전에 아직 하지 않았다면 다음을 수행하십시오.

  1. 복사할 객체 수를 결정하십시오. Amazon S3 스토리지 렌즈를 사용하여 버킷에 있는 객체 수를 파악할 수 있습니다.

    작은 정보

    S3 버킷 간 전송 시 작업당 2500만 개 이상의 객체를DataSync 복사할 수 없습니다. 버킷에 2500만 개 이상의 객체가 있는 경우 다음과 같은 몇 가지 옵션을 사용하는 것이 좋습니다.

  2. 계정 A를 사용하여 데이터를 복사하려는 S3 버킷의DataSync 소스 위치를 생성합니다.

  3. 계정AWS CLI A로 설정하려면 계정 B에서 S3 버킷의DataSync 대상 위치를 생성해야 합니다.AWS CLI

1단계: 계정DataSync A에 대한 IAM 역할 생성

계정 B에서 S3 버킷에 대한 쓰기DataSync 권한을 부여하는 IAM 역할이 필요합니다.

버킷 위치를 만들면 해당 버킷에 액세스할DataSync 수 있는 적절한 권한이 있는 역할을 자동으로 생성하고 위임할 수 있습니다. 계정 간에 이전하므로 역할을 수동으로 생성해야 합니다.

자세한 내용은 IAM 사용 설명서의AWS 서비스 (콘솔) 역할 생성을 참조하십시오.

IAM 역할 생성

신뢰할 수 있는DataSync 엔티티로 사용하여 역할을 생성합니다.

IAM 역할 생성
  1. 계정AWS Management Console A로 로그인하세요.

  2. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  3. 왼쪽 탐색 창의 액세스 관리에서 역할을 선택한 다음 역할 만들기를 선택합니다.

  4. 신뢰할 수 있는 엔티티 선택 페이지에서 신뢰할 수 있는 엔티티 유형에서 [신뢰할 수 있는 엔티티 유형] 을 선택합니다 AWS 서비스.

  5. 사용 DataSync사례의 경우 드롭다운 목록에서 선택하고 선택합니다 DataSync. 다음을 선택합니다.

  6. 권한 추가(Add permissions) 페이지에서 다음(Next)을 선택합니다.

  7. 역할 이름을 지정하고 역할 생성을 선택합니다.

IAM 역할에 사용자 지정 정책 연결

IAM 역할에는 계정 B의 S3DataSync 버킷에 쓸 수 있는 정책이 필요합니다.

IAM 정책을 IAM 역할에 연결하려면
  1. IAM 콘솔의 역할 페이지에서 방금 생성한 역할을 검색하고 이름을 선택합니다.

  2. 역할의 세부 정보 페이지에서 권한 탭을 선택합니다. 권한 추가를 선택한 다음 인라인 정책 생성을 선택합니다.

  3. JSON 탭을 선택하고 다음을 수행합니다.

    1. 다음 JSON을 정책 편집기에 붙여 넣습니다.

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": "arn:aws:s3:::account-b-bucket" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::account-b-bucket/*" } ] }
    2. 계정 B에account-b-bucket 있는 S3 버킷의 이름으로 바꿉니다.

  4. Review policy(정책 검토)를 선택합니다.

  5. 정책 이름을 지정하고 정책 생성을 선택합니다.

2단계: 계정 B에서 S3 버킷의 ACL을 비활성화합니다.

S3 버킷에 복사한 모든 데이터는 계정 B에 속해야 합니다. 계정 B가 데이터 소유자가 되도록 하려면 버킷의 ACL (액세스 제어 목록) 을 비활성화해야 합니다. 자세한 내용은 Amazon S3 사용자 안내서객체 소유권 제어 및 버킷에 대해 ACL 사용 중지를 참조하세요.

S3 버킷에 대한 ACL을 비활성화하려면
  1. 에서 계정AWS Management Console B로 전환하십시오.

  2. https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  3. 왼쪽 탐색 창에서 버킷(Buckets)을 선택합니다.

  4. 버킷 목록에서 데이터를 전송할 S3 버킷을 선택합니다.

  5. 버킷의 세부 정보 페이지에서 권한 탭을 선택합니다.

  6. 객체 소유권(Object Ownership)에서 편집(Edit)을 선택합니다.

  7. 아직 선택하지 않은 경우 ACL 비활성화 (권장) 옵션을 선택합니다.

  8. 변경 사항 저장(Save changes)을 선택합니다.

3단계: 계정 B에서 S3 버킷 정책 업데이트

계정 A에서 생성한 IAM 역할에 대한 액세스를 허용하도록 S3 버킷 정책을 수정합니다.DataSync

업데이트된 정책 (다음 지침에서 제공됨) 에는 두 가지 원칙이 포함됩니다.

  • 첫 번째 보안 주체는 1단계에서 생성한 계정 A의 IAM 역할을 지정합니다. 이 역할을 통해 계정 B에서 S3DataSync 버킷에 쓸 수 있습니다.

  • 두 번째 보안 주체는 콘솔 또는 계정에 액세스하는 데 사용하는 계정 A의 IAM 역할을 지정합니다AWS CLI. 4단계에서는 S3 버킷의 대상 위치를 생성할 때 이 역할을 사용합니다.

S3 버킷 정책을 업데이트하려면
  1. S3 콘솔에서 계정 B를 사용하는 동안 데이터를 복사하려는 S3 버킷을 선택합니다.

  2. 버킷의 세부 정보 페이지에서 권한 탭을 선택합니다.

  3. 버킷 정책에서 편집을 선택하고 다음을 수행하여 S3 버킷 정책을 수정합니다.

    1. 편집기에 있는 내용을 업데이트하여 다음 정책 설명을 포함하세요.

      { "Version": "2008-10-17", "Statement": [ { "Sid": "DataSyncCreateS3LocationAndTaskAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-a-id:role/name-of-datasync-role" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::account-b-bucket", "arn:aws:s3:::account-b-bucket/*" ] }, { "Sid": "DataSyncCreateS3Location", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-a-id:role/name-of-your-role" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::account-b-bucket" } ] }
    2. 계정 A의account-a-idAWS 계정 번호로 바꾸십시오.

    3. 계정 A (1단계 이전)DataSync 에서 생성한 IAMname-of-datasync-role 역할로 바꾸십시오.

    4. 계정 B에account-b-bucket 있는 S3 버킷의 이름으로 바꿉니다.

    5. 콘솔에 액세스하는 데 사용하는 IAM 역할 또는 계정name-of-your-roleAWS CLI A로 바꾸십시오.

  4. 변경 사항 저장(Save changes)을 선택합니다.

4단계: S3 버킷의DataSync 대상 위치 생성

S3 버킷의 위치를 생성한 후DataSync 작업을 실행할 수 있습니다. 하지만DataSync 콘솔에서는 다른 계정에서 위치를 만들 수 없습니다. 작업을 실행하려면AWS CLI 먼저 를 사용하여 위치를 만들어야 합니다.

CLI를 사용하여DataSync 위치를 만들려면
  1. 터미널을 엽니다.

  2. CLI 프로필이 계정 A를 사용하도록 구성되어 있는지 확인하십시오.

  3. 다음 명령을 복사합니다.

    aws datasync create-location-s3 \ --s3-bucket-arn arn:aws:s3:::account-b-bucket \ --s3-config '{"BucketAccessRoleArn":"arn:aws:iam::account-a-id:role/name-of-datasync-role"}'
  4. 계정 B에account-b-bucket 있는 S3 버킷의 이름으로 바꿉니다.

  5. 계정 A의account-a-idAWS 계정 번호로 바꾸십시오.

  6. 계정 A (1단계 이전)DataSync 에서 생성한 IAMname-of-datasync-role 역할로 바꾸십시오.

  7. 계정 B의 버킷이 계정 A의 버킷과 다른 지역에 있는 경우 명령 끝에--region 옵션을 추가하여 계정 B 버킷이 있는 지역을 지정합니다. 예: --region us-west-1.

  8. 명령을 실행합니다.

    명령이 다음과 비슷한DataSync 위치 ARN을 반환하면 위치를 성공적으로 생성한 것입니다.

    { "LocationArn": "arn:aws:datasync:us-east-2:123456789012:location/loc-abcdef01234567890" }
  9. 에서 계정 A로 다시 전환하십시오AWS Management Console.

  10. https://console.aws.amazon.com/datasync/ 에서DataSync 콘솔을 엽니다.

  11. 왼쪽 탐색 창에서 위치를 선택합니다.

    CLI로 방금 생성한 계정 B에서 S3 버킷의 위치를 볼 수 있습니다.

5단계:DataSync 태스크 생성 및 시작

데이터를 이동하기 전에 지금까지 수행한 작업을 요약해 보겠습니다.

  • 계정 B의 S3 버킷에 데이터를 쓸DataSync 수 있도록 계정 A에 IAM 역할을 생성했습니다.

  • DataSync작업이 제대로 작동하도록 계정 B에서 S3 버킷을 구성했습니다.

  • 계정 A에서 출발지와 목적지 위치를 생성했습니다.DataSync

DataSync작업을 생성하고 시작하려면
  1. 계정 A에서DataSync 콘솔을 계속 사용하는 동안 왼쪽 탐색 창에서 데이터 전송을 확장한 다음 작업작업 생성을 선택합니다.

    참고

    3단계에서 S3 버킷 정책에서 지정한 계정 A와 동일한 IAM 역할로 콘솔에 로그인해야 합니다.

  2. 계정 B의 버킷이 계정 A의 버킷과 다른 지역에 있는 경우 탐색 창에서 계정 B 버킷의 지역을 선택합니다.

    연결 오류가 발생하지 않도록 대상 위치의 리전 (이 경우에는 계정 B 버킷) 에서DataSync 작업을 시작해야 합니다.

  3. 소스 위치 구성 페이지에서 기존 위치 선택을 선택합니다.

  4. 리전 간 전송의 경우 Account A 버킷이 있는 리전을 선택합니다.

  5. 데이터를 복사할 원본 위치 (계정 A의 S3 버킷) 를 선택한 후 다음을 선택합니다.

  6. 대상 위치 구성 페이지에서 기존 위치 선택을 선택합니다. 데이터를 복사할 대상 위치 (계정 B의 S3 버킷) 를 선택한 후 다음을 선택합니다.

  7. 설정 구성 페이지에서 작업 이름을 지정합니다. 필요에 따라 AmazonCloudWatch 로그 그룹 지정과 같은 추가 설정을 구성합니다. 다음을 선택합니다.

  8. 검토 페이지에서 설정을 검토하고 작업 생성을 선택합니다.

  9. 작업의 세부 정보 페이지에서 시작을 선택한 후 다음 중 하나를 선택합니다.

    • 수정 없이 작업을 실행하려면 [기본값으로 시작] 을 선택합니다.

    • 작업을 실행하기 전에 수정하려면 우선 적용 옵션을 사용하여 시작을 선택합니다.

작업이 완료되면 계정 B에서 S3 버킷을 확인합니다. 그러면 계정 A 버킷의 데이터가 보일 것입니다.

관련 리소스

이 자습서에서 수행한 작업에 대한 자세한 내용은 다음 주제를 참조하세요.