Amazon Keyspaces에서 point-in-time 복구가 작동하는 방식 - Amazon Keyspaces(Apache Cassandra용)

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

Amazon Keyspaces에서 point-in-time 복구가 작동하는 방식

이 섹션에서는 Amazon Keyspaces point-in-time 복구 (PITR) 작동 방식에 대한 개요를 제공합니다. 요금에 대한 자세한 내용은 Amazon Keyspaces(Apache Cassandra용) 요금을 참조하세요.

point-in-time 복구 활성화 (PITR)

콘솔을 사용하여 PITR을 사용하거나 프로그래밍 방식으로 활성화할 수 있습니다.

콘솔로 PITR 활성화

새 테이블의 PITR 설정은 사용자 지정 설정 옵션에서 관리할 수 있습니다. 기본적으로 PITR은 콘솔을 통해 만든 새 테이블에서 활성화됩니다.

기존 테이블에 PITR을 사용하려면 다음 단계를 완료합니다.

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

  2. 탐색 창에서 테이블을 선택하고 편집하려는 테이블을 선택합니다.

  3. 백업 탭에서 편집을 선택합니다.

  4. point-in-time 복구 설정 편집 섹션에서 P oint-in-time 복구 활성화를 선택합니다.

다음 단계에 따라 언제든지 테이블에서 PITR을 비활성화할 수 있습니다.

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

  2. 탐색 창에서 테이블을 선택하고 편집하려는 테이블을 선택합니다.

  3. 백업 탭에서 편집을 선택합니다.

  4. point-in-time 복구 설정 편집 섹션에서 P oint-in-time 복구 활성화 확인란의 선택을 취소합니다.

중요

PITR을 비활성화하면 35일 이내에 테이블에서 PITR을 다시 활성화하더라도 백업 기록이 즉시 삭제됩니다.

콘솔을 사용하여 테이블을 복원하는 방법은 테이블을 특정 시점으로 복원(콘솔) 섹션을 참조하세요.

AWS CLI를 사용하여 PITR 활성화

UpdateTable API를 사용하여 테이블의 PITR 설정을 관리할 수 있습니다.

AWS CLI를 사용하여 새 테이블을 생성하는 경우 새 테이블을 생성할 때 PITR을 명시적으로 활성화해야 합니다.

새 테이블을 생성할 때 PITR을 활성화하려면 다음 AWS CLI 명령을 예로 사용할 수 있습니다. 가독성을 높이기 위해 명령을 별도의 줄로 나누었습니다.

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'
참고

point-in-time 복구 값을 지정하지 않은 경우 기본적으로 point-in-time 복구가 비활성화됩니다.

다음 AWS CLI 명령을 사용하여 테이블의 point-in-time 복구 설정을 확인할 수 있습니다.

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

AWS CLI를 사용하여 기존 테이블에 대해 PITR을 활성화하려면 다음 명령을 실행합니다.

aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --point-in-time-recovery 'status=ENABLED'

기존 테이블에서 PITR을 비활성화하려면 다음 AWS CLI 명령을 실행합니다.

aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --point-in-time-recovery 'status=DISABLED'
중요

PITR을 비활성화하면 35일 이내에 테이블에서 PITR을 다시 활성화하더라도 백업 기록이 즉시 삭제됩니다.

CQL을 사용하여 PITR 활성화

point_in_time_recovery 사용자 지정 속성을 사용하여 테이블의 PITR 설정을 관리할 수 있습니다.

CQL을 사용하여 새 테이블을 생성하는 경우 새 테이블을 생성할 때 PITR을 명시적으로 활성화해야 합니다.

새 테이블을 생성할 때 PITR을 활성화하려면 다음 CQL 명령을 예로 사용할 수 있습니다.

CREATE TABLE "my_keyspace1"."my_table1"( "id" int, "name" ascii, "date" timestamp, PRIMARY KEY("id")) WITH CUSTOM_PROPERTIES = { 'capacity_mode':{'throughput_mode':'PAY_PER_REQUEST'}, 'point_in_time_recovery':{'status':'enabled'} }
참고

point-in-time 복구 사용자 지정 속성을 지정하지 않은 경우 기본적으로 point-in-time 복구가 비활성화됩니다.

CQL을 사용하여 기존 테이블에 대해 PITR을 활성화하려면 다음 CQL 명령을 실행합니다.

ALTER TABLE mykeyspace.mytable WITH custom_properties = {'point_in_time_recovery': {'status': 'enabled'}}

