Amazon Redshift 서버리스 스냅샷을 다른 AWS 계정에 복사하고 복원하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 10월 11일

한 AWS 계정에서 다른 AWS 계정으로 Amazon Redshift 서버리스 스냅샷을 복사 및 복원하려고 합니다. 어떻게 해야 합니까?

해결 방법

Amazon Redshift 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용하여 한 AWS 계정에서 다른 AWS 계정으로 복사 및 복원을 수행합니다.

시작하기 전에 다음 사항을 고려하세요.

  • Amazon Redshift 서버리스 네임스페이스로 스냅샷을 복원하려면 스냅샷이 사용 가능 상태이고 가용 워크그룹과 연결되어 있어야 합니다.
  • 스냅샷에서 Amazon Redshift 서버리스 네임스페이스를 복원하면 모든 네임스페이스의 데이터베이스가 스냅샷의 데이터베이스로 변경됩니다.
  • 복원 중에는 Amazon Redshift 서버리스를 사용할 수 없습니다.

Amazon Redshift 콘솔을 사용하여 복사 및 복원

Amazon Redshift 서버리스의 복구 지점을 소스 계정의 스냅샷으로 변환

  1. Amazon Redshift 콘솔을 엽니다.
  2. 탐색 창에서 Redshift 서버리스를 선택한 다음 데이터 백업를 선택합니다.
  3. 복원 지점에서 스냅샷으로 변환하려는 복원 지점의 생성 시간을 선택합니다.
  4. 복원 지점에서 스냅샷 생성을 선택합니다.
  5. 스냅샷 식별자보존 기간을 입력합니다.
  6. 생성을 선택합니다.

소스 계정의 스냅샷을 다른 AWS 계정과 공유

  1. Amazon Redshift 콘솔을 엽니다.
  2. 탐색 창에서 Redshift 서버리스를 선택한 다음 데이터 백업를 선택합니다.
  3. 이전에 생성한 스냅샷을 선택합니다.
  4. 작업, 액세스 관리를 선택합니다.
  5. AWS 계정 추가(서버리스 계정에 대한 액세스 제공 아래에 위치)을 선택하고 AWS 계정 ID(대상)를 입력합니다.
  6. 변경 사항 저장을 선택합니다.

대상 계정의 Amazon Redshift 서버리스 네임스페이스에 스냅샷 복구

  1. Amazon Redshift 콘솔을 엽니다.
  2. 탐색 창에서 Redshift 서버리스를 선택한 다음 데이터 백업를 선택합니다.
  3. 복원할 AWS 계정 ID에 공유된 스냅샷을 선택합니다. 한 번에 하나의 스냅샷만 복원할 수 있습니다.
  4. 작업, 서버리스 네임스페이스로 복원을 선택합니다.
  5. 복원할 가용 네임스페이스를 선택합니다. 사용 가능 상태의 네임스페이스만 복원할 수 있습니다.
  6. 복원을 선택합니다.

AWS CLI를 사용한 복사 및 복원

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인합니다.

Amazon Redshift 서버리스의 복구 지점을 소스 계정의 스냅샷으로 변환

1.    list-recovery-points 명령을 사용하여 start-time 이후 생성된 스냅샷 목록을 확인합니다. 다음 명령을 실행하고 namespacename는 네임스페이스로, us-west-2AWS 리전으로, 그리고 starttime을 복수 시작 시간(UTC)으로 변경합니다.

aws redshift-serverless list-recovery-points --namespace-name <namespacename> --region <region name> --start-time <starttime>

다음 예제에서 Redshift 서버리스 클러스터는 미국 서부(오레곤) 지역에 위치하며 기본 네임스페이스이고 시작 시간이 2022-09-06T07:10(UTC)입니다.

aws redshift-serverless list-recovery-points --namespace-name default --region us-west-2 --start-time 2022-09-06T07:10

