DynamoDB 테이블을 특정 시점으로 복원 - Amazon DynamoDB

DynamoDB 테이블을 특정 시점으로 복원

Amazon DynamoDB의 PITR(특정 시점으로 복구)을 통해 DynamoDB 테이블 데이터를 지속적으로 백업할 수 있습니다. DynamoDB 콘솔이나 AWS Command Line Interface(AWS CLI)를 사용하여 테이블을 특정 시점으로 복원할 수 있습니다. 특정 시점으로 복구 프로세스는 새 테이블로 복원합니다.

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

DynamoDB 테이블을 특정 시점으로 복원(콘솔)

다음은 DynamoDB 콘솔을 사용하여 Music이라는 기존 테이블을 특정 시점으로 복원하는 방법을 보여 주는 예입니다.

참고

이 절차에서는 특정 시점으로 복구를 활성화했다고 가정합니다. Music 테이블에 대해 활성화하려면 백업(Backups) 탭의 특정 시점으로 복구(PITR)(Point-in-time recovery (PITR)) 섹션에서 편집(Edit)을 선택한 다음 특정 시점으로 복구 활성화(Enable point-in-time-recovery) 옆의 확인란을 선택합니다.

테이블을 특정 시점으로 복원하려면
  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/dynamodb/에서 DynamoDB 콘솔을 엽니다.

  2. 콘솔 왼쪽의 탐색 창에서 테이블을 선택합니다.

  3. 테이블 목록에서 Music 테이블을 선택합니다.

  4. Music 테이블에 있는 백업(Backups) 탭의 특정 시점으로 복구(PITR)(Point-in-time recovery (PITR)) 섹션에서 복원(Restore)을 선택합니다.

  5. 새 테이블 이름에 MusicMinutesAgo를 입력합니다.

    참고

    테이블을 동일한 AWS 리전 또는 소스 테이블이 속하는 리전과 다른 리전에 복원할 수 있습니다. 복원된 테이블에 보조 인덱스가 생성되지 않도록 제외할 수도 있습니다. 또한 다른 암호화 모드를 지정할 수 있습니다.

  6. 복원 가능한 시간을 확인하려면 복원 날짜 및 시간을 가장 빠른 시간(Earliest)로 설정합니다. 그런 다음 복원(Restore)을 선택하여 복원 프로세스를 시작합니다.

    복원 중인 테이블은 상태가 복원 중으로 표시됩니다. 복원 프로세스가 완료되면 MusicMinutesAgo 테이블의 상태가 Active로 변경됩니다.

테이블을 특정 시점으로 복원(AWS CLI)

다음은 AWS CLI를 사용하여 Music이라는 기존 테이블을 특정 시점으로 복원하는 방법을 보여 주는 절차입니다.

참고

이 절차에서는 특정 시점으로 복구를 활성화했다고 가정합니다. 다음 명령을 실행하여 Music 테이블에 대해 이 기능을 활성화하세요.

aws dynamodb update-continuous-backups \ --table-name Music \ --point-in-time-recovery-specification PointInTimeRecoveryEnabled=True

테이블을 특정 시점으로 복원하려면
  1. describe-continuous-backups 명령으로 Music 테이블에 대해 특정 시점으로 복구가 활성화되었는지 확인합니다.

    aws dynamodb describe-continuous-backups \ --table-name Music

    연속 백업(테이블 생성 시 자동으로 활성화) 및 특정 시점으로 복구가 활성화되었습니다.

    { "ContinuousBackupsDescription": { "PointInTimeRecoveryDescription": { "PointInTimeRecoveryStatus": "ENABLED", "EarliestRestorableDateTime": 1519257118.0, "LatestRestorableDateTime": 1520018653.01 }, "ContinuousBackupsStatus": "ENABLED" } }
  2. 테이블을 특정 시점으로 복원합니다. 이 경우 Music 테이블은 동일한 AWS 리전의 LatestRestorableDateTime(~5분 전)으로 복원됩니다.

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time
    참고

    특정 시점으로 복원할 수도 있습니다. 그러려면 --restore-date-time 인수를 사용하여 명령을 실행하고 타임스탬프를 지정합니다. 최근 35일 중 원하는 시점을 지정할 수 있습니다. 예를 들어, 다음 명령은 테이블을 EarliestRestorableDateTime으로 복원합니다.

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicEarliestRestorableDateTime \ --no-use-latest-restorable-time \ --restore-date-time 1519257118.0

    원한다면 특정 시점으로 복원할 때 --no-use-latest-restorable-time 인수를 지정할 수 있습니다.

  3. 사용자 지정 테이블 설정을 통해 특정 시점으로 테이블을 복원합니다. 이 경우 Music 테이블은 LatestRestorableDateTime(~5분 전)으로 복원됩니다.

    다음과 같이 복원된 테이블에 다른 암호화 모드를 지정할 수 있습니다.

    참고

    sse-specification-override 파라미터는 CreateTable 명령에 사용된 sse-specification-override 파라미터와 동일한 값을 사용합니다. 자세한 내용은 DynamoDB의 암호화된 테이블 관리을 참조하십시오.

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234

    테이블을 소스 테이블이 속하는 리전과 다른 AWS 리전에 복원할 수 있습니다.

    참고
    • sse-specification-override 파라미터는 교차 리전 복원에는 필수지만 소스 테이블과 동일한 리전으로 복원하는 경우에는 선택 사항입니다.

    • 교차 리전 복원에는 source-table-arn 파라미터를 제공해야 합니다.

    • 명령줄에서 교차 리전 복원을 수행할 때는 기본 AWS 리전을 원하는 대상 리전으로 설정해야 합니다. 자세한 내용은 AWS Command Line Interface 사용 설명서명령줄 옵션을 참조하세요.

    aws dynamodb restore-table-to-point-in-time \ --source-table-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234

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

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --billing-mode-override PAY_PER_REQUEST

    복원된 테이블에 일부 또는 전체 보조 인덱스가 생성되지 않도록 제외할 수 있습니다.

    참고

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

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --global-secondary-index-override '[]'

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

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --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=50,WriteCapacityUnits=50}" \ --sse-specification-override Enabled=true,SSEType=KMS \ --use-latest-restorable-time

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

aws dynamodb describe-table --table-name MusicEarliestRestorableDateTime

복원 중인 테이블은 상태가 생성 중이 되고, 복원 진행 중에 true가 표시됩니다. 복원 프로세스가 완료되면 MusicEarliestRestorableDateTime 테이블의 상태가 Active로 변경됩니다.

중요

복원을 진행하는 동안 IAM 엔터티(예: 사용자, 그룹 또는 역할)에 복원 수행 권한을 부여하는 AWS Identity and Access Management(IAM) 정책을 수정하거나 삭제하지 마세요. 그러면 예기치 않은 동작이 발생할 수 있습니다. 예를 들어 테이블 복원 중에 테이블에 대한 쓰기 권한을 삭제한다고 가정해 보겠습니다. 기본 RestoreTableToPointInTime 작업에서 복원된 데이터를 해당 테이블에 쓸 수 없게 됩니다. 대상 복원 테이블에 액세스하기 위한 소스 IP 제한 관련 IAM 정책은 유사한 문제의 이유가 될 수 있습니다.

복원 작업이 완료되어야 권한을 수정하거나 삭제할 수 있습니다.