

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

# Amazon S3를 사용하여 AWS DataSync 전송 구성
<a name="create-s3-location"></a>

Amazon S3 버킷에서 데이터를 전송하려면 AWS DataSync 전송 *위치를* 생성합니다. DataSync는 이 위치를 데이터 전송의 소스 또는 목적지로 사용할 수 있습니다.

## DataSync에 S3 버킷 액세스 권한 제공
<a name="create-s3-location-access"></a>

DataSync는 전송 중인 S3 버킷에 대한 액세스가 필요합니다. 이렇게 하려면 DataSync가 버킷에 액세스하는 데 필요한 권한으로 수임하는 AWS Identity and Access Management (IAM) 역할을 생성해야 합니다. [DataSync의 Amazon S3 위치를 생성](#create-s3-location-how-to)할 때 이 역할을 지정합니다.

**Contents**
+ [필수 권한](#create-s3-location-required-permissions)
+ [DataSync가 Amazon S3 위치에 액세스할 수 있도록 IAM 역할 생성](#create-role-manually)
+ [서버측 암호화를 사용하여 S3 버킷에 액세스](#create-s3-location-encryption)
+ [제한된 S3 버킷 액세스](#denying-s3-access)
+ [VPC 액세스가 제한된 S3 버킷 액세스](#create-s3-location-restricted-vpc)

### 필수 권한
<a name="create-s3-location-required-permissions"></a>

IAM 역할에 필요한 권한은 버킷이 DataSync 소스인지 대상 위치인지에 따라 달라질 수 있습니다. Amazon S3 on Outposts에는 다른 권한 집합이 필요합니다.

------
#### [ Amazon S3 (source location) ]

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionTagging",
                "s3:ListMultipartUploadParts"
              ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
        }
    ]
}
```

------
#### [ Amazon S3 (destination location) ]

```
{
 "Version": "2012-10-17",		 	 	 
 "Statement": [
     {
         "Action": [
             "s3:GetBucketLocation",
             "s3:ListBucket",
             "s3:ListBucketMultipartUploads"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
         "Condition": {
             "StringEquals": {
                 "aws:ResourceAccount": "123456789012"
             }
         }
     },
     {
         "Action": [
             "s3:AbortMultipartUpload",
             "s3:DeleteObject",
             "s3:GetObject",
             "s3:GetObjectTagging",
             "s3:GetObjectVersion",
             "s3:GetObjectVersionTagging",
             "s3:ListMultipartUploadParts",
             "s3:PutObject",
             "s3:PutObjectTagging"
           ],
         "Effect": "Allow",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
         "Condition": {
             "StringEquals": {
                 "aws:ResourceAccount": "123456789012"
             }
         }
     }
 ]
}
```

------
#### [ Amazon S3 on Outposts ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3-outposts:ListBucket",
                "s3-outposts:ListBucketMultipartUploads"
            ],
            "Effect": "Allow",
            "Resource": [
            "arn:aws:s3-outposts:{{us-east-1}}:{{123456789012}}:outpost/{{outpost-id}}/bucket/{{amzn-s3-demo-bucket}}",
    "arn:aws:s3-outposts:{{us-east-1}}:{{123456789012}}:outpost/{{outpost-id}}/accesspoint/{{bucket-access-point-name}}"
            ]
        },
        {
            "Action": [
                "s3-outposts:AbortMultipartUpload",
                "s3-outposts:DeleteObject",
                "s3-outposts:GetObject",
                "s3-outposts:GetObjectTagging",
                "s3-outposts:GetObjectVersion",
                "s3-outposts:GetObjectVersionTagging",
                "s3-outposts:ListMultipartUploadParts",
                "s3-outposts:PutObject",
                "s3-outposts:PutObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": [
            "arn:aws:s3-outposts:{{us-east-1}}:{{123456789012}}:outpost/{{outpost-id}}/bucket/{{amzn-s3-demo-bucket}}/*",
    "arn:aws:s3-outposts:{{us-east-1}}:{{123456789012}}:outpost/{{outpost-id}}/accesspoint/{{bucket-access-point-name}}/*"
            ]
        },
        {
            "Action": "s3-outposts:GetAccessPoint",
            "Effect": "Allow",
            "Resource": "arn:aws:s3-outposts:{{us-east-1}}:{{123456789012}}:outpost/{{outpost-id}}/accesspoint/{{bucket-access-point-name}}"
        }
    ]
}
```

------

### DataSync가 Amazon S3 위치에 액세스할 수 있도록 IAM 역할 생성
<a name="create-role-manually"></a>

콘솔에서 [Amazon S3 위치를 생성](#create-s3-location-how-to)할 때 DataSync는 일반적으로 S3 버킷에 액세스할 수 있는 적절한 권한을 가진 IAM 역할을 자동으로 생성하고 그 역할을 맡을 수 있습니다.

경우에 따라이 역할을 수동으로 생성해야 할 수 있습니다(예: 추가 보안 계층이 있는 버킷에 액세스하거나 다른의 버킷으로 또는 버킷에서 전송 AWS 계정).

#### DataSync를 위한 IAM 역할 수동 생성
<a name="create-role-manually-steps"></a>

1. IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))을 엽니다.

1. 왼쪽 탐색 창의 **액세스 관리**에서 **역할**을 선택한 다음, **역할 생성**을 선택합니다.

1. **신뢰할 수 있는 엔터티 선택** 페이지에서 **신뢰할 수 있는 엔터티 유형**으로 **AWS 서비스**를 선택합니다.

1. **사용 사례**로 드롭다운 목록에서 **DataSync**를 선택하고 **DataSync**를 선택합니다. **다음**을 선택합니다.

1. **권한 추가** 페이지에서 **다음**을 선택합니다. 역할 이름을 제공하고 **역할 생성**을 선택합니다.

1. **역할** 페이지에서 방금 생성한 역할의 이름을 검색해 선택합니다.

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

1. **JSON** 탭을 선택하고 버킷에 액세스하는 데 [필요한 권한을 정책 편집기에 추가](#create-s3-location-required-permissions)합니다.

1. **다음**을 선택합니다. 정책에 이름을 제공하고 **정책 생성**을 선택합니다.

1. (권장) [교차 서비스 혼동된 대리자 문제](cross-service-confused-deputy-prevention.md)를 방지하려면 다음을 수행합니다.

   1. 역할의 세부 정도 페이지에서 **신뢰 관계** 탭을 선택합니다. **신뢰 정책 편집**을 선택합니다.

   1. `aws:SourceArn` 및 `aws:SourceAccount`전역 조건 컨텍스트 키가 포함된 다음 예를 사용하여 신뢰 정책을 업데이트하세요.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
            {
              "Effect": "Allow",
              "Principal": {
                  "Service": "datasync.amazonaws.com"
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                  "aws:SourceAccount": "{{444455556666}}"
                  },
                  "ArnLike": {
                  "aws:SourceArn": "arn:aws:datasync:{{us-east-1}}:{{444455556666}}:*"
                  }
              }
            }
        ]
      }
      ```

------

   1. **정책 업데이트**를 선택합니다.

Amazon S3 위치를 생성할 때 이 역할을 지정할 수 있습니다.

### 서버측 암호화를 사용하여 S3 버킷에 액세스
<a name="create-s3-location-encryption"></a>

DataSync는 [서버측 암호화를 사용하는 S3 버킷](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)으로 또는 S3 버킷에서 데이터를 전송할 수 있습니다. 버킷이 사용하는 암호화 키의 유형에 따라 DataSync가 버킷에 액세스할 수 있도록 허용하는 사용자 지정 정책이 필요한지 여부를 결정할 수 있습니다.

서버측 암호화를 사용하는 S3 버킷으로 DataSync를 사용할 때는 다음 사항을 기억하세요.
+ **S3 버킷이 AWS 관리형 키로 암호화된 경우** - 모든 리소스가 동일한 AWS 계정에 있는 경우 DataSync는 기본적으로 버킷의 객체에 액세스할 수 있습니다.
+ **S3 버킷이 고객 관리 AWS Key Management Service 형(AWS KMS) 키(SSE-KMS)로 암호화된 경우** - [키의 정책에](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html) DataSync가 버킷에 액세스하는 데 사용하는 IAM 역할이 포함되어야 합니다.
+ **S3 버킷이 고객 관리형 SSE-KMS 키 및 다른 로 암호화된 경우 AWS 계정** - DataSync는 다른의 버킷에 액세스할 수 있는 권한이 필요합니다 AWS 계정. 다음을 수행하여 이를 설정할 수 있습니다.
  + DataSync가 사용하는 IAM 역할에서 키의 정규화된 Amazon 리소스 이름(ARN)을 사용하여 교차 계정 버킷의 SSE-KMS 키를 지정해야 합니다. 버킷의 [기본 암호화](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-bucket-encryption.html)를 구성하는 데 사용하는 것과 동일한 키 ARN입니다. 이 상황에서는 키 ID, 별칭 이름 또는 별칭 ARN을 지정할 수 없습니다.

    다음은 키 ARN의 예제입니다.

    `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`

    IAM 정책 문에서 KMS 키를 지정하는 방법에 대한 자세한 내용은 *[AWS Key Management Service 개발자 가이드](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html)*를 참조하세요.
  + SSE-KMS 키 정책에서 [DataSync에서 사용하는 IAM 역할을 지정합니다](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html).
+ **이중 계층 서버 측 암호화를 위해 S3 버킷을 고객 관리형 AWS KMS 키(DSSE-KMS)로 암호화하는 경우 -** [키의 정책에](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html) DataSync가 버킷에 액세스하는 데 사용하는 IAM 역할이 포함되어야 합니다. (DSSE-KMS는 AWS KMS 요청 비용을 줄일 수 있는 [S3 버킷 키를](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html) 지원하지 않습니다.)
+ **S3 버킷이 고객 제공 암호화 키(SSE-C)로 암호화된 경우** – DataSync가 이 버킷에 액세스할 수 없습니다.

#### 예: DataSync에 대한 SSE-KMS 키 정책
<a name="create-s3-location-encryption-example"></a>

다음 예제는 고객 관리형 SSE-KMS 키의 [키 정책](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)입니다. 정책은 서버측 암호화를 사용하는 S3 버킷에 연결됩니다.

다음 예제를 사용하려면 다음 값을 본인의 것으로 바꿉니다.
+ {{account-id}} – AWS 계정.
+ {{admin-role-name}} - 키를 관리할 수 있는 IAM 역할의 이름입니다.
+ {{datasync-role-name}} - DataSync가 버킷에 액세스할 때 키를 사용하도록 허용하는 IAM 역할의 이름입니다.

------
#### [ JSON ]

****  

```
{
    "Id": "key-consolepolicy-3",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable IAM Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:role/{{admin-role-name}}"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:role/{{datasync-role-name}}"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### 제한된 S3 버킷 액세스
<a name="denying-s3-access"></a>

일반적으로 모든 액세스를 거부하는 S3 버킷으로 또는 S3 버킷에서 전송해야 하는 경우, DataSync가 전송을 위해서만 버킷에 액세스할 수 있도록 버킷 정책을 편집할 수 있습니다.

#### 예제: IAM 역할을 기반으로 액세스 허용
<a name="denying-s3-access-example"></a>

1. 다음 S3 버킷 정책을 복사합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "Deny-access-to-bucket",
           "Effect": "Deny",
           "Principal": "*",
           "Action": "s3:*",
           "Resource": [
               "arn:aws:s3:::{{amzn-s3-demo-bucket}}",
               "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
           ],
           "Condition": {
               "StringNotLike": {
                   "aws:userid": [
                       "{{datasync-iam-role-id}}:*",
                       "{{your-iam-role-id}}"
                   ]
               }
           }
       }]
   }
   ```

------

1. 이 정책에서 다음 값을 바꿉니다.
   + `{{amzn-s3-demo-bucket}}` - 제한된 S3 버킷의 이름을 지정합니다.
   + `{{datasync-iam-role-id}}` - [DataSync가 버킷에 액세스하는 데 사용하는 IAM 역할](#create-s3-location-access)의 ID를 지정합니다.

     다음 AWS CLI 명령을 실행하여 IAM 역할 ID를 가져옵니다.

     `aws iam get-role --role-name {{datasync-iam-role-name}}`

     출력에서 `RoleId`값을 찾습니다.

     `"RoleId": "ANPAJ2UCCR6DPCEXAMPLE"`
   + `{{your-iam-role-id}}` - 버킷의 DataSync 위치를 생성하는 데 사용하는 IAM 역할의 ID를 지정합니다.

     다음 명령을 실행하여 IAM 역할 ID를 가져옵니다:

     `aws iam get-role --role-name {{your-iam-role-name}}`

     출력에서 `RoleId`값을 찾습니다.

     `"RoleId": "AIDACKCEVSQ6C2EXAMPLE"`

1. S3 버킷 정책에 [이 정책을 추가](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)합니다.

1. 제한된 버킷과 함께 DataSync 사용을 완료했으면 버킷 정책에서 두 IAM 역할의 조건을 모두 제거합니다.

### VPC 액세스가 제한된 S3 버킷 액세스
<a name="create-s3-location-restricted-vpc"></a>

[특정 가상 프라이빗 클라우드(VPC) 엔드포인트 또는 VPC에 대한 액세스를 제한](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html)하는 Amazon S3 버킷은 DataSync가 해당 버킷으로 또는 버킷에서 전송하지 못하도록 거부합니다. 이러한 상황에서 전송을 활성화하려면 [DataSync 위치에 지정](#create-s3-location-how-to)한 IAM 역할을 포함하도록 버킷의 정책을 업데이트할 수 있습니다.

------
#### [ Option 1: Allowing access based on DataSync location role ARN ]

S3 버킷 정책에서 DataSync 위치 IAM 역할의 Amazon 리소스 이름(ARN)을 지정할 수 있습니다.

다음 예제는 두 VPC(`vpc-1234567890abcdef0` 및 `vpc-abcdef01234567890`)를 제외한 모든 VPC의 액세스를 거부하는 S3 버킷 정책입니다. 그러나 정책에는 DataSync 위치 역할의 ARN이 버킷에 액세스할 수 있는 [ArnNotLikeIfExists](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) 조건 및 [aws:PrincipalArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn) 조건 키도 포함됩니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Access-to-specific-VPCs-only",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:SourceVpc": [
                        "vpc-{{1234567890abcdef0}}",
                        "vpc-{{abcdef01234567890}}"
                    ]
                },
                "ArnNotLikeIfExists": {
                    "aws:PrincipalArn": [
                        "arn:aws:iam::{{111122223333}}:role/{{datasync-location-role-name}}"
                    ]
                }
            }
        }
    ]
}
```

