

# 스냅샷 내보내기 작업 생성
<a name="aurora-export-snapshot.Exporting"></a>

스냅샷 내보내기 작업을 생성하여 스냅샷의 데이터를 Amazon S3 버킷으로 내보냅니다. AWS 계정당 최대 5개의 DB 스냅샷 내보내기 작업을 동시에 수행할 수 있습니다.

**참고**  
RDS 스냅샷 내보내기는 데이터베이스 유형 및 크기에 따라 다소 시간이 걸릴 수 있습니다. 내보내기 작업은 먼저 전체 데이터베이스를 복원하고 크기를 조정하여 Amazon S3로 데이터를 추출합니다. 이 단계 동안의 작업 진행 상황은 **Starting**으로 표시됩니다. 작업이 S3로 데이터 내보내기로 전환되면 진행 상황이 **진행 중(In progress)**으로 표시됩니다.  
내보내기를 완료하는 데 걸리는 시간은 데이터베이스에 저장된 데이터에 따라 다릅니다. 예를 들어 숫자로 된 기본 키 또는 인덱스 열이 잘 분산되어 있는 테이블은 가장 빠르게 내보냅니다. 분할에 적합한 열을 포함하지 않는 테이블과 문자열 기반 열에 인덱스가 하나만 있는 테이블은 더 오래 걸립니다. 내보내기가 느린 단일 스레드 프로세스를 사용하기 때문에 이렇게 더 긴 내보내기 시간이 발생합니다.

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 DB 스냅샷을 Amazon S3로 내보낼 수 있습니다.