기존 테이블에서 PITR을 비활성화하려면 다음 CQL 명령을 실행합니다.

ALTER TABLE mykeyspace.mytable WITH custom_properties = {'point_in_time_recovery': {'status': 'disabled'}}
중요

PITR을 비활성화하면 35일 이내에 테이블에서 PITR을 다시 활성화하더라도 백업 기록이 즉시 삭제됩니다.

CQL 언어 참조에 대한 자세한 내용은 CREATE TABLEALTER TABLE 섹션을 참조하세요. CQL을 사용하여 테이블을 복원하는 방법은 테이블을 CQL을 사용하여 특정 시점으로 복원 섹션을 참조하세요.

테이블 복원에 필요한 권한

테이블을 성공적으로 복원하려면 IAM 사용자 또는 역할에 다음과 같은 최소 권한이 필요합니다.

  • cassandra:Restore - 대상 테이블을 복원하려면 복원 작업이 필요합니다.

  • cassandra:Select - 소스 테이블에서 읽으려면 선택 작업이 필요합니다.

  • cassandra:TagResource - 태그 작업은 선택 사항이며 복원 작업에서 태그를 추가하는 경우에만 필요합니다.

다음은 keyspace mykeyspace에서 테이블을 복원하는 데 필요한 최소 권한을 사용자에게 부여하는 정책의 예입니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "cassandra:Restore", "cassandra:Select" ], "Resource":[ "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/*", "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*" ] } ] }

선택한 다른 기능에 따라 테이블을 복원하기 위한 추가 권한이 필요할 수 있습니다. 예를 들어 소스 테이블을 고객 관리형 키로 암호화한 경우 Amazon Keyspaces가 소스 테이블의 고객 관리형 키에 액세스할 수 있는 권한을 가져야 테이블을 성공적으로 복원할 수 있습니다. 자세한 설명은 암호화된 테이블의 PITR 복원 섹션을 참조하세요.

IAM 정책을 조건 키와 함께 사용하여 들어오는 트래픽을 특정 소스로 제한하는 경우 Amazon Keyspaces가 보안 주체를 대신하여 복원 작업을 수행할 권한이 있는지 확인해야 합니다. 정책이 수신 트래픽을 다음 중 하나로 제한하는 경우 IAM 정책에 aws:ViaAWSService 조건 키를 추가해야 합니다.

  • aws:SourceVpce의 VPC 엔드포인트

  • aws:SourceIp의 IP 범위

  • aws:SourceVpc의 VPC

aws:ViaAWSService 조건 키는 AWS 서비스가 주체의 보안 인증을 사용하여 요청할 때 액세스를 허용합니다. 자세한 내용은 IAM 사용 설명서IAM JSON 정책 요소: 조건 키를 참조하세요.

다음은 소스 트래픽을 특정 IP 주소로 제한하고 Amazon Keyspaces가 보안 주체를 대신하여 테이블을 복원하도록 허용하는 정책의 예입니다.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"CassandraAccessForCustomIp", "Effect":"Allow", "Action":"cassandra:*", "Resource":"*", "Condition":{ "Bool":{ "aws:ViaAWSService":"false" }, "ForAnyValue:IpAddress":{ "aws:SourceIp":[ "123.45.167.89" ] } } }, { "Sid":"CassandraAccessForAwsService", "Effect":"Allow", "Action":"cassandra:*", "Resource":"*", "Condition":{ "Bool":{ "aws:ViaAWSService":"true" } } } ] }

aws:ViaAWSService 글로벌 조건 키를 사용하는 예제 정책은 VPC 엔드포인트 정책 및 아마존 키스페이스 point-in-time 복구 (PITR) 섹션을 참조하세요.

PITR 연속 백업 기간

Amazon Keyspaces PITR은 두 개의 타임스탬프를 사용하여 테이블에 대해 복원 가능한 백업을 사용할 수 있는 기간을 유지합니다.

  • 가장 빠른 복원 가능 시간 - 복원 가능한 가장 빠른 백업 시간을 표시합니다. 복원 가능한 가장 빠른 백업은 최대 35일 또는 PITR이 활성화된 날짜 중 더 최근 날짜로 거슬러 올라갑니다. 최대 백업 기간인 35일은 수정할 수 없습니다.

  • 현재 시간 - 복원 가능한 최신 백업의 타임스탬프는 현재 시간입니다. 복원 중에 타임스탬프가 제공되지 않은 경우 현재 시간이 사용됩니다.

