

# 백업에서 DynamoDB 테이블 복원
<a name="Restore.Tutorial"></a>

이 단원에서는 Amazon DynamoDB 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용하여 백업에서 테이블을 복원하는 방법을 설명합니다.

**참고**  
AWS CLI를 사용하려면 먼저 구성을 해야 합니다. 자세한 내용은 [DynamoDB 액세스](AccessingDynamoDB.md) 섹션을 참조하세요.

**Topics**

## 백업에서 테이블 복원(콘솔)
<a name="restoretable_console"></a>

다음 절차는 `Music` 자습서에서 만든 `MusicBackup` 파일을 사용하여 [DynamoDB 테이블 백업](Backup.Tutorial.md) 테이블을 복원하는 방법을 보여 줍니다.

**참고**  
이 절차는 `Music` 파일을 사용하여 이를 복원하기 전에 `MusicBackup` 테이블이 더 이상 존재하지 않음을 가정합니다.

**백업에서 테이블을 복원하려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)에서 DynamoDB 콘솔을 엽니다.

1. 콘솔 왼쪽의 탐색 창에서 [**Backups**]를 선택합니다.

1. 백업 목록에서 `MusicBackup`을 선택합니다.  
![\[백업 목록과 백업 만들기 버튼의 스크린샷\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/select_musicbackup.png)

1. **복원**을 선택합니다.

1. **Music**​을 새 테이블 이름으로 입력합니다. 백업 이름과 기타 백업 세부 정보를 확인합니다. [**Restore table**]을 선택하여 복원 프로세스를 시작합니다.
**참고**  
테이블을 동일한 AWS 리전 또는 백업이 속하는 리전과 다른 리전에 복원할 수 있습니다. 새로 복원된 테이블에 보조 인덱스가 생성되지 않도록 제외할 수도 있습니다. 또한 다른 암호화 모드를 지정할 수 있습니다.  
백업에서 복원된 테이블은 항상 DynamoDB Standard 테이블 클래스를 사용하여 생성됩니다.  
![\[백업에서 테이블 복원 화면(백업 테이블 세부 정보 표시)의 스크린샷\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/restore_table.png)

   복원하는 테이블은 상태가 [**Creating**]으로 표시됩니다. 복원 프로세스가 완료되면 `Music` 테이블의 상태가 **Active**로 변경됩니다.

## 백업에서 테이블 복원(AWS CLI)
<a name="restoretable_cli"></a>

다음 단계에 따라 AWS CLI를 사용하여 `Music` 자습서에서 만든 `MusicBackup`을 이용해 [DynamoDB 테이블 백업](Backup.Tutorial.md) 테이블을 복원합니다.

**백업에서 테이블을 복원하려면**

1. `list-backups` 명령을 사용하여 복원하려는 백업을 확인합니다. 이 예제에서는 `MusicBackup`를 사용합니다.

   ```
   aws dynamodb list-backups
   ```

   백업에 대한 자세한 정보를 보려면 `describe-backup` 명령을 사용합니다. 이전 단계의 `backup-arn`에서 입력을 볼 수 있습니다.

   ```
   aws dynamodb describe-backup \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d
   ```

1. 백업에서 테이블을 복원합니다. 이 경우 `MusicBackup`은 `Music` 테이블을 동일한 AWS 리전으로 복원합니다.

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d
   ```

1. 사용자 지정 테이블 설정을 통해 백업에서 테이블을 복원합니다. 이 경우 `MusicBackup`은 `Music` 테이블을 복원하고 복원된 테이블의 암호화 모드를 지정합니다.
**참고**  
`sse-specification-override` 파라미터는 `sse-specification-override` 명령에 사용된 `CreateTable` 파라미터와 동일한 값을 사용합니다. 자세한 내용은 [DynamoDB의 암호화된 테이블 관리](encryption.tutorial.md)를 참조하세요.

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581080476474-e177ebe2 \
   --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
   ```

   테이블을 백업이 속하는 다른 AWS 리전으로 복원할 수 있습니다.
**참고**  
이 `sse-specification-override` 파라미터는 교차 리전 복원에는 필수지만 원본 테이블과 동일한 리전으로 복원하는 경우에는 선택 사항입니다.
명령줄에서 교차 리전 복원을 수행할 때는 기본 AWS 리전을 원하는 대상 리전으로 설정해야 합니다. 자세한 내용은 *AWS Command Line Interface 사용 설명서*의 [명령줄 옵션](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html)을 참조하세요.

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581080476474-e177ebe2 \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```

   복원된 테이블에 대한 결제 모드와 프로비저닝된 처리량을 재정의할 수 있습니다.

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d \
   --billing-mode-override PAY_PER_REQUEST
   ```

   복원된 테이블에 일부 또는 전체 보조 인덱스가 생성되지 않도록 제외할 수 있습니다.
**참고**  
복원된 테이블에 일부 또는 전체 보조 인덱스가 생성되지 않도록 제외하는 경우 복원이 보다 빠르고 비용 효율적일 수 있습니다.

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581081403719-db9c1f91 \
   --global-secondary-index-override '[]' \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```
**참고**  
제공된 보조 인덱스는 기존 인덱스와 일치해야 합니다. 복원 시 새 인덱스를 생성할 수 없습니다.

   다른 재정의 조합을 사용할 수 있습니다. 예를 들어, 다음과 같이 단일 글로벌 보조 인덱스를 사용하는 동시에 프로비저닝된 처리량을 변경할 수 있습니다.

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:eu-west-1:123456789012:table/Music/backup/01581082594992-303b6239 \
   --billing-mode-override PROVISIONED \
   --provisioned-throughput-override ReadCapacityUnits=100,WriteCapacityUnits=100 \
   --global-secondary-index-override IndexName=singers-index,KeySchema=["{AttributeName=SingerName,KeyType=HASH}"],Projection="{ProjectionType=KEYS_ONLY}",ProvisionedThroughput="{ReadCapacityUnits=5,WriteCapacityUnits=5}" \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```

 복원을 확인하려면 `describe-table` 명령을 사용하여 `Music` 테이블을 명시합니다.

```
aws dynamodb describe-table --table-name Music 
```

백업에서 복원하는 테이블은 상태가 [**Creating**]으로 표시됩니다. 복원 프로세스가 완료되면 `Music` 테이블의 상태가 **Active**로 변경됩니다.

**중요**  
복원 진행 중에는 IAM 역할 정책을 수정하거나 삭제하지 마세요. 그럴 경우 예기치 않은 동작이 발생할 수 있습니다. 예를 들어 테이블 복원 중에 쓰기 권한을 삭제할 경우, 기본 `RestoreTableFromBackup` 작업에서, 복원된 데이터를 테이블에 쓸 수 없게 됩니다.  
복원 작업이 완료된 후에는 IAM 역할 정책을 수정하거나 삭제해도 됩니다.  
대상 복원 테이블에 액세스하기 위한 [소스 IP 제한](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip) 관련 IAM 정책에서는 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice) 키를 `false`로 설정하여 해당 제한이 보안 주체가 직접 수행한 요청에만 적용되도록 해야 합니다. 그러지 않으면 복원이 취소됩니다.  
AWS 관리형 키 또는 고객 관리형 키로 백업이 암호화된 경우, 복원이 진행되는 동안 키를 비활성화하거나 삭제하지 마세요. 그렇지 않으면 복원에 실패합니다.  
복원 작업이 완료된 후에는 복원된 테이블에 암호화된 키를 변경하거나 이전 키를 비활성화 또는 삭제할 수 있습니다.