------
#### [ Option 2: Allowing access based on DataSync location role tag ]

S3 버킷 정책에서 DataSync 위치 IAM 역할에 연결된 태그를 지정할 수 있습니다.

다음 예제는 두 VPC(`vpc-1234567890abcdef0` 및 `vpc-abcdef01234567890`)를 제외한 모든 VPC의 액세스를 거부하는 S3 버킷 정책입니다. 그러나 정책에는 태그 키 `exclude-from-vpc-restriction`와 값이 `true`인 보안 주체를 허용하는 [StringNotEqualsIfExists](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) 조건 및 [aws:PrincipalTag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) 조건 키도 포함됩니다. DataSync 위치 역할에 연결된 태그를 지정하여 버킷 정책에서 유사한 접근 방식을 시도할 수 있습니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Access-to-specific-VPCs-only",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:SourceVpc": [
                        "vpc-{{1234567890abcdef0}}",
                        "vpc-{{abcdef01234567890}}"
                    ],
                    "aws:PrincipalTag/{{exclude-from-vpc-restriction}}": "{{true}}"
                }
            }
        }
    ]
}
```

------

## Amazon S3 전송 시 스토리지 클래스 고려 사항
<a name="using-storage-classes"></a>

Amazon S3가 대상 위치인 경우, DataSync는 데이터를 특정 [Amazon S3 스토리지 클래스](https://aws.amazon.com/s3/storage-classes/)로 직접 전송할 수 있습니다.

일부 스토리지 클래스에는 Amazon S3 스토리지 비용에 영향을 미칠 수 있는 동작이 있습니다. 객체 덮어쓰기, 삭제 또는 검색에 대한 추가 요금이 발생할 수 있는 스토리지 클래스를 사용하는 경우 객체 데이터나 메타데이터를 변경하면 해당 요금이 발생합니다. 자세한 내용은 [Amazon S3 요금](https://aws.amazon.com/s3/pricing/)을 참조하세요.

**중요**  
Amazon S3에 전송된 새 객체는 [위치를 생성](#create-s3-location-how-to)할 때 지정하는 스토리지 클래스를 사용하여 저장됩니다.  
기본적으로 DataSync는 [모든 데이터를 전송](configure-metadata.md#task-option-transfer-mode)하도록 작업을 구성하지 않는 한 대상 위치에 있는 기존 객체의 스토리지 클래스를 보존합니다. 이러한 상황에서는 위치 생성 시 지정하는 스토리지 클래스가 모든 객체에 적용됩니다.


| Amazon S3 스토리지 클래스 | 고려 사항 | 
| --- | --- | 
| S3 Standard | S3 Standard을 선택하면 지리적으로 분리된 여러 가용 영역에 자주 액세스하는 파일을 중복 저장합니다. 이는 스토리지 클래스를 지정하지 않는 경우 기본값입니다. | 
| S3 Intelligent-Tiering | S3 Intelligent-Tiering을 선택하면 가장 비용 효과적인 스토리지 액세스 계층으로 데이터를 자동으로 이동하여 스토리지 비용을 최적화합니다.<br />S3 Intelligent-Tiering 스토리지 클래스에 저장된 객체에 대해 매월 요금을 지불합니다. 이 Amazon S3 요금에는 데이터 액세스 패턴 모니터링 및 티어 간 객체 이동이 포함됩니다. | 
| S3 Standard-IA | S3 Standard\_IA를 선택하면 지리적으로 분리된 여러 가용 영역에 자주 액세스하지 않는 객체를 중복 저장합니다.<br />S3 Standard-IA 스토리지 클래스에 저장된 객체는 덮어쓰기, 삭제 또는 검색에 추가 비용을 발생시킬 수 있습니다. 이 객체가 얼마나 자주 변경되는지, 이 객체를 얼마나 오래 유지할 계획인지, 이 객체에 얼마나 자주 액세스해야 하는지 고려합니다. 객체 데이터 또는 메타데이터 변경은 객체를 삭제하고 이를 대체할 새 객체를 생성하는 것과 같습니다. 이로 인해 S3 Standard-IA 스토리지 클래스에 저장된 객체에 추가 요금이 발생합니다.<br />128KB 미만의 객체는 S3 Standard-IA 스토리지 클래스에서 객체당 최소 용량 요금보다 작습니다. 이러한 객체는 S3 Standard 스토리지 클래스에 저장됩니다. | 
| S3 One Zone-IA  | S3 One Zone-IA를 선택하면 단일 가용 영역에 자주 액세스하지 않는 객체를 저장합니다.<br />S3 One Zone-IA 스토리지 클래스에 저장된 객체는 덮어쓰기, 삭제 또는 검색에 추가 비용을 발생시킬 수 있습니다. 이 객체가 얼마나 자주 변경되는지, 이 객체를 얼마나 오래 유지할 계획인지, 이 객체에 얼마나 자주 액세스해야 하는지 고려합니다. 객체 데이터 또는 메타데이터 변경은 객체를 삭제하고 이를 대체할 새 객체를 생성하는 것과 같습니다. 이로 인해 S3 One Zone-IA 스토리지 클래스에 저장된 객체에 추가 요금이 발생합니다.<br />128KB 미만의 객체는 S3 One Zone-IA 스토리지 클래스에서 객체당 최소 용량 요금보다 작습니다. 이러한 객체는 S3 Standard 스토리지 클래스에 저장됩니다. | 
| S3 Glacier Instant Retrieval | 거의 액세스하지 않지만 밀리초 단위로 검색해야 하는 객체를 아카이브하려면 S3 Glacier Instant Retrieval을 선택합니다.<br />S3 Glacier Instant Retrieval 스토리지 클래스에 저장된 데이터는 동일한 대기 시간 및 처리량 성능의 S3 Standard-IA 스토리지 클래스보다 비용을 절감합니다. 그러나 S3 Glacier Instant Retrieval은 S3 Standard-IA보다 데이터 액세스 비용이 더 높습니다.<br />S3 Glacier Instant Retrieval에 저장된 객체는 덮어쓰기, 삭제 또는 검색에 추가 비용을 발생시킬 수 있습니다. 이 객체가 얼마나 자주 변경되는지, 이 객체를 얼마나 오래 유지할 계획인지, 이 객체에 얼마나 자주 액세스해야 하는지 고려합니다. 객체 데이터 또는 메타데이터 변경은 객체를 삭제하고 이를 대체할 새 객체를 생성하는 것과 같습니다. 이로 인해 S3 Glacier Instant Retrieval 스토리지 클래스에 저장된 객체에 추가 요금이 발생합니다.<br />128KB 미만의 객체는 S3 Glacier Instant Retrieval 스토리지 클래스에서 객체당 최소 용량 요금보다 작습니다. 이러한 객체는 S3 Standard 스토리지 클래스에 저장됩니다. | 
| S3 Glacier Flexible Retrieval | 더 많은 활성 아카이브를 원하면 S3 Glacier Flexible Retrieval을 선택합니다.<br />S3 Glacier Flexible Retrieval에 저장된 객체는 덮어쓰기, 삭제 또는 검색에 추가 비용을 발생시킬 수 있습니다. 이 객체가 얼마나 자주 변경되는지, 이 객체를 얼마나 오래 유지할 계획인지, 이 객체에 얼마나 자주 액세스해야 하는지 고려합니다. 객체 데이터 또는 메타데이터 변경은 객체를 삭제하고 이를 대체할 새 객체를 생성하는 것과 같습니다. 이로 인해 S3 Glacier Flexible Retrieval 스토리지 클래스에 저장된 객체에 추가 요금이 발생합니다.<br />S3 Glacier Flexible Retrieval 스토리지 클래스에는 아카이빙된 각 객체에 대해 40KB의 추가 메타데이터가 필요합니다. DataSync는 40KB보다 작은 객체를 S3 Standard 스토리지 클래스에 저장합니다.DataSync에서 읽을 수 있으려면 먼저 이 스토리지 클래스에 보관된 객체를 복원해야 합니다. 해당 내용은 Amazon S3 사용 설명서의 [아카이브된 객체 작업](https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html)을 참조하세요.<br />S3 Glacier Flexible Retrieval을 사용하는 경우 **전송된 데이터만 확인**을 선택하여 전송이 끝날 때 데이터와 메타데이터 체크섬을 비교합니다. 이 스토리지 클래스에는 **대상의 모든 데이터 확인**을 사용할 수 없습니다. 대상에서 기존의 모든 객체를 검색해야 하기 때문입니다. | 
| S3 Glacier Deep Archive | 객체를 장기 보관하고 데이터를 일년에 한 번이나 두 번 액세스하도록 디지털 보존하려면 S3 Glacier Deep Archive를 선택하세요.<br />S3 Glacier Deep Archive에 저장된 객체는 덮어쓰기, 삭제 또는 검색에 추가 비용을 발생시킬 수 있습니다. 이 객체가 얼마나 자주 변경되는지, 이 객체를 얼마나 오래 유지할 계획인지, 이 객체에 얼마나 자주 액세스해야 하는지 고려합니다. 객체 데이터 또는 메타데이터 변경은 객체를 삭제하고 이를 대체할 새 객체를 생성하는 것과 같습니다. 이로 인해 S3 Glacier Deep Archive 스토리지 클래스에 저장된 객체에 추가 요금이 발생합니다.<br />S3 Glacier Deep Archive 스토리지 클래스에는 아카이빙된 각 객체에 대해 40KB의 추가 메타데이터가 필요합니다. DataSync는 40KB보다 작은 객체를 S3 Standard 스토리지 클래스에 저장합니다.<br />DataSync에서 읽을 수 있으려면 먼저 이 스토리지 클래스에 보관된 객체를 복원해야 합니다. 해당 내용은 *Amazon S3 사용 설명서*의 [아카이브된 객체 작업](https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html)을 참조하세요.<br />S3 Glacier Deep Archive를 사용하는 경우 **전송된 데이터만 확인**을 선택하여 전송이 끝날 때 데이터와 메타데이터 체크섬을 비교합니다. 이 스토리지 클래스에는 **대상의 모든 데이터 확인**을 사용할 수 없습니다. 대상에서 기존의 모든 객체를 검색해야 하기 때문입니다. | 
| S3 Outposts | Amazon S3 on Outposts에 대한 스토리지 클래스. | 

## DataSync 사용 시 S3 요청 비용 평가
<a name="create-s3-location-s3-requests"></a>

Amazon S3 위치를 사용하면 DataSync에서 수행한 S3 API 요청과 관련된 비용이 발생합니다. 이 섹션은 DataSync에서 이러한 요청을 사용하는 방식과 이러한 요청이 [Amazon S3](https://aws.amazon.com/s3/pricing/) 비용에 미치는 영향을 이해하는 데 도움이 될 수 있습니다.

**Topics**
+ [DataSync에서 수행한 S3 요청](#create-s3-location-s3-requests-made)
+ [비용 고려 사항](#create-s3-location-s3-requests-cost)

### DataSync에서 수행한 S3 요청
<a name="create-s3-location-s3-requests-made"></a>

다음 표에는 데이터를 Amazon S3 위치에 복사하거나 Amazon S3 위치에서 복사할 때 DataSync가 전송할 수 있는 S3 요청이 설명되어 있습니다.


| S3 요청 | DataSync에서 사용하는 방법 | 
| --- | --- | 
| [ListObjectV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) | DataSync는 순방향 슬래시(`/`)로 끝나는 모든 객체에 대해 해당 접두사로 시작하는 객체를 나열하도록 하나 이상의 `LIST`요청을 수행합니다. 이 요청은 작업 [준비](run-task.md#understand-task-execution-statuses) 단계에서 호출됩니다. | 
| [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) | DataSync는 작업의 [준비](run-task.md#understand-task-execution-statuses) 및 [검증](run-task.md#understand-task-execution-statuses) 단계에서 객체 메타데이터를 검색하도록 `HEAD`요청을 수행합니다. [DataSync에서 전송하는 데이터의 무결성을 확인](configure-data-verification-options.md)하는 방법에 따라 객체당 여러 `HEAD`요청이 있을 수 있습니다. | 
| [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) | DataSync는 작업 [전송](run-task.md#understand-task-execution-statuses) 단계에서 객체에서 데이터를 읽도록 `GET`요청을 수행합니다. 대용량 객체에 대해 여러 `GET`요청이 있을 수 있습니다. | 
| [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) | [객체 태그를 복사](configure-metadata.md)하도록 작업을 구성하면 DataSync는 이러한 `GET` 요청에 따라 작업 [준비](run-task.md#understand-task-execution-statuses) 및 [전송](run-task.md#understand-task-execution-statuses) 단계에서 객체 태그 확인을 수행합니다. | 
| [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) | DataSync는 작업 [전송](run-task.md#understand-task-execution-statuses) 단계 중에 대상 S3 버킷에 객체와 접두사를 생성하도록 `PUT`요청을 수행합니다. DataSync는 [Amazon S3 멀티파트 업로드](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html) 기능을 사용하므로 대용량 객체의 경우 여러 `PUT`요청이 있을 수 있습니다. 스토리지 비용을 최소화하려면 [수명 주기 구성]()을 사용하여 미완료 멀티파트 업로드를 중지하는 것이 좋습니다. | 
| [PutObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) | 소스 객체에 태그가 있고 [객체 태그를 복사](configure-metadata.md)하도록 작업을 구성한 경우, DataSync는 해당 태그를 [전송](run-task.md#understand-task-execution-statuses)할 때 이러한 `PUT`요청을 보냅니다. | 
| [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) | DataSync는 객체의 메타데이터가 변경된 경우에만 객체의 복사본을 생성하도록 `COPY`요청을 수행합니다. 이는 원래 메타데이터를 전달하지 않는 다른 서비스나 도구를 사용하여 S3 버킷에 데이터를 복사한 경우 발생할 수 있습니다. | 

### 비용 고려 사항
<a name="create-s3-location-s3-requests-cost"></a>

DataSync는 작업을 실행할 때마다 S3 버킷에서 S3 요청을 보냅니다. 이로 인해 특정 상황에서 요금이 누적될 수 있습니다. 예제:
+ S3 버킷으로 또는 S3 버킷에서 객체를 전송하는 경우가 많습니다.
+ 많은 데이터를 전송하지 않을 수도 있지만 S3 버킷에 많은 객체가 있습니다. DataSync가 각 버킷의 객체에 대해 S3 요청을 하기 때문에 이 시나리오에서도 여전히 높은 요금이 발생할 수 있습니다.
+ S3 버킷 간에 전송을 수행하므로 DataSync는 소스와 대상에서 S3 요청을 보냅니다.

DataSync와 관련된 S3 요청 비용을 최소화하려면 다음 사항을 고려하세요.

**Topics**
+ [어떤 S3 스토리지 클래스를 사용하고 있습니까?](#create-s3-location-s3-requests-storage-classes)
+ [데이터를 얼마나 자주 전송해야 하나요?](#create-s3-location-s3-requests-recurring-transfers)

#### 어떤 S3 스토리지 클래스를 사용하고 있습니까?
<a name="create-s3-location-s3-requests-storage-classes"></a>

S3 요청 요금은 특히 객체를 아카이브하는 클래스(S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive 클래스)의 경우 객체가 사용하는 Amazon S3 스토리지 클래스에 따라 달라질 수 있습니다.

다음은 DataSync를 사용할 때 스토리지 클래스가 S3 요청 요금에 영향을 미칠 수 있는 몇 가지 시나리오입니다.
+ 작업을 실행할 때마다 DataSync가 객체 메타데이터를 검색하도록 `HEAD`요청을 수행합니다. 이러한 요청으로 인해 객체를 이동하지 않더라도 요금이 발생합니다. 이러한 요청이 청구서에 미치는 영향은 객체가 사용하는 스토리지 클래스와 DataSync가 스캔하는 객체 수에 따라 달라집니다.
+ 객체를 S3 Glacier Instant Retrieval 스토리지 클래스로 이동하는 경우(직접 또는 버킷 수명 주기 구성을 통해), 이 클래스의 객체에 대한 요청은 다른 스토리지 클래스의 객체보다 비용이 많이 듭니다.
+ [소스 및 대상 위치가 완전히 동기화되었는지 확인](configure-data-verification-options.md)하도록 DataSync 작업을 구성하면 모든 스토리지 클래스(S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive 제외)에서 각 객체에 대한 `GET`요청이 발생합니다.
+ `GET` 요청에 더해 S3 Standard-IA, S3 One Zone-IA 또는 S3 Glacier Instant Retrieval 스토리지 클래스의 객체에 대한 데이터 검색 비용이 발생합니다.

자세한 내용은 [Amazon S3 요금](https://aws.amazon.com/s3/pricing/)을 참조하세요.

#### 데이터를 얼마나 자주 전송해야 하나요?
<a name="create-s3-location-s3-requests-recurring-transfers"></a>

데이터를 반복적으로 이동해야 하는 경우 필요 이상으로 많은 작업을 실행하지 않는 [일정](task-scheduling.md)을 고려하세요.

전송 범위를 제한하는 것도 고려할 수 있습니다. 예를 들어 특정 접두사의 객체에 초점을 맞추거나 전송되는 [데이터를 필터링](filtering.md)하도록 DataSync를 구성할 수 있습니다. 이러한 옵션은 DataSync 작업을 실행할 때마다 발생하는 S3 요청 수를 줄이는 데 도움이 될 수 있습니다.

## Amazon S3 전송 시 객체 고려 사항
<a name="create-s3-location-considerations"></a>
+ S3 버킷에서 전송하는 경우 [S3 Storage Lens](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_basics_metrics_recommendations.html)를 사용하여 이동하는 객체 수를 파악합니다.
+ S3 버킷 간에 전송할 때는 DataSync 작업 [할당량](datasync-limits.md)이 적용되지 않으므로 [확장 작업 모드](choosing-task-mode.md)를 사용하는 것이 좋습니다.
+ 이름에 비표준 문자가 있는 경우 DataSync는 객체를 전송하지 않을 수 있습니다. 자세한 내용은 *Amazon S3 사용 설명서*의 [객체 키 명명 지침](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines)을 참조하세요.
+ [버전 관리](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)를 사용하는 S3 버킷으로 DataSync를 사용할 때는 다음 사항을 기억하세요.
  + S3 버킷으로 전송할 때 DataSync는 객체가 소스에서 수정된 경우 객체의 새 버전을 생성합니다. 이로 인해 추가 요금이 발생합니다.
  + 객체의 소스 버킷과 대상 버킷에서 버전 ID가 다릅니다.
  + 각 객체의 최신 버전만 소스 버킷에서 전송됩니다. 이전 버전은 대상으로 복사되지 않습니다.
+ 처음에 S3 버킷에서 파일 시스템(예: NFS 또는 Amazon FSx)으로 데이터를 전송한 후 동일한 DataSync 작업의 후속 실행에는 수정되었지만 처음 전송할 때와 크기가 같은 객체는 포함되지 않습니다.

## Amazon S3 범용 버킷의 전송 위치 생성
<a name="create-s3-location-how-to"></a>

전송을 위한 위치를 생성하려면 기존 S3 범용 버킷이 필요합니다. 해당 버킷이 없는 경우 [https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html)를 참조하세요.

**중요**  
위치를 생성하기 전에 다음 섹션을 읽어야 합니다.  
[Amazon S3 전송 시 스토리지 클래스 고려 사항](#using-storage-classes)
[DataSync 사용 시 S3 요청 비용 평가](#create-s3-location-s3-requests)

### DataSync 콘솔 사용
<a name="create-s3-location-how-to-console"></a>

1. [https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/) AWS DataSync 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **데이터 전송**을 펼친 다음, **위치**와 **위치 생성**을 선택합니다.

1. **위치 유형**에서 **Amazon S3**를 선택한 다음 **범용 버킷**을 선택합니다.

1. **S3 URI**에는 사용자의 위치에 사용할 버킷과 접두사를 입력하거나 선택합니다.
**주의**  
DataSync는 슬래시(`/`)로 시작하거나 `//`, `/./` 또는 `/../` 패턴을 포함하는 접두사가 있는 객체를 전송할 수 없습니다. 예제:  
`{{/}}photos`
`photos{{//}}2006/January`
`photos{{/./}}2006/February`
`photos{{/../}}2006/March`

