

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

# Amazon Keyspaces에서 백업에서 지정된 시점으로 테이블 복원
<a name="restoretabletopointintime"></a>

다음 섹션에서는 기존 Amazon Keyspaces 테이블을 지정된 시점으로 복원하는 방법을 설명합니다.

**참고**  
이 절차에서는 사용 중인 테이블이 시점 복구로 구성되었다고 가정합니다. 테이블에 대해 PITR을 활성화하려면 [Amazon Keyspaces의 테이블에 대한 PITR 구성](configure_PITR.md) 섹션을 참조하세요.

**중요**  
 복원이 진행되는 동안에는 IAM 보안 주체(예: 사용자, 그룹 또는 역할)에게 복원을 수행할 수 있는 권한을 부여하는 AWS Identity and Access Management (IAM) 정책을 수정하거나 삭제하지 마십시오. 그러면 예기치 않은 동작이 발생할 수 있습니다. 예를 들어 해당 테이블이 복원되는 동안 테이블에 대한 쓰기 권한을 제거하면 기본 `RestoreTableToPointInTime` 작업은 복원된 데이터를 테이블에 쓸 수 없습니다.  
복원 작업이 완료되어야 권한을 수정하거나 삭제할 수 있습니다.

------
#### [ Console ]

**콘솔을 사용하여 테이블을 특정 시점으로 복원**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) Amazon Keyspaces 콘솔을 엽니다.

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

1. 테이블 목록에서 복원할 테이블을 선택합니다.

1. 테이블에 있는 **백업** 탭의 **시점 복구** 섹션에서 **복원**을 선택합니다.

1. 새 테이블 이름에 복원된 테이블의 새 이름을 입력합니다(예: **mytable\$1restored**).

1. 복원 작업의 시점을 정의하려면 다음 두 옵션 중에서 선택할 수 있습니다.
   + 사전 구성된 **가장 이른** 시간을 선택합니다.
   + **날짜 및 시간 지정**을 선택하고 새 테이블을 복원하려는 날짜와 시간을 입력합니다.
**참고**  
**가장 이른** 시간과 현재 시간 내 어느 특정 시점으로든 복원할 수 있습니다. Amazon Keyspaces는 테이블 데이터를 선택한 날짜와 시간(요일:시:분:초)을 기준으로 한 상태로 복원합니다.

1. **복원**을 선택하여 복원 프로세스를 시작합니다.

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

------
#### [ Cassandra Query Language (CQL) ]

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

1. 활성 테이블을 `earliest_restorable_timestamp`와 현재 시간 사이의 원하는 시점으로 복원할 수 있습니다. 현재 시간이 기본값입니다.

   테이블에 대해 시점 복구가 활성화되어 있는지 확인하려면 이 예제와 같이 `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"
     }
   }
   ```

1. 
   + 테이블을 현재 시간으로 복원합니다. `WITH restore_timestamp = ...` 절을 생략하면 현재 타임스탬프가 사용됩니다.

     ```
     RESTORE TABLE mykeyspace.mytable_restored
     FROM TABLE mykeyspace.mytable;
     ```
   + ISO 8601 형식의 `restore_timestamp`로 정의된 특정 시점으로 복원할 수도 있습니다. 최근 35일 중 원하는 시점을 지정할 수 있습니다. 예를 들어, 다음 명령은 테이블을 `EarliestRestorableDateTime`으로 복원합니다.

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

     전체 구문 설명은 언어 참조의 [RESTORE TABLE](cql.ddl.table.md#cql.ddl.table.restore) 섹션을 참조하세요.

1. 테이블 복원이 성공했는지 확인하려면 `system_schema_mcs.tables`를 쿼리하여 테이블 상태를 확인합니다.

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

   쿼리는 다음 출력을 보여 줍니다.

   ```
   status
   ------
   RESTORING
   ```

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

------
#### [ CLI ]

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

1. PITR이 활성화된 `myTable`이라는 간단한 테이블을 만듭니다. 가독성을 위해 명령을 별도의 줄로 나누었습니다.

   ```
   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'
   ```

1. 새 테이블의 속성을 확인하고 PITR에 대한 `earliestRestorableTimestamp`를 검토합니다.

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

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

   ```
   {
       "keyspaceName": "myKeyspace",
       "tableName": "myTable",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/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": ""
       }
   }
   ```

1. 
   + 테이블을 특정 시점으로 복원하려면 ISO 8601 형식으로 `restore_timestamp`를 지정합니다. 최근 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:111122223333:/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'"
     ```

------