PITR을 사용해서 EarliestRestorableDateTimeCurrentTime 사이의 시점으로 복원할 수 있습니다. 테이블 데이터는 PITR이 활성화된 시점으로만 복원할 수 있습니다.

PITR을 비활성화했다가 나중에 다시 활성화하면 사용 가능한 첫 번째 백업의 시작 시간이 PITR이 다시 활성화된 시간으로 재설정됩니다. 즉 PITR을 비활성화하면 백업 기록이 지워집니다.

참고

테이블에 대한 데이터 정의 언어(DDL) 작업(예: 스키마 변경)은 비동기적으로 수행됩니다. 복원된 테이블 데이터에서는 완료된 작업만 볼 수 있지만 복원 당시 진행 중이었다면 소스 테이블에 추가 작업이 표시될 수 있습니다. DDL 문의 목록은 Amazon Keyspaces의 DDL 문(데이터 정의 언어) 섹션을 참조하세요.

복원하기 위해 테이블을 활성화할 필요는 없습니다. 삭제된 테이블에서 PITR이 활성화되어 있고 백업 기간 내에(또는 지난 35일 이내) 삭제가 발생한 경우 삭제된 테이블을 복원할 수도 있습니다.

참고

이전에 삭제한 테이블과 동일한 정규화된 이름(예: mykeyspace.mytable)으로 새 테이블을 생성하는 경우 삭제된 테이블을 더 이상 복원할 수 없습니다. 콘솔에서 이를 시도할 경우 경고가 표시됩니다.

PITR 복원 설정

PITR을 사용하여 테이블을 복원하는 경우 Amazon Keyspaces는 소스 테이블의 스키마 및 데이터를 선택한 타임스탬프(day:hour:minute:second)를 기반으로 한 상태로 새 테이블에 복원합니다. PITR은 기존 테이블을 덮어쓰지 않습니다.

테이블의 스키마와 데이터 외에도 PITR은 소스 테이블에서 custom_properties를 복원합니다. 가장 빠른 복원 시간과 현재 시간 사이의 선택한 타임스탬프를 기준으로 복원되는 테이블의 데이터와 달리 사용자 지정 속성은 항상 현재 시간을 기준으로 테이블의 설정을 기준으로 복원됩니다.

복원된 테이블의 설정은 복원이 시작된 시점의 타임스탬프가 있는 소스 테이블의 설정과 일치합니다. 복원 중 이러한 설정을 덮어쓰려는 경우 WITH custom_properties를 사용하여 덮어쓸 수 있습니다. 사용자 지정 속성에는 다음 설정이 포함됩니다.

  • 읽기/쓰기 용량 모드

  • 프로비저닝된 처리량 용량 설정

  • PITR 설정

테이블이 Auto Scaling이 활성화된 프로비저닝된 용량 모드에 있는 경우 복원 작업은 테이블의 Auto Scaling 설정도 복원합니다. CQL의 autoscaling_settings 파라미터를 사용하거나 CLI를 사용하여 덮어쓸 수 있습니다. autoScalingSpecification Auto Scaling 설정에 대한 자세한 내용은 을 참조하십시오Amazon Keyspaces 자동 크기 조정을 통해 처리 용량을 자동으로 관리합니다..

전체 테이블 복원을 수행하면 복원된 테이블의 모든 테이블 설정은 복원 시 원본 테이블의 현재 설정에서 가져옵니다.

예를 들어 테이블의 프로비저닝된 처리량이 최근에 읽기 용량 단위 50 및 쓰기 용량 단위 50으로 낮춰졌다고 가정합니다. 그런 다음 테이블 상태를 3주 전으로 복원합니다. 이 때 프로비저닝된 처리량은 읽기 용량 단위 100 및 쓰기 용량 단위 100으로 설정되었습니다. 이 경우 Amazon Keyspaces는 테이블 데이터를 해당 시점으로 복원하지만 현재 프로비저닝된 처리량 설정(읽기 용량 단위 50 및 쓰기 용량 단위 50)을 사용합니다.

다음 설정은 복원되지 않으므로 새 테이블에 맞게 수동으로 구성해야 합니다.

  • AWS Identity and Access Management (IAM) 정책

  • 아마존 CloudWatch 메트릭스 및 알람

  • 태그(WITH TAGS를 사용하여 CQL RESTORE 문에 추가 가능)

암호화된 테이블의 PITR 복원