1. **대상으로 사용할 S3 스토리지 클래스**에서 Amazon S3가 전송 대상일 때 객체가 사용할 스토리지 클래스를 선택합니다.

   자세한 내용은 [Amazon S3 전송 시 스토리지 클래스 고려 사항](#using-storage-classes) 단원을 참조하십시오.

1. **IAM 역할**에 대해 다음 중 하나를 수행합니다.
   + DataSync가 S3 버킷에 액세스하는 데 필요한 권한을 가진 IAM 역할을 자동으로 생성하도록 **자동생성**을 선택합니다.

     이전에 DataSync에서 이 S3 버킷에 대한 IAM 역할을 만든 경우, 해당 역할이 기본적으로 선택됩니다.
   + 생성한 사용자 지정 IAM 역할을 선택합니다. 자세한 내용은 [DataSync가 Amazon S3 위치에 액세스할 수 있도록 IAM 역할 생성](#create-role-manually) 단원을 참조하십시오.

1. (선택 사항) **새 태그 추가**를 선택하여 Amazon S3 위치에 태그를 지정합니다.

   태그는 리소스 관리, 필터링 및 검색에 도움이 됩니다. 위치에 이름 태그를 생성하는 것이 좋습니다.

1. **위치 생성**을 선택합니다.

### 사용 AWS CLI
<a name="create-location-s3-cli"></a>

1. 다음 `create-location-s3`명령을 복사합니다.

   ```
   aws datasync create-location-s3 \
       --s3-bucket-arn 'arn:aws:s3:::amzn-s3-demo-bucket' \
       --s3-storage-class '{{your-S3-storage-class}}' \
       --s3-config 'BucketAccessRoleArn=arn:aws:iam::{{account-id:}}role/{{role-allowing-datasync-operations}}' \
       --subdirectory /{{your-prefix-name}}
   ```

1. `--s3-bucket-arn`에서 위치로 사용할 S3 버킷의 ARN을 지정합니다.

1. `--s3-storage-class`에서 Amazon S3가 전송 대상일 때 객체가 사용할 스토리지 클래스를 지정합니다.

1. `--s3-config`에서 DataSync가 버킷에 액세스하는 데 필요한 IAM 역할의 ARN을 지정합니다.

   자세한 내용은 [DataSync가 Amazon S3 위치에 액세스할 수 있도록 IAM 역할 생성](#create-role-manually) 단원을 참조하십시오.

1. `--subdirectory`에서 DataSync가 읽거나 쓰는 S3 버킷의 접두사를 지정합니다(버킷이 소스인지 대상 위치인지에 따라 다름).
**주의**  
DataSync는 슬래시(`/`)로 시작하거나 `//`, `/./` 또는 `/../` 패턴을 포함하는 접두사가 있는 객체를 전송할 수 없습니다. 예제:  
`{{/}}photos`
`photos{{//}}2006/January`
`photos{{/./}}2006/February`
`photos{{/../}}2006/March`

1. `create-location-s3` 명령을 실행합니다.

   명령이 성공하면 생성한 위치의 ARN을 보여주는 응답을 받게 됩니다. 예제:

   ```
   {
       "LocationArn": "arn:aws:datasync:us-east-1:111222333444:location/loc-0b3017fc4ba4a2d8d"
   }
   ```

이 위치를 DataSync 작업의 소스 또는 대상으로 사용할 수 있습니다.

## S3 on Outposts 버킷의 전송 위치 생성
<a name="create-s3-location-outposts-how-to"></a>

전송을 위한 위치를 생성하려면 기존 Amazon S3 on Outposts 버킷이 필요합니다. 해당 버킷이 없는 경우 [https://docs.aws.amazon.com/AmazonS3/latest/s3-outposts/S3onOutposts.html](https://docs.aws.amazon.com/AmazonS3/latest/s3-outposts/S3onOutposts.html)를 참조하세요.

DataSync 에이전트도 필요합니다. 자세한 내용은 [에 기본 모드 에이전트 배포 AWS Outposts](deploy-agents.md#outposts-agent) 단원을 참조하십시오.

대용량 데이터세트(예: 수십만 개 또는 수백만 개의 객체)가 포함된 S3 on Outposts 버킷 접두사에서 전송하는 경우 DataSync 작업이 시간 초과될 수 있습니다. 이를 방지하려면 전송해야 하는 정확한 객체를 지정할 수 있는 [DataSync 매니페스트](transferring-with-manifest.md)를 사용하는 것이 좋습니다.

### DataSync 콘솔 사용
<a name="create-s3-location-how-to-console"></a>

1. [https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/) AWS DataSync 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **데이터 전송**을 펼친 다음, **위치**와 **위치 생성**을 선택합니다.

1. **위치 유형**에서 **Amazon S3**를 선택한 다음 **Outposts 버킷**을 선택합니다.

1. **S3 버킷**에서 S3 on Outposts 버킷에 액세스할 수 있는 Amazon S3 액세스 포인트를 선택합니다.

   자세한 내용은 [https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)를 참조하세요.

1. **대상으로 사용할 S3 스토리지 클래스**에서 Amazon S3가 전송 대상일 때 객체가 사용할 스토리지 클래스를 선택합니다.

   자세한 내용은 [Amazon S3 전송 시 스토리지 클래스 고려 사항](#using-storage-classes) 단원을 참조하십시오. DataSync는 기본적으로 Amazon S3 on Outposts용 S3 Outposts 스토리지 클래스를 사용합니다.

1. **에이전트**에서 Outpost의 DataSync 에이전트에 대한 Amazon 리소스 이름(ARN)을 지정합니다.

1. **폴더**에 DataSync가 읽거나 쓰는 S3 버킷의 접두사를 입력합니다(버킷이 소스인지 대상 위치인지에 따라 다름).
**주의**  
DataSync는 슬래시(`/`)로 시작하거나 `//`, `/./` 또는 `/../` 패턴을 포함하는 접두사가 있는 객체를 전송할 수 없습니다. 예제:  
`{{/}}photos`
`photos{{//}}2006/January`
`photos{{/./}}2006/February`
`photos{{/../}}2006/March`

1. **IAM 역할**에 대해 다음 중 하나를 수행합니다.
   + DataSync가 S3 버킷에 액세스하는 데 필요한 권한을 가진 IAM 역할을 자동으로 생성하도록 **자동생성**을 선택합니다.

     이전에 DataSync에서 이 S3 버킷에 대한 IAM 역할을 만든 경우, 해당 역할이 기본적으로 선택됩니다.
   + 생성한 사용자 지정 IAM 역할을 선택합니다. 자세한 내용은 [DataSync가 Amazon S3 위치에 액세스할 수 있도록 IAM 역할 생성](#create-role-manually) 단원을 참조하십시오.

1. (선택 사항) **새 태그 추가**를 선택하여 Amazon S3 위치에 태그를 지정합니다.

   태그는 리소스 관리, 필터링 및 검색에 도움이 됩니다. 위치에 이름 태그를 생성하는 것이 좋습니다.

1. **위치 생성**을 선택합니다.

### 사용 AWS CLI
<a name="create-location-s3-cli"></a>

1. 다음 `create-location-s3`명령을 복사합니다.

   ```
   aws datasync create-location-s3 \
       --s3-bucket-arn '{{bucket-access-point}}' \
       --s3-storage-class '{{your-S3-storage-class}}' \
       --s3-config 'BucketAccessRoleArn=arn:aws:iam::{{account-id:}}role/{{role-allowing-datasync-operations}}' \
       --subdirectory /{{your-folder}} \
       --agent-arns 'arn:aws:datasync:{{your-region}}:{{account-id:}}:agent/agent-{{agent-id}}'
   ```

1. `--s3-bucket-arn`에서 S3 on Outposts 버킷에 액세스할 수 있는 Amazon S3 액세스 포인트의 ARN을 선택합니다.

   자세한 내용은 [https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)를 참조하세요.

1. `--s3-storage-class`에서 Amazon S3가 전송 대상일 때 객체가 사용할 스토리지 클래스를 지정합니다.

   자세한 내용은 [Amazon S3 전송 시 스토리지 클래스 고려 사항](#using-storage-classes) 단원을 참조하십시오. DataSync는 기본적으로 S3 on Outposts용 S3 Outposts 스토리지 클래스를 사용합니다.

1. `--s3-config`에서 DataSync가 버킷에 액세스하는 데 필요한 IAM 역할의 ARN을 지정합니다.

   자세한 내용은 [DataSync가 Amazon S3 위치에 액세스할 수 있도록 IAM 역할 생성](#create-role-manually) 단원을 참조하십시오.

1. `--subdirectory`에서 DataSync가 읽거나 쓰는 S3 버킷의 접두사를 지정합니다(버킷이 소스인지 대상 위치인지에 따라 다름).
**주의**  
DataSync는 슬래시(`/`)로 시작하거나 `//`, `/./` 또는 `/../` 패턴을 포함하는 접두사가 있는 객체를 전송할 수 없습니다. 예제:  
`{{/}}photos`
`photos{{//}}2006/January`
`photos{{/./}}2006/February`
`photos{{/../}}2006/March`

1. `--agent-arns`에서 Outpost에 있는 DataSync 에이전트의 ARN을 지정합니다.

1. `create-location-s3` 명령을 실행합니다.

   명령이 성공하면 생성한 위치의 ARN을 보여주는 응답을 받게 됩니다. 예제:

   ```
   {
       "LocationArn": "arn:aws:datasync:us-east-1:111222333444:location/loc-0b3017fc4ba4a2d8d"
   }
   ```

이 위치를 DataSync 작업의 소스 또는 대상으로 사용할 수 있습니다.

## 를 통한 Amazon S3 전송 AWS 계정
<a name="create-s3-location-cross-transfers"></a>

DataSync를 사용하면 [다른 AWS 계정](working-with-locations.md#working-with-locations-across-accounts)에서 데이터를 S3 버킷으로 또는 S3 버킷에서 이동할 수 있습니다. 자세한 내용은 다음 튜토리얼을 참조하세요.
+ [를 통해 온프레미스 스토리지에서 Amazon S3로 데이터 전송 AWS 계정](s3-cross-account-transfer.md)
+ [에서 Amazon S3에서 Amazon S3로 데이터 전송 AWS 계정](tutorial_s3-s3-cross-account-transfer.md)

## 상용 및 간의 Amazon S3 전송 AWS GovCloud (US) Regions
<a name="create-s3-location-govcloud"></a>

기본적으로 DataSync는 상용 및 AWS GovCloud (US) Regions의 S3 버킷 간에 전송하지 않습니다. 하지만 전송 시 S3 버킷 중 하나에 대한 객체 스토리지 위치를 생성하여 이러한 전송 유형을 설정할 수 있습니다. 에이전트를 사용하거나 사용하지 않고 이러한 유형의 전송을 수행할 수 있습니다. 에이전트를 사용하는 경우 작업을 **기본** 모드로 구성해야 합니다. 에이전트 없이 전송하려면 **확장** 모드를 사용해야 합니다.

**시작하기 전에**: 리전 간 전송으로 인한 비용 영향을 이해해야 합니다 자세한 내용은 [AWS DataSync 요금](https://aws.amazon.com/datasync/pricing/)을 참조하세요.

**Contents**
+ [DataSync에 객체 스토리지 위치의 버킷 액세스 권한 제공](#create-s3-location-govcloud-iam)
+ [DataSync 에이전트 생성(선택 사항)](#create-s3-location-govcloud-create-agent)
+ [S3 버킷의 객체 스토리지 위치 생성](#create-s3-location-govcloud-how-to)

### DataSync에 객체 스토리지 위치의 버킷 액세스 권한 제공
<a name="create-s3-location-govcloud-iam"></a>

이 전송을 위한 객체 스토리지 위치를 생성할 때 DataSync에 해당 위치의 S3 버킷에 액세스할 수 있는 권한과 함께 IAM 사용자의 자격 증명을 제공해야 합니다. 자세한 내용은 [필수 권한](#create-s3-location-required-permissions) 단원을 참조하십시오.

**주의**  
IAM 사용자는 장기 자격 증명을 가지므로 보안 위험이 있습니다. 이 위험을 줄이려면 이러한 사용자에게 작업을 수행하는 데 필요한 권한만 제공하고 더 이상 필요하지 않을 경우 이러한 사용자를 제거하는 것이 좋습니다.

### DataSync 에이전트 생성(선택 사항)
<a name="create-s3-location-govcloud-create-agent"></a>

**기본** 모드를 사용하여 전송을 실행하려면 에이전트를 사용해야 합니다. 상용 및 간에 전송하기 때문에 DataSync 에이전트를 리전 중 하나에 Amazon EC2 인스턴스로 AWS GovCloud (US) Region배포합니다. 퍼블릭 인터넷으로의 데이터 전송 요금을 방지하려면 에이전트가 VPC 서비스 엔드포인트를 사용하는 것이 좋습니다. 자세한 내용은 [Amazon EC2 Data 데이터 전송 요금](https://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer)을 참조하세요.

DataSync 작업을 실행하려는 리전을 기반으로 에이전트를 생성하는 방법을 설명하는 다음 시나리오 중 하나를 선택합니다.

#### 상용 리전에서 DataSync 작업을 실행하는 경우
<a name="using-datasync-in-commercial"></a>

다음 다이어그램은 DataSync 작업과 에이전트가 상용 리전에 있는 전송을 보여줍니다.

![AWS GovCloud (US) Region의 S3 버킷으로 리전 간 전송을 위해 상용 리전에 배포된 DataSync 에이전트입니다.](http://docs.aws.amazon.com/ko_kr/datasync/latest/userguide/images/s3-task-in-commercial.png)



| 레퍼런스 | 설명 | 
| --- | --- | 
| 1 | DataSync 작업을 실행하는 상용 리전에서 소스 S3 버킷으로부터 데이터를 전송합니다. 소스 버킷은 상용 리전의 [Amazon S3 위치](#create-s3-location-how-to)로 구성됩니다. | 
| 2 | VPC 서비스 엔드포인트 및 [네트워크 인터페이스](required-network-interfaces.md)가 있는 동일한 VPC 및 서브넷에 있는 DataSync 에이전트를 통해 데이터를 전송합니다. | 
| 3 |  AWS GovCloud (US) Region의 대상 S3 버킷으로 데이터를 전송합니다. 대상 버킷은 상용 리전의 [객체 스토리지 위치](#create-s3-location-govcloud-how-to)로 구성됩니다. | 

이 동일한 설정을 사용하여 반대 방향을에서 상용 리전 AWS GovCloud (US) Region 으로 전송할 수도 있습니다.

**DataSync 에이전트를 생성하려면**

1. 상용 리전에 [Amazon EC2 에이전트를 배포](deploy-agents.md#ec2-deploy-agent-how-to)합니다.

1. [VPC 서비스 엔드포인트](choose-service-endpoint.md#datasync-in-vpc)를 사용하도록 에이전트를 구성합니다.

1. [에이전트 활성화](activate-agent.md).

#### GovCloud(미국) 리전에서 DataSync 작업을 실행하는 경우
<a name="using-datasync-in-govcloud-1"></a>

다음 다이어그램은 DataSync 작업과 에이전트가 AWS GovCloud (US) Region에 있는 전송을 보여줍니다.

![에 배포된 DataSync 에이전트 AWS GovCloud (US) Region 또는 동일한의 S3 버킷으로 리전 간 전송 AWS GovCloud (US) Region.](http://docs.aws.amazon.com/ko_kr/datasync/latest/userguide/images/s3-task-in-govcloud-1.png)



| 레퍼런스 | 설명 | 
| --- | --- | 
| 1 | 상용 리전의 소스 S3 버킷에서 DataSync 작업을 실행하는 AWS GovCloud (US) Region 로 데이터를 전송합니다. 소스 버킷은 AWS GovCloud (US) Region에서 [객체 스토리지 위치](#create-s3-location-govcloud-how-to)로 구성됩니다. | 
| 2 | 에서 AWS GovCloud (US) Region데이터는 VPC 서비스 엔드포인트 및 [네트워크 인터페이스](required-network-interfaces.md)가 위치한 동일한 VPC 및 서브넷의 DataSync 에이전트를 통해 전송됩니다. | 
| 3 |  AWS GovCloud (US) Region의 대상 S3 버킷으로 데이터를 전송합니다. 대상 버킷은 AWS GovCloud (US) Region에서 [Amazon S3 위치](#create-s3-location-how-to)로 구성됩니다. | 

이 동일한 설정을 사용하여 반대 방향을에서 상용 리전 AWS GovCloud (US) Region 으로 전송할 수도 있습니다.

**DataSync 에이전트를 생성하려면**

1. 에[ Amazon EC2 에이전트를 배포](deploy-agents.md#ec2-deploy-agent-how-to)합니다 AWS GovCloud (US) Region.

1. [VPC 서비스 엔드포인트](choose-service-endpoint.md#datasync-in-vpc)를 사용하도록 에이전트를 구성합니다.

1. [에이전트 활성화](activate-agent.md).

데이터세트의 압축성이 높으면 AWS GovCloud (US) Region에서 작업을 실행하는 동안 상용 리전에서 에이전트를 생성하여 비용을 절감할 수 있습니다. 상용 리전에서 사용할 에이전트 준비를 포함하여 이 에이전트를 생성하는 데 평소보다 설정이 더 많습니다. 이 설정을 위한 에이전트 생성에 대한 자세한 내용은를 사용하여 안[팎 AWS GovCloud (US) 으로 데이터 이동 블로그를 참조하세요 AWS DataSync](https://aws.amazon.com/blogs/publicsector/move-data-in-out-aws-govcloud-datasync/).

### S3 버킷의 객체 스토리지 위치 생성
<a name="create-s3-location-govcloud-how-to"></a>

DataSync 작업을 실행하지 않는 리전에 있는 S3 버킷의 객체 스토리지 위치가 필요합니다.

#### DataSync 콘솔 사용
<a name="create-s3-location-govcloud-how-to-console"></a>

1. [https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/) AWS DataSync 콘솔을 엽니다.

1. 작업을 실행하려는 리전과 동일한 리전에 있어야 합니다.

1. 왼쪽 탐색 창에서 **데이터 전송**을 펼친 다음, **위치**와 **위치 생성**을 선택합니다.

1. **위치 유형**에서 **객체 스토리지**를 선택합니다.

1. **에이전트**에서 이 전송을 위해 생성한 DataSync 에이전트를 선택합니다.

1. **서버**에서 다음 형식 중 하나를 사용하여 버킷의 Amazon S3 엔드포인트를 입력합니다.
   + **상용 리전 버킷:** `s3.{{your-region}}.amazonaws.com`
   + **AWS GovCloud (US) Region 버킷**: `s3.{{your-gov-region}}.amazonaws.com`

   Amazon S3 엔드포인트 목록은 *[AWS 일반 참조](https://docs.aws.amazon.com/general/latest/gr/s3.html)* 섹션을 참조하세요.

1. **버킷** 이름에서 S3 버킷의 이름을 입력합니다.

1. **폴더**에 DataSync가 읽거나 쓰는 S3 버킷의 접두사를 입력합니다(버킷이 소스인지 대상 위치인지에 따라 다름).
**주의**  
DataSync는 슬래시(`/`)로 시작하거나 `//`, `/./` 또는 `/../` 패턴을 포함하는 접두사가 있는 객체를 전송할 수 없습니다. 예제:  
`{{/}}photos`
`photos{{//}}2006/January`
`photos{{/./}}2006/February`
`photos{{/../}}2006/March`

1. **자격 증명 필요**를 선택하고 다음을 수행합니다.
   + **액세스 키**에서 버킷에 액세스할 수 있는 [IAM 사용자](#create-s3-location-govcloud-iam)의 액세스 키를 입력합니다.
   + **보안 키**에서 동일한 IAM 사용자의 보안 키를 입력합니다.

1. (선택 사항) **태그 추가**를 선택하여 위치에 태그를 지정합니다.

   태그는 리소스 관리, 필터링 및 검색에 도움이 됩니다. 위치에 이름 태그를 생성하는 것이 좋습니다.

1. **위치 생성**을 선택합니다.

#### 사용 AWS CLI
<a name="create-s3-location-govcloud-how-to-cli"></a>

1. 다음 `create-location-object-storage`명령을 복사합니다.

   ```
   aws datasync create-location-object-storage \
       --server-hostname {{s3-endpoint}} \
       --bucket-name {{amzn-s3-demo-bucket}} \
       --agent-arns arn:aws:datasync:{{your-region}}:{{123456789012}}:agent/agent-{{01234567890deadfb}}
   ```

1. `--server-hostname` 파라미터에 다음 형식 중 하나를 사용하여 버킷에 대한 Amazon S3 엔드포인트를 지정합니다.
   + **상용 리전 버킷:** `s3.{{your-region}}.amazonaws.com`
   + **AWS GovCloud (US) Region 버킷**: `s3.{{your-gov-region}}.amazonaws.com`

   엔드포인트의 리전에서 작업을 실행하려는 리전과 동일한 리전을 지정해야 합니다.

   Amazon S3 엔드포인트 목록은 *[AWS 일반 참조](https://docs.aws.amazon.com/general/latest/gr/s3.html)* 섹션을 참조하세요.

1. `--bucket-name` 파라미터에서 S3 버킷의 이름을 지정합니다.

1. `--agent-arns` 파라미터에서 이 전송을 위해 생성한 DataSync 에이전트를 지정합니다.

1. `--access-key` 파라미터에서 버킷에 액세스할 수 있는 [IAM 사용자](#create-s3-location-govcloud-iam)의 액세스 키를 지정합니다.

1. `--secret-key` 파라미터에서 동일한 IAM 사용자의 보안 키를 입력합니다.

1. (선택 사항) `--subdirectory` 파라미터에서 DataSync가 읽거나 쓰는 S3 버킷의 접두사를 입력합니다(버킷이 소스인지 대상 위치인지에 따라 다름).
**주의**  
DataSync는 슬래시(`/`)로 시작하거나 `//`, `/./` 또는 `/../` 패턴을 포함하는 접두사가 있는 객체를 전송할 수 없습니다. 예제:  
`{{/}}photos`
`photos{{//}}2006/January`
`photos{{/./}}2006/February`
`photos{{/../}}2006/March`

1. (선택 사항) `--tags` 파라미터에서 위치 리소스의 태그를 나타내는 키-값 페어를 지정합니다.

   태그는 리소스 관리, 필터링 및 검색에 도움이 됩니다. 위치에 이름 태그를 생성하는 것이 좋습니다.

1. `create-location-object-storage` 명령을 실행합니다.

   방금 생성한 위치 ARN을 보여주는 응답을 받게 됩니다.

   ```
   {
       "LocationArn": "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890abcdef"
   }
   ```

이 위치를 DataSync 작업의 소스 또는 대상으로 사용할 수 있습니다. 이 전송의 다른 S3 버킷에서 [Amazon S3 위치를 생성](#create-s3-location-how-to)합니다.

## 다음 단계
<a name="create-s3-location-next-steps"></a>

몇 가지 가능한 다음 단계는 다음과 같습니다.

1. 필요한 경우 다른 위치를 생성합니다. 자세한 내용은 [데이터를 어디로 전송할 수 있나요 AWS DataSync?](working-with-locations.md) 섹션을 참조하세요.

1. 전송할 파일, 메타데이터 처리 방법 등 [DataSync 작업 설정을 구성](task-options.md)합니다.

1. DataSync 작업 [일정을 설정](task-scheduling.md)합니다.

1. DataSync 작업에 대한 [모니터링을 구성](monitoring-overview.md)합니다.

1. 작업을 [시작](run-task.md)합니다.