Amazon Keyspaces 테이블을 특정 시점으로 복원하려면 - Amazon Keyspaces(Apache Cassandra용)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Keyspaces 테이블을 특정 시점으로 복원하려면

Amazon Keyspaces(Apache Cassandra용) point-in-time 복구 (PITR) 를 사용하면 최근 35일 중 어느 특정 시점으로든 Amazon Keyspaces 테이블 데이터를 복원할 수 있습니다. 이 자습서의 첫 번째 부분에서는 Amazon Keyspaces 콘솔을 사용하여 테이블을 특정 시점으로 복원하는 방법을 보여 줍니다.AWS Command Line Interface(AWS CLI), 카산드라 쿼리 언어 (CQL). 두 번째 부분에서는 다음을 사용하여 삭제된 테이블을 복원하는 방법을 보여 줍니다.AWS CLI그리고 CQL.

시작하기 전에

Amazon Keyspaces 테이블을 아직 복원하지 않았다면 이를 구성해야 합니다. InAWS Identity and Access Management(IAM)AWS관리형 정책AmazonKeyspacesFullAccess에는 Amazon Keyspaces 테이블을 복원할 수 있는 권한이 포함되어 있습니다. 최소 필수 권한으로 정책을 구현하는 자세한 단계는 단원을 참조하십시오.테이블 복원에 필요한 권한.

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

다음 예제에서는 Amazon Keyspaces 콘솔을 사용하여 이라는 기존 테이블을 복원하는 방법을 보여줍니다.mytable특정 시점으로 이동합니다.

참고

이 절차에서는 활성화되었다고 가정합니다. point-in-time 복구. 에 대해 PITR을 활성화하려면mytable표, 다음 단계를 따릅니다.콘솔로 PITR 활성화.

  1. 에 로그인합니다.AWS Management Console을 클릭하고 에서 Amazon Keyspaces 콘솔을 엽니다.https://console.aws.amazon.com/keyspaces/home.

  2. 콘솔 왼쪽의 탐색 창에서 [Tables]를 선택합니다.

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

  4. 백업의 탭mytable테이블,특정 시점으로 복구섹션, 선택복원.

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

  6. 복원 작업의 특정 시점을 정의하려면 다음 두 가지 옵션 중에서 선택할 수 있습니다.

    • 사전 구성된 항목 선택가장 이른시간.

    • Select날짜 및 시간 지정를 클릭하고 새 테이블을 복원하려는 날짜와 시간을 입력합니다.

    참고

    내의 어느 특정 시점으로든 복원할 수 있습니다.가장 이른시간 및 현재 시간 Amazon Keyspaces는 선택한 날짜 및 시간 (day:minute:minute:second) 을 기준으로 테이블 데이터를 해당 상태로 복원합니다.

  7. 선택복원를 눌러 복원 프로세스를 시작합니다.

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

    중요

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

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

