

# DynamoDB를 사용하여 DynamoDB 테이블 백업 및 복원: 작동 방식
<a name="CreateBackup"></a>

DynamoDB 온디맨드 백업 기능을 사용하여 Amazon DynamoDB 테이블의 전체 백업을 생성할 수 있습니다. 이 기능은 AWS 백업에서 독립적으로 사용할 수 있습니다. 이 섹션에서는 DynamoDB 백업 및 복원 프로세스를 수행하는 중에 발생하는 상황에 대한 개요를 제공합니다.

## 백업
<a name="CreateBackup_HowItWorks"></a>

DynamoDB에서 온디맨드 백업을 생성하는 경우, 해당 요청의 타임 마커가 카탈로그화됩니다. 백업은 마지막 전체 테이블 스냅샷에 대한 요청 시간까지 모든 변경 내용을 적용하여 비동기식으로 생성됩니다. DynamoDB 백업 요청은 즉시 처리되며 몇 분 내에 복원할 수 있는 상태가 됩니다.

**참고**  
온디맨드 백업을 생성할 때마다 전체 테이블 데이터가 백업됩니다. 수행할 수 있는 온디맨드 백업 수에는 제한이 없습니다.

DynamoDB의 모든 백업은 테이블의 프로비저닝된 처리량을 사용하지 않고 작동합니다.

DynamoDB 백업은 항목에 걸쳐 인과 관계의 일관성을 보장하지는 않지만, 백업의 업데이트 간 간격은 보통 1초 미만입니다.

백업이 진행 중인 동안에는 다음 작업을 수행할 수 없습니다.
+ 백업 작업을 일시 중지하거나 취소합니다.
+ 백업의 원본 테이블을 삭제합니다.
+ 테이블에 대한 백업이 진행 중인 경우 해당 테이블에서 백업을 비활성화합니다.

예약 스크립트 및 정리 작업을 생성하지 않으려면 AWS Backup을 사용하여 DynamoDB 테이블에 대한 일정 및 보존 정책을 사용하여 백업 계획을 생성할 수 있습니다. AWS Backup은 백업을 실행하고 만료되면 삭제합니다. 자세한 내용은 [AWS Backup 개발자 안내서](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html)를 참조하세요.

AWS Backup 외에도 AWS Lambda 기능을 사용하여 정기적인 백업이나 향후 백업을 예약할 수 있습니다. 자세한 내용은 블로그 게시물 [Amazon DynamoDB 온디맨드 백업 예약을 위한 서버리스 솔루션](https://aws.amazon.com/blogs/database/a-serverless-solution-to-schedule-your-amazon-dynamodb-on-demand-backup/)을 참조하세요.

콘솔을 사용하는 경우 AWS Backup을 사용하여 생성된 모든 백업은 **Backup type(백업 유형)**이 `AWS`로 설정되어 **Backups(백업)** 탭에 나열됩니다.

**참고**  
**Backup type(백업 유형)**이 AWS로 표시된 백업은 DynamoDB 콘솔을 사용하여 삭제할 수 없습니다. 이러한 백업을 관리하려면 AWS Backup 콘솔을 사용합니다.

백업을 수행하는 방법은 [DynamoDB 테이블 백업](Backup.Tutorial.md) 단원을 참조하십시오.

## 복원
<a name="CreateBackup_HowItWorks-restore"></a>

테이블의 프로비저닝된 처리량을 사용하지 않고 해당 테이블을 복원합니다. DynamoDB 백업에서 전체 테이블 복원을 수행하거나 대상 테이블 설정을 구성할 수 있습니다. 복원을 수행할 때 다음 테이블 설정을 변경할 수 있습니다.
+ 글로벌 보조 인덱스(GSI)
+ 로컬 보조 인덱스(LSI)
+ 결제 모드
+ 프로비저닝된 읽기 및 쓰기 용량
+ 암호화 설정

**중요**  
전체 테이블 복원을 수행할 때 대상 테이블은 백업이 요청된 시점에 기록된 대로, 원본 테이블과 동일하게 프로비저닝된 읽기 용량 단위 및 쓰기 용량 단위로 설정됩니다. 복원 프로세스는 로컬 보조 인덱스와 글로벌 보조 인덱스도 복원합니다.

또한 복원된 테이블이 백업이 속하는 리전과 다른 리전에 생성되도록 AWS 리전 간에 DynamoDB 테이블 데이터를 복원할 수 있습니다. AWS 커머셜 리전, AWS 중국 리전 및 AWS GovCloud(미국) 리전 간에 교차 리전 복원을 수행할 수 있습니다. 소스 리전에서 전송한 데이터와 대상 리전의 새 테이블로 복원하는 데 사용된 리소스에 대해서만 요금을 지불하면 됩니다.

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

복원된 테이블에서 다음을 수동으로 설정해야 합니다.
+ Auto Scaling 정책
+ AWS Identity and Access Management (IAM) 정책
+ Amazon CloudWatch 지표 및 경보
+ 태그
+ 스트림 설정
+ Time To Live(TTL) 설정
+ 삭제 방지 설정
+ 시점 복구(PITR) 설정

전체 테이블 데이터만 백업에서 새 테이블로 복원할 수 있습니다. 복원된 테이블은 활성 상태가 된 이후에만 쓸 수 있습니다.

**참고**  
 복원 작업 중에는 기존 테이블을 덮어쓸 수 없습니다.

복원 시간은 테이블 구성(예: 테이블 크기 및 기본 파티션 수) 및 기타 관련 변수와 직접 관련이 있습니다. 재해 복구를 계획할 때 가장 좋은 방법은 평균 복원 완료 시간을 정기적으로 기록하고 이러한 시간이 전체 복구 시간 목표에 어떤 영향을 미치는지 설정하는 것입니다.

복원을 수행하는 방법은 [백업에서 DynamoDB 테이블 복원](Restore.Tutorial.md) 단원을 참조하십시오.

액세스 제어에 IAM 정책을 사용할 수 있습니다. 자세한 내용은 [DynamoDB 백업 및 복원에 IAM 사용](backuprestore_IAM.md) 섹션을 참조하세요.

모든 백업 및 복원 콘솔 작업과 API 작업이 로깅, 연속 모니터링 및 감사를 위해 AWS CloudTrail에 캡처되고 기록됩니다.