2.    convert-recovery-point-to-snapshot 명령을 사용하여 스냅샷 및 보존 기간을 생성합니다. 다음 명령을 실행하고 RecoveryPointId를 1단계의 복구 지점 ID 출력으로, 수는 스냅샷을 보존할 기간(일), 스냅샷 이름을 스냅샷 이름으로, us-west-2AWS 리전으로 변경합니다.

aws redshift-serverless convert-recovery-point-to-snapshot --recovery-point-id <recoveryPointId> --retention-period <days> --snapshot-name <snapshot name> --region <region name>

다음 예에서는 스냅샷의 이름이 snapshot01이고 보존 기간이 3일이며 미국 서부(오레곤) 리전에 위치합니다.

aws redshift-serverless convert-recovery-point-to-snapshot --recovery-point-id 72acee50-34df-45f6-865f-46aa178ada82 --retention-period 3 --snapshot-name snapshot01 --region us-west-2

3.    get-snapshot 명령을 사용하여 스냅샷 생성 여부를 확인합니다. 다음 명령을 실행하고 스냅샷 이름을 스냅샷 이름으로 바꿉니다.

aws redshift-serverless get-snapshot --snapshot-name <snapshot name>

소스 계정의 스냅샷을 다른 AWS 계정과 공유

put-resource-policy 명령을 사용하여 다른 AWS 계정에 스냅샷에 대한 액세스 권한을 제공합니다. 다음 명령을 실행하고 대상 계정 ID를 대상 AWS 계정 ID로 바꾸고 스냅샷 arn을 스냅샷의 ARN으로 바꿉니다.

aws redshift-serverless put-resource-policy --policy "{\"Version\": \"2012-10-17\", \"Statement\" : [{ \"Sid\": \"AllowUserRestoreFromSnapshot\", \"Principal\":{\"AWS\": [\”<destination account ID>\”]}, \"Action\": [\"redshift-serverless:RestoreFromSnapshot\"] , \"Effect\": \"Allow\" }]}" --resource-arn <snapshot arn>

다음 예에서는 계정 번호 123456789012의 스냅샷 ARN에 대한 액세스 권한이 제공됩니다.

aws redshift-serverless put-resource-policy --policy "{\"Version\": \"2012-10-17\", \"Statement\" : [{ \"Sid\": \"AllowUserRestoreFromSnapshot\", \"Principal\":{\"AWS\": [\"123456789012\"]}, \"Action\": [\"redshift-serverless:RestoreFromSnapshot\"] , \"Effect\": \"Allow\" }]}" --resource-arn arn:aws:redshift-serverless:us-west-2:112233445566:snapshot/4978ca91-24ba-4196-91ad-9d372f72b0fe

대상 계정의 Amazon Redshift 서버리스 네임스페이스에 스냅샷 복구

1.    list-snapshot 명령을 사용하여 AWS 리전의 스냅샷을 나열합니다. 다음 명령에서 eu-west-2을 사용자의 AWS 리전으로 바꿉니다.

aws redshift-serverless list-snapshots  --region us-west-2

2.    스냅샷에서 restore-from-snapshot 명령을 사용하여 스냅샷을 Amazon Redshift 서버리스로 복원합니다. 다음 명령을 실행하고 스냅샷 이름을 스냅샷 이름으로, 워크그룹 이름을 워크그룹 이름으로, snapshot arn을 이전 명령의 스냅샷 ARN으로 바꿉니다.

aws redshift-serverless  restore-from-snapshot --namespace-name <namespace name > --workgroup-name <workgroup name> --snapshot-arn <snapshot arn>

다음 예제에서 계정 ID 112233445566사용 가능 상태의 Amazon Redshift 서버리스와 복원이라는 이름의 네임스페이스, 복원이라는 이름의 사용자 그룹을 포함합니다.

aws redshift-serverless restore-from-snapshot --namespace-name restore --workgroup-name restore --snapshot-arn arn:aws:redshift-serverless:us-west-2:112233445566:snapshot/4978ca91-24ba-4196-91ad-9d372f72b0fe

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?