를 사용하여 테이블을 특정 시점으로 복원하려면AWS CLI

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

  1. 첫 번째 단계에서는 라는 간단한 테이블을 생성합니다.myTablePITR이 활성화되어 있습니다. 가독성을 위해 명령이 별도의 줄로 나뉘어 있습니다.

    aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' --point-in-time-recovery 'status=ENABLED'
  2. 새 테이블의 등록 정보를 확인하고earliestRestorableTimestampPITR의 경우.

    aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'

    이 명령의 출력은 다음을 반환합니다.

    { "keyspaceName": "myKeyspace", "tableName": "myTable", "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/myKeyspace/table/myTable", "creationTimestamp": "2022-06-20T14:34:57.049000-07:00", "status": "ACTIVE", "schemaDefinition": { "allColumns": [ { "name": "id", "type": "int" }, { "name": "date", "type": "timestamp" }, { "name": "name", "type": "text" } ], "partitionKeys": [ { "name": "id" } ], "clusteringKeys": [], "staticColumns": [] }, "capacitySpecification": { "throughputMode": "PAY_PER_REQUEST", "lastUpdateToPayPerRequestTimestamp": "2022-06-20T14:34:57.049000-07:00" }, "encryptionSpecification": { "type": "AWS_OWNED_KMS_KEY" }, "pointInTimeRecovery": { "status": "ENABLED", "earliestRestorableTimestamp": "2022-06-20T14:35:13.693000-07:00" }, "defaultTimeToLive": 0, "comment": { "message": "" } }

    활성 테이블을 임의의 테이블로 복원할 수 있습니다. point-in-time 사이earliestRestorableTimestamp현재 시간을 1초 간격으로 표시합니다. 현재 시간이 기본값입니다.

  3. 테이블을 특정 시점으로 복원하려면restore_timestampISO 8601 형식입니다. 최근 35일 중 1초 간격으로 원하는 시점을 선택할 수 있습니다. 예를 들어, 다음 명령은 테이블을 EarliestRestorableDateTime으로 복원합니다.

    aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored' --restore-timestamp "2022-06-20 21:35:14.693"

    이 명령의 출력은 복원된 테이블의 ARN을 반환합니다.

    { "restoredTableARN": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/myKeyspace/table/myTable_restored" }

    테이블을 현재 시간으로 복원하려면restore-timestamp.

    aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored1'"
중요

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

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

CQL을 사용하여 테이블을 특정 시점으로 복원하려면

다음 절차는 CQL을 사용하여 이라는 기존 테이블을 복원하는 방법을 보여줍니다.mytable특정 시점으로 이동합니다.

참고

이 절차에서는 활성화되었다고 가정합니다. point-in-time 복구. 테이블에서 PITR을 활성화하려면 단원의 단계를 따릅니다.CQL을 사용하여 PITR 활성화.

  1. 활성 테이블을 다음 테이블로 복원할 수 있습니다. point-in-time 사이earliest_restorable_timestamp현재 시간을 표시합니다. 현재 시간이 기본값입니다.

    이를 확인하려면 point-in-time 에 대해 복구가 활성화되었습니다.mytable테이블, 쿼리system_schema_mcs.tables높일 수 있습니다.

    SELECT custom_properties FROM system_schema_mcs.tables WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';

    다음 샘플 출력에서 보듯이 특정 시점으로 복구가 활성화됩니다.

    custom_properties ----------------- { ..., "point_in_time_recovery": { "earliest_restorable_timestamp":"2020-06-30T19:19:21.175Z" "status":"enabled" } }
  2. 테이블을 특정 시점으로 복원합니다.restore_timestampISO 8601 형식입니다. 이 경우,mytable테이블이 현재 시간으로 복원됩니다. 를 생략할 수 있습니다.WITH restore_timestamp = ...절. 절이 없으면 현재 타임스탬프가 사용됩니다.

    RESTORE TABLE mykeyspace.mytable_restored FROM TABLE mykeyspace.mytable;

    특정 시점으로 복원할 수도 있습니다. 최근 35일 중 원하는 시점을 지정할 수 있습니다. 예를 들어, 다음 명령은 테이블을 EarliestRestorableDateTime으로 복원합니다.

    RESTORE TABLE mykeyspace.mytable_restored FROM TABLE mykeyspace.mytable WITH restore_timestamp = '2020-06-30T19:19:21.175Z';

    전체 구문 설명은 단원을 참조하세요.복원 테이블언어 참조에 있습니다.

테이블 복원이 성공했는지 확인하려면 다음을 쿼리합니다.system_schema_mcs.tables를 눌러 테이블 상태를 확인합니다.

SELECT status FROM system_schema_mcs.tables WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable_restored'

쿼리에는 다음 출력이 표시됩니다.

status ------ RESTORING

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

중요

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

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

삭제된 테이블 복원AWS CLI

다음 절차는 이 방법을 보여 줍니다.AWS CLI라는 삭제된 테이블을 복원하려면myTable삭제 시점까지.

참고

이 절차에서는 삭제된 테이블에서 PITR이 활성화되었다고 가정합니다.

  1. 이전 자습서에서 생성한 테이블을 삭제합니다.

    aws keyspaces delete-table --keyspace-name 'myKeyspace' --table-name 'myTable'
  2. 다음 명령을 사용하여 삭제된 테이블을 삭제 시점으로 복원합니다.

    aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored2'

    이 명령의 출력은 복원된 테이블의 ARN을 반환합니다.

    { "restoredTableARN": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/myKeyspace/table/myTable_restored2" }

CQL을 사용하여 삭제된 테이블 복원

다음 절차는 CQL을 사용하여 이라는 삭제된 테이블을 복원하는 방법을 보여줍니다.mytable삭제 시점까지.

참고

이 절차에서는 삭제된 테이블에서 PITR이 활성화되었다고 가정합니다.

  1. 이를 확인하려면 point-in-time 삭제된 테이블에 대해 복구가 활성화되었는지 여부, 시스템 테이블을 쿼리하십시오. 다음과 같은 테이블만 point-in-time 복구 활성화가 표시됩니다.

    SELECT custom_properties FROM system_schema_mcs.tables_history WHERE keyspace_name = 'mykeyspace' AND table_name = 'my_table';

    쿼리에는 다음 출력이 표시됩니다.

    custom_properties ------------------ { ..., "point_in_time_recovery":{ "restorable_until_time":"2020-08-04T00:48:58.381Z", "status":"enabled" } }
  2. 다음 샘플 문을 사용하여 테이블을 삭제 시점으로 복원합니다.

    RESTORE TABLE mykeyspace.mytable_restored FROM TABLE mykeyspace.mytable;