PITR을 사용하여 테이블을 복원할 때 Amazon Keyspaces는 소스 테이블의 암호화 설정을 복원합니다. 테이블이 AWS 소유 키(기본값)로 암호화된 경우 테이블은 동일한 설정으로 자동으로 복원됩니다. 복원하려는 테이블이 고객 관리형 키를 사용하여 암호화된 경우 테이블 데이터를 복원하려면 Amazon Keyspaces에서 동일한 고객 관리형 키에 액세스할 수 있어야 합니다.

복원 시 테이블의 암호화 설정을 변경할 수 있습니다. AWS 소유 키에서 고객 관리형 키로 변경하려면 복원 시 유효하고 액세스 가능한 고객 관리형 키를 제공해야 합니다.

고객 관리형 키에서 AWS 소유 키로 변경하려면 Amazon Keyspaces가 소스 테이블의 고객 관리형 키에 액세스할 수 있는지 확인하여 AWS 소유 키를 사용하여 테이블을 복원합니다. 테이블의 저장 시 암호화 설정에 대한 자세한 내용은 저장 시 암호화: Amazon Keyspaces 작동 방식 섹션을 참조하세요.

참고

Amazon Keyspaces에서 고객 관리형 키에 액세스할 수 없어 테이블이 삭제된 경우 테이블을 복원하기 전에 Amazon Keyspaces에서 고객 관리형 키에 액세스할 수 있는지 확인해야 합니다. 고객 관리형 키로 암호화된 테이블은 Amazon Keyspaces가 해당 키에 액세스할 수 없는 경우 복원할 수 없습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서의 키 액세스 문제 해결을 참조하세요.

다중 리전 테이블의 PITR 복원

PITR을 사용하여 다중 리전 테이블을 복원할 수 있습니다. 복원 작업이 성공하려면 소스 테이블과 대상 테이블을 모두 동일한 AWS 리전로 복제해야 합니다.

Amazon Keyspace는 키스페이스의 일부인 각 복제 지역의 원본 테이블 설정을 복원합니다. 복원 작업 중에 설정을 재정의할 수도 있습니다. 복원 중에 변경할 수 있는 설정에 대한 자세한 내용은 PITR 복원 설정 섹션을 참조하세요.

다중 리전 복제에 대한 자세한 내용은 Amazon Keyspaces의 다중 리전 복제가 작동하는 방식 섹션을 참조하세요.

PITR을 사용한 테이블 복원 시간

테이블을 복원하는 데 걸리는 시간은 여러 요소에 따라 달라지며 테이블의 크기와 항상 직접적인 연관 관계가 있는 것은 아닙니다.

다음은 복원 시간에 대한 몇 가지 고려 사항입니다.

  • 백업을 새로운 테이블에 복원합니다. 새로운 테이블 생성과 복원 프로세스 시작에 필요한 모든 작업을 수행하는 데 최대 20분이 걸릴 수 있습니다(테이블이 비어있더라도 마찬가지임).

  • 잘 분산된 데이터 모델을 사용하는 대형 테이블의 복원 시간은 몇 시간 이상일 수 있습니다.

  • 소스 테이블에 크게 왜곡된 데이터가 포함되어 있으면 복원 시간이 늘어날 수 있습니다. 예를 들어 테이블의 프라이머리 키가 파티션 키로 그해의 월을 사용하고 있고 모든 데이터가 12월에 집중된 경우 편중 데이터가 있는 것입니다.

재해 복구를 계획할 때 가장 좋은 방법은 평균 복원 완료 시간을 정기적으로 기록하고 이러한 시간이 전체 복구 시간 목표에 어떤 영향을 미치는지 설정하는 것입니다.

Amazon Keyspaces PITR 및 AWS 서비스와 통합

지속적인 모니터링 및 감사를 활성화하기 위해 AWS CloudTrail을 사용하여 다음 PITR 작업이 기록됩니다.

  • PITR을 활성화하거나 비활성화하여 새 테이블을 생성합니다.

  • 기존 테이블에서 PITR을 활성화 또는 비활성화합니다.

  • 활성 테이블 또는 삭제된 테이블을 복원합니다.

자세한 설명은 를 사용하여 Amazon Keyspaces API 호출을 로깅합니다 AWS CloudTrail 섹션을 참조하세요.

AWS CloudFormation을 사용하여 다음 PITR 작업을 수행할 수 있습니다.

  • PITR을 활성화하거나 비활성화하여 새 테이블을 생성합니다.

  • 기존 테이블에서 PITR을 활성화 또는 비활성화합니다.

자세한 내용은 AWS CloudFormation 사용 설명서Cassandra 리소스 유형 참조를 참조하세요.