Lambda 함수를 사용하여 스냅샷을 내보내는 경우 Lambda 함수 정책에 `kms:DescribeKey` 작업을 추가합니다. 자세한 내용은 [AWS Lambda 권한](https://docs.aws.amazon.com/lambda/latest/dg/lambda-permissions.html)을 참조하세요.

## 콘솔
<a name="aurora-export-snapshot.ExportConsole"></a>

**Amazon S3로 내보내기** 옵션은 Amazon S3로 내보낼 수 있는 스냅샷에 대해서만 나타납니다. 다음과 같은 이유로 스냅샷을 내보내기에 사용하지 못할 수 있습니다.
+ DB 엔진이 S3 내보내기를 지원하지 않습니다.
+ DB 인스턴스 버전이 S3 내보내기에 지원되지 않습니다.
+ 스냅샷이 생성된 AWS 리전에서 S3 내보내기가 지원되지 않습니다.

**DB 스냅샷을 내보내려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 [**Snapshots**]를 선택합니다.

1. 이 탭에서 내보낼 스냅샷 유형을 선택합니다.

1. 스냅샷 목록에서 내보낼 스냅샷을 선택합니다.

1. **작업**에서 **Export to Amazon S3(Amazon S3로 내보내기)**를 선택합니다.

   **Export to Amazon S3(Amazon S3로 내보내기)** 창이 나타납니다.

1. **Export identifier(내보내기 식별자)**에 내보내기 작업을 식별할 이름을 입력합니다. 이 값은 S3 버킷에 생성된 파일의 이름에도 사용됩니다.

1. 내보낼 데이터를 선택합니다.
   + 스냅샷의 모든 데이터를 내보내려면 **모두**를 선택합니다.
   + 스냅샷의 특정 부분을 내보내려면 **Partial(부분)**을 선택합니다. 스냅샷에서 내보낼 부분을 식별하려면 [**식별자(Identifiers)**]에 공백으로 구분된 하나 이상의 데이터베이스, 스키마 또는 테이블을 입력합니다.

     다음 형식을 사용합니다.

     ```
     {{database}}[.{{schema}}][.{{table}}] {{database2}}[.{{schema2}}][.{{table2}}] ... {{database}}n[.{{schema}}n][.{{table}}n]
     ```

     예:

     ```
     mydatabase mydatabase2.myschema1 mydatabase2.myschema2.mytable1 mydatabase2.myschema2.mytable2
     ```

1. **S3 버킷**에서 내보낼 버킷을 선택합니다.

   내보낸 데이터를 S3 버킷의 폴더 경로에 할당하려면 **S3 prefix(S3 접두사)**에 선택적 경로를 입력합니다.

1. **IAM 역할**에서 선택한 S3 버킷에 대한 쓰기 액세스 권한을 부여하는 역할을 선택하거나 새 역할을 생성합니다.
   + [IAM 역할을 사용하여 Amazon S3 버킷에 대한 액세스 권한 제공](aurora-export-snapshot.Setup.md#aurora-export-snapshot.SetupIAMRole)의 단계에 따라 역할을 생성한 경우에는 해당 역할을 선택합니다.
   + 선택한 S3 버킷에 대한 쓰기 액세스 권한을 부여하는 역할을 생성하지 않은 경우 **Create a new role**(새 역할 생성)을 선택하여 역할을 자동으로 생성합니다. 그런 다음 **IAM 역할 이름**에 해당 역할의 이름을 입력합니다.

1. **AWS KMS key**에 내보낸 데이터를 암호화하는 데 사용할 키의 ARN을 입력합니다.

1. **Amazon S3로 내보내기**를 선택합니다.

## AWS CLI
<a name="aurora-export-snapshot.ExportCLI"></a>

AWS CLI를 사용하여 DB 스냅샷을 Amazon S3로 내보내려면 [start-export-task](https://docs.aws.amazon.com/cli/latest/reference/rds/start-export-task.html) 명령을 다음과 같은 필수 옵션과 함께 사용합니다.
+ `--export-task-identifier` 
+ `--source-arn` 
+ `--s3-bucket-name` 
+ `--iam-role-arn` 
+ `--kms-key-id` 

다음 예에서 스냅샷 내보내기 작업의 이름은 {{my\_snapshot\_export}}이고, 이 작업은 스냅샷을 {{amzn-s3-demo-destination-bucket}}이라는 S3 버킷으로 내보냅니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds start-export-task \
2.     --export-task-identifier {{my-snapshot-export}} \
3.     --source-arn arn:aws:rds:{{AWS_Region}}:123456789012:snapshot:{{snapshot-name}} \
4.     --s3-bucket-name {{amzn-s3-demo-destination-bucket}} \
5.     --iam-role-arn {{iam-role}} \
6.     --kms-key-id {{my-key}}
```
Windows의 경우:  

```
1. aws rds start-export-task ^
2.     --export-task-identifier {{my-snapshot-export}} ^
3.     --source-arn arn:aws:rds:{{AWS_Region}}:123456789012:snapshot:{{snapshot-name}} ^
4.     --s3-bucket-name {{amzn-s3-demo-destination-bucket}} ^
5.     --iam-role-arn {{iam-role}} ^
6.     --kms-key-id {{my-key}}
```
샘플 출력은 다음과 같습니다.  

```
{
    "Status": "STARTING", 
    "IamRoleArn": "iam-role", 
    "ExportTime": "2019-08-12T01:23:53.109Z", 
    "S3Bucket": "{{amzn-s3-demo-destination-bucket}}", 
    "PercentProgress": 0, 
    "KmsKeyId": "my-key", 
    "ExportTaskIdentifier": "my-snapshot-export", 
    "TotalExtractedDataInGB": 0, 
    "TaskStartTime": "2019-11-13T19:46:00.173Z", 
    "SourceArn": "arn:aws:rds:AWS_Region:123456789012:snapshot:snapshot-name"
}
```
스냅샷 내보내기를 위해 S3 버킷에 폴더 경로를 제공하려면 [start-export-task](https://docs.aws.amazon.com/cli/latest/reference/rds/start-export-task.html) 명령에 `--s3-prefix` 옵션을 포함시킵니다.

## RDS API
<a name="aurora-export-snapshot.ExportAPI"></a>

Amazon RDS API를 사용하여 DB 스냅샷을 Amazon S3로 내보내려면 다음 필수 파라미터와 함께 [StartExportTask](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StartExportTask.html) 작업을 사용합니다.
+ `ExportTaskIdentifier`
+ `SourceArn`
+ `S3BucketName`
+ `IamRoleArn`
+ `KmsKeyId`