Amazon DynamoDB 테이블의 백업을 다른 리전으로 복원하고 싶습니다.
해결 방법
DynamoDB 테이블을 다른 리전으로 복원하려면 다음의 두 가지 방법 중 하나를 사용할 수 있습니다.
DynamoDB를 사용하여 DynamoDB 테이블을 다른 리전으로 복원
- DynamoDB 콘솔을 엽니다.
- 탐색 창에서 **백업(Backups)**을 선택합니다.
- 표시된 목록에서 테이블을 복원할 백업을 선택합니다.
- **복원(Restore)**을 선택합니다.
- **복원된 테이블 이름(Name of restored table)**에 새로운 테이블 이름을 입력합니다.
- **보조 인덱스(Secondary indexes)**에서 원하는 옵션을 선택합니다.
- **대상 AWS 리전(Destination AWS Region)**에서 **교차 리전(Cross-Region)**을 선택합니다.
- **대상 AWS 리전 선택(Select the destination AWS Region)**에서 원하는 리전을 선택합니다.
- **암호화 키 관리(Encryption key management)**에서 원하는 옵션을 선택합니다.
- **복원(Restore)**을 선택합니다.
AWS Glue를 사용하여 DynamoDB 테이블을 다른 리전으로 복원
AWS Glue 작업을 사용하여 DynamoDB 테이블을 다른 리전으로 복원할 수 있습니다. AWS Glue는 복원 절차가 더욱 유연합니다. 모든 속성 또는 필드를 새로운 리전의 대상 테이블로 복원하고 싶지 않은 경우 이 방법을 선택할 수 있습니다. 이 방식은 Amazon Simple Storage Service(S3)로 내보낸 테이블에만 효과가 있습니다.
1. S3로 내보내기(Export to S3) 기능을 사용하여 DynamoDB 테이블을 Amazon S3로 내보낸 후에 AWS Glue 작업을 생성합니다. 스크립트(Script) 탭에서 다음 정보를 지정합니다.
datasource0 = glueContext.create_dynamic_frame.from_options(
connection_type="dynamodb",
connection_options={
"dynamodb.export": "ddb",
"dynamodb.tableArn": "arn:aws:dynamodb:source-region:account-number:table/TableName",
"dynamodb.unnestDDBJson": True,
"dynamodb.s3.bucket": "example-bucket",
"dynamodb.s3.prefix": "dynamodb",
"dynamodb.s3.bucketOwner": "account-number",
}
)
참고: 변환 노드 ApplyMapping을 사용하고 대상 테이블에 있는 필드를 지정해야 합니다. 이 설정은 입력값을 기준으로 PySpark 코드를 자동 생성합니다.
예시
applymapping1 = ApplyMapping.apply(frame = datasource0, mappings = [("resource_id", "string", "resource_id", "string")], transformation_ctx = "applymapping1")
2. 대상 리전의 대상 테이블로 직접 작성할 싱크 작업을 지정합니다.
예시
glueContext.write_dynamic_frame_from_options (frame = MappedFrame, connection_type = "dynamodb", connection_options = { "dynamodb.region": "example-region", "dynamodb.output.tableName": "example_table", "dynamodb.throughput.write.percent": "1.0" })
3. AWS Glue 콘솔에서 작업을 실행하여 현재 리전에서 대상 리전으로 데이터를 로드합니다.
관련 정보
백업에서 DynamoDB 테이블 복원
DynamoDB의 특정 시점으로 복구
AWS Glue 콘솔에서 작업