S3로 내보내기를 사용하여 테이블을 마이그레이션하고 S3에서 가져오기 - Amazon DynamoDB

S3로 내보내기를 사용하여 테이블을 마이그레이션하고 S3에서 가져오기

사전 조건 

요금 정보

AWS는 PITR에 대한 요금을 테이블 크기 및 PITR이 활성화된 기간을 기준으로 부과합니다. 내보내기 외에 PITR이 필요하지 않은 경우 내보내기가 끝난 후 PITR을 설정 해제할 수 있습니다. AWS에서는 또한 S3에 대한 요청, 내보낸 데이터를 S3에 저장, 가져오기에 대해서도 가져온 데이터의 압축되지 않은 크기 기준으로 요금을 부과합니다.

DynamoDB 요금에 대한 자세한 내용은 DynamoDB 요금을 참조하세요.

참고

S3에서 DynamoDB로 가져올 때는 개체 크기 및 수에 제한이 있습니다. 자세한 내용은 가져오기 할당량 단원을 참조하십시오.

1단계: Amazon S3로 테이블 내보내기 요청

  1. AWS Management Console에 로그인하고 DynamoDB 콘솔을 엽니다.

  2. 콘솔 왼쪽의 탐색 창에서 S3로 내보내기(Exports to S3)를 선택합니다.

  3. 소스 테이블과 대상 S3 버킷을 선택합니다. s3://bucketname/prefix 형식을 사용하여 대상 계정 버킷의 URL을 입력합니다. 접두사는 대상 버킷을 정리하는 데 도움이 되는 선택적 폴더입니다.

  4. 전체 내보내기를 선택합니다. 전체 내보내기는 지정한 시점의 테이블의 전체 테이블 스냅샷을 출력합니다.

    1. 최신 전체 테이블 스냅샷을 내보내려면 현재 시간을 선택합니다.

    2. 내보낸 파일 형식에서 DynamoDB JSON과 Amazon Ion 중에 선택합니다. 기본 옵션은 DynamoDB JSON입니다.

  5. 내보내기 버튼을 클릭하여 내보내기를 시작합니다.

  6. 소규모 테이블 내보내기는 몇 분 안에 완료되지만, 테라바이트 범위의 테이블은 1시간 이상 걸릴 수 있습니다.

2단계: Amazon S3에서 테이블 가져오기 요청

  1. AWS Management Console에 로그인하고 DynamoDB 콘솔을 엽니다.

  2. 콘솔 왼쪽의 탐색 창에서 S3에서 가져오기(Import from S3)를 선택합니다.

  3. 표시되는 페이지에서 S3에서 가져오기(Import from S3)를 선택합니다.

  4. Amazon S3 소스 URL을 입력합니다. S3 찾아보기 버튼(s3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/Data/)을 사용하여 찾을 수도 있습니다.

  5. S3 버킷 소유자(S3 bucket owner)인지 여부를 지정합니다.

  6. 가져오기 파일 압축에서 내보내기와 일치하는 GZIP을 선택합니다.

  7. 가져오기 파일 형식에서 내보내기와 일치하는 DynamoDB JSON을 선택합니다.

  8. 다음 버튼을 선택하고 데이터를 저장하기 위해 생성될 새 테이블에 대한 옵션을 선택합니다.

  9. 다음(Next)을 다시 선택하여 가져오기 옵션을 검토하고 가져오기(Import)를 클릭하여 가져오기 작업을 시작합니다. 먼저 생성 중 상태로 테이블에 나열된 새 테이블을 볼 수 있습니다. 이 시간 동안 테이블에 액세스할 수 없습니다.

  10. 가져오기가 완료되면 상태가 활성으로 표시되고 테이블 사용을 시작할 수 있습니다.

  11. 소규모 가져오기는 몇 분 안에 완료되지만, 테라바이트 범위의 테이블은 1시간 이상 걸릴 수 있습니다.

마이그레이션 중 테이블 동기화 유지

마이그레이션하는 동안 소스 테이블에 대한 쓰기 작업을 일시 중지할 수 있는 경우 마이그레이션 후 소스와 출력이 정확히 일치해야 합니다. 쓰기 작업을 일시 중지할 수 없는 경우 일반적으로 마이그레이션 후 대상 테이블이 소스보다 약간 뒤처집니다. 소스 테이블을 따라잡으려면 스트리밍(DynamoDB Streams 또는 DynamoDB용 Kinesis Data Streams)을 사용하여 백업 또는 내보내기 이후 소스 테이블에서 발생한 쓰기를 재생할 수 있습니다.

소스 테이블을 S3로 내보낸 타임스탬프 이전에 스트림 레코드 읽기를 시작해야 합니다. 예를 들어, S3로 내보내기가 오후 2시에 발생하고 대상 테이블로의 가져오기가 오후 11시에 완료되었다면 오후 1시 58분에 DynamoDB 스트림 읽기를 시작해야 합니다. 변경 데이터 캡처를 위한 스트리밍 옵션 테이블에는 각 스트리밍 모델의 기능이 간략하게 나와 있습니다.

Lambda와 함께 DynamoDB Streams를 사용하면 소스 및 대상 DynamoDB 테이블 간에 데이터를 간편하게 동기화할 수 있습니다. Lambda 함수를 사용하여 대상 테이블의 각 쓰기를 재생할 수 있습니다.

참고

항목은 DynamoDB Streams에 24시간 동안 보관되므로, 해당 기간 내에 백업 및 복원 또는 내보내기와 가져오기를 완료할 계획을 세워야 합니다.