DB 스냅샷 공유 - Amazon Relational Database Service

DB 스냅샷 공유

Amazon RDS를 사용하면 다음 방법으로 수동 DB 스냅샷을 공유할 수 있습니다.

  • 암호화되었거나 암호화되지 않은 수동 DB 스냅샷을 공유하면 권한이 있는 AWS 계정에서 해당 스냅샷을 복사할 수 있습니다.

  • 암호화되지 않은 수동 DB 스냅샷을 공유하면 권한이 있는 AWS 계정에서 스냅샷의 복사본을 만든 후 복원하는 대신에 해당 스냅샷에서 DB 인스턴스를 직접 복원할 수 있습니다. 그러나 공유되고 동시에 암호화된 DB 스냅샷에서는 DB 인스턴스를 복원할 수 없습니다. 대신 DB 스냅샷의 사본을 만들어 거기에서 DB 인스턴스를 복원할 수 있습니다.

참고

자동 DB 스냅샷을 공유하려면 자동 스냅샷을 복사하여 수동 DB 스냅샷을 생성한 다음 해당 복사본을 공유합니다. 이 프로세스는 AWS Backup에서 생성된 리소스에도 적용됩니다.

스냅샷 복사에 대한 자세한 정보는 DB 스냅샷 복사 단원을 참조하십시오. DB 스냅샷에서 DB 인스턴스를 복원하는 방법에 대한 자세한 내용은 DB 스냅샷에서 복원 섹션을 참조하세요.

최대 20개의 다른 AWS 계정 계정과 수동 스냅샷을 공유할 수 있습니다.

수동 스냅샷을 다른 AWS 계정과 공유할 경우 다음과 같은 제한이 적용됩니다.

  • AWS Command Line Interface(AWS CLI) 또는 Amazon RDS API를 사용하여 공유 스냅샷에서 DB 인스턴스를 복원할 때는 공유 스냅샷의 Amazon 리소스 이름(ARN)을 스냅샷 식별자로 지정해야 합니다.

  • 영구적 또는 지속적 옵션이 포함된 옵션 그룹을 사용하는 DB 스냅샷은 공유할 수 없습니다. 단, Timezone 또는 OLS 옵션(또는 둘 다)이 있는 Oracle DB 인스턴스는 제외됩니다.

    영구적 옵션은 옵션 그룹에서 제거할 수 없습니다. 옵션 그룹이 DB 인스턴스에 할당된 경우 영구적 옵션을 포함하는 옵션 그룹을 DB 인스턴스에서 제거할 수 없습니다.

    아래 표에 영구적 옵션과 지속적 옵션 및 관련된 DB 엔진이 나열되어 있습니다.

    옵션 이름 지속적 영구적 DB 엔진
    TDE 아니요 Microsoft SQL Server Enterprise Edition
    TDE Oracle Enterprise Edition
    시간대

    Oracle Enterprise Edition

    Oracle Standard Edition

    Oracle Standard Edition One

    Oracle Standard Edition 2

    Oracle DB 인스턴스의 경우 Timezone 또는 OLS 옵션(또는 둘 다)이 있는 공유 DB 스냅샷을 복사할 수 있습니다. 이렇게 하려면 DB 스냅샷을 복사할 때 이 옵션이 포함된 대상 옵션 그룹을 지정하십시오. OLS 옵션은 Oracle 버전 12.2 이상을 실행하는 Oracle DB 인스턴스에 대해서만 영구적이고 지속적입니다. 이러한 옵션에 대한 자세한 내용은 Oracle 시간대Oracle 레이블 보안 단원을 참조하세요.

  • 다중 AZ DB 클러스터의 스냅샷을 공유할 수 없습니다.

퍼블릭 스냅샷 공유

암호화되지 않은 수동 스냅샷을 퍼블릭으로도 공유할 수 있습니다. 그러면 모든 AWS 계정에서 해당 스냅샷을 사용할 수 있습니다. 스냅샷을 퍼블릭으로 공유할 경우, 퍼블릭 스냅샷에 비공개 정보가 포함되지 않도록 유의하세요.

스냅샷이 공개적으로 공유될 경우 스냅샷을 복사하고 해당 스냅샷에서 DB 인스턴스를 생성할 수 있는 권한을 모든 AWS 계정에 부여합니다.

다른 계정이 소유한 퍼블릭 스냅샷의 백업 스토리지에 대해서는 요금이 청구되지 않습니다. 본인이 소유한 스냅샷에 대해서만 요금이 청구됩니다.

퍼블릭 스냅샷을 복사할 경우 해당 복사본을 소유하게 됩니다. 스냅샷 복사본의 백업 스토리지에 대한 요금이 청구됩니다. 퍼블릭 스냅샷에서 DB 인스턴스를 생성할 경우 해당 DB 인스턴스에 대한 요금이 청구됩니다. Amazon RDS 요금에 대한 내용은 Amazon RDS 제품 페이지를 참조하세요.

본인이 소유한 퍼블릭 스냅샷만 삭제할 수 있습니다. 공유 또는 퍼블릭 스냅샷을 삭제하려면 해당 스냅샷을 소유한 AWS 계정에 로그인해야 합니다.

다른 AWS 계정이 소유한 퍼블릭 스냅샷 보기

Amazon RDS 콘솔의 [스냅샷(Snapshots)] 페이지에 있는 [퍼블릭(Public)] 탭에서 특정 AWS 리전의 다른 계정이 소유한 퍼블릭 스냅샷을 볼 수 있습니다. 사용 중인 계정이 소유한 스냅샷은 이 탭에 표시되지 않습니다.

퍼블릭 스냅샷을 보려면
  1. https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [Snapshots]를 선택합니다.

  3. [퍼블릭(Public)] 탭을 선택합니다.

    퍼블릭 스냅샷이 표시됩니다. [소유자(Owner)] 열에서 퍼블릭 스냅샷을 소유한 계정을 확인할 수 있습니다.

    참고

    이 열을 보려면 [퍼블릭 스냅샷(Public snapshots)] 목록의 오른쪽 상단에 있는 톱니바퀴 아이콘을 선택하여 페이지 기본 설정을 수정해야 할 수도 있습니다.

본인이 소유한 퍼블릭 스냅샷 보기

다음 AWS CLI 명령(Unix에만 해당)을 사용하여 특정 AWS 리전의 AWS 계정이 소유한 퍼블릭 스냅샷을 볼 수 있습니다.

aws rds describe-db-snapshots --snapshot-type public --include-public | grep account_number

퍼블릭 스냅샷이 있는 경우 반환되는 출력은 다음 예제와 유사합니다.

"DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mysnapshot1", "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mysnapshot2",
참고

DBSnapshotIdentifier 또는 SourceDBSnapshotIdentifier에 대한 중복 항목이 표시될 수 있습니다.

스냅샷 공유

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 DB 스냅샷을 공유할 수 있습니다.

Amazon RDS 콘솔을 사용하여 최대 20개의 AWS 계정과 수동 DB 스냅샷을 공유할 수 있습니다. 콘솔을 사용하여 하나 이상의 계정에 대한 수동 스냅샷 공유를 중지할 수도 있습니다.

Amazon RDS 콘솔을 사용하여 수동 DB 스냅샷 공유
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [Snapshots]를 선택합니다.

  3. 공유할 수동 스냅샷을 선택합니다.

  4. Actions(작업)에서 Share snapshot(스냅샷 공유)을 선택합니다.

  5. DB 스냅샷 공개 여부에 대해 다음 옵션 중 하나를 선택합니다.

    • 소스가 암호화되어 있지 않은 경우 퍼블릭을 선택하여 모든 AWS 계정이 수동 DB 스냅샷에서 DB 인스턴스를 복원하도록 허용하거나, 프라이빗을 선택하여 지정한 AWS 계정만 수동 DB 스냅샷에서 DB 인스턴스를 복원하도록 허용합니다.

      주의

      DB 스냅샷 가시성퍼블릭으로 설정한 경우 모든 AWS 계정은 수동 DB 스냅샷에서 DB 인스턴스를 복원하고 사용자 데이터에 액세스할 수 있습니다. 프라이빗 정보가 포함된 수동 DB 스냅샷을 퍼블릭(Public)으로 공유하지 마세요.

    • 원본 DB 클러스터가 암호화되어 있는 경우 암호화된 스냅샷을 퍼블릭으로 공유할 수 없으므로 DB snapshot visibility(DB 스냅샷 가시성)Private(프라이빗)으로 설정됩니다.

      참고

      기본 AWS KMS key로 암호화된 스냅샷은 공유할 수 없습니다. 이 문제를 해결하는 방법에 대한 자세한 내용은 암호화된 스냅샷 공유 섹션을 참조하세요.

  6. AWS 계정 D에 수동 스냅샷에서 DB 인스턴스를 복원하도록 허용할 계정의 AWS 계정 계정 식별자를 입력한 다음 추가를 선택합니다. 이 과정을 반복하여 최대 20개의 AWS 계정까지 AWS 계정 식별자를 추가합니다.

    허용된 계정 목록에 AWS 계정 식별자를 추가하다가 실수하는 경우, 잘못된 AWS 계정 식별자의 오른쪽에 있는 삭제를 선택하여 목록에서 해당 식별자를 삭제할 수 있습니다.

    
                                AWS 계정이 수동 DB 클러스터 스냅샷을 복원할 수 있도록 허용
  7. 수동 스냅샷을 복원할 수 있도록 허용할 모든 AWS 계정의 식별자를 추가한 후 저장을 선택하여 변경 내용을 저장합니다.

DB 스냅샷을 공유하려면 aws rds modify-db-snapshot-attribute 명령을 사용합니다. --values-to-add 파라미터를 사용하여 수동 스냅샷을 복원할 권한이 있는 AWS 계정 계정의 ID 목록을 추가합니다.

예 단일 계정과 스냅샷 공유

다음 예에서는 AWS 계정 식별자 123456789012db7-snapshot이라는 DB 스냅샷을 복원할 수 있습니다.

Linux, macOS, Unix:

aws rds modify-db-snapshot-attribute \ --db-snapshot-identifier db7-snapshot \ --attribute-name restore \ --values-to-add 123456789012

Windows의 경우:

aws rds modify-db-snapshot-attribute ^ --db-snapshot-identifier db7-snapshot ^ --attribute-name restore ^ --values-to-add 123456789012
예 여러 계정과 스냅샷 공유

다음 예에서는 111122223333444455556666이라는 두 개의 AWS 계정 식별자가 manual-snapshot1이라는 DB 스냅샷을 복원할 수 있습니다.

Linux, macOS, Unix:

aws rds modify-db-snapshot-attribute \ --db-snapshot-identifier manual-snapshot1 \ --attribute-name restore \ --values-to-add {"111122223333","444455556666"}

Windows의 경우:

aws rds modify-db-snapshot-attribute ^ --db-snapshot-identifier manual-snapshot1 ^ --attribute-name restore ^ --values-to-add "[\"111122223333\",\"444455556666\"]"
참고

Windows 명령 프롬프트를 사용하는 경우 백슬래시(\)를 접두사로 추가하여 JSON 코드에서 큰 따옴표(")를 이스케이프해야 합니다.

스냅샷을 복원할 수 있는 AWS 계정를 나열하려면 describe-db-snapshot-attributes AWS CLI 명령을 사용합니다.

Amazon RDS API를 사용하여 수동 DB 스냅샷을 다른 AWS 계정과 공유할 수도 있습니다. 이렇게 하려면 ModifyDBSnapshotAttribute 작업을 호출합니다. AttributeName에 대해 restore를 지정하고 ValuesToAdd 파라미터를 사용하여 수동 스냅샷의 복원 권한이 있는 AWS 계정를 위한 ID 목록을 추가합니다.

수동 스냅샷을 퍼블릭으로 설정하고 모든 AWS 계정에서 복원할 수 있도록 하려면 all 값을 사용합니다. 단, 일부 AWS 계정에만 제공할 비공개 정보가 포함된 수동 스냅샷에 대해 all 값을 추가하지 않도록 유의합니다. 또한 암호화된 스냅샷에 대해 all을 지정하지 마십시오. 그러한 스냅샷을 퍼블릭으로 설정하는 것은 지원되지 않습니다.

스냅샷을 복원할 수 있도록 허용된 모든 AWS 계정를 나열하려면 DescribeDBSnapshotAttributes API 작업을 사용합니다.

암호화된 스냅샷 공유

Amazon RDS 리소스 암호화에 설명된 대로 AES-256 암호화 알고리즘을 사용하여 '저장된 상태'에서 암호화된 DB 스냅샷을 공유할 수 있습니다.

다음 제한은 암호화된 스냅샷 공유에 적용됩니다.

  • 암호화된 스냅샷을 퍼블릭으로는 공유할 수 없습니다.

  • TDE(Transparent Data Encryption)를 사용하여 암호화된 Oracle 또는 Microsoft SQL Server 스냅샷은 공유할 수 없습니다.

  • 스냅샷을 공유한 AWS 계정의 기본 KMS 키를 사용하여 암호화된 스냅샷은 공유할 수 없습니다.

기본 KMS 키 문제를 해결하려면 다음 작업을 수행하세요.

고객 관리 키를 생성하고 액세스 권한 부여

먼저 암호화된 DB 스냅샷과 동일한 AWS 리전에 있는 사용자 지정 KMS 키를 생성합니다. 고객 관리 키를 생성할 때는 다른 AWS 계정에 키에 대한 액세스 권한을 부여합니다.

고객 관리 키를 생성하고 액세스 권한을 부여하는 방법
  1. AWS 계정 소스에서 AWS Management Console에 로그인합니다.

  2. AWS KMS 콘솔(https://console.aws.amazon.com/kms)을 엽니다.

  3. AWS 리전을 변경하려면 페이지의 오른쪽 상단 모서리에 있는 리전 선택기를 사용합니다.

  4. 탐색 창에서 고객 관리형 키를 선택합니다.

  5. 키 생성을 선택합니다.

  6. 키 구성 페이지에서 다음 단계를 따릅니다.

    1. 키 유형에서 대칭을 선택합니다.

    2. 키 사용에서 암호화 및 해독을 선택합니다.

    3. 고급 옵션을 확장합니다.

    4. 키 구성 요소 원본에서 KMS를 선택합니다.

    5. 리전 특성에서 단일 리전 키를 선택합니다.

    6. 다음을 선택합니다.

  7. 레이블 추가 페이지에서 다음 단계를 따릅니다.

    1. 별칭에 KMS 키의 표시 이름을 입력합니다(예: share-snapshot).

    2. (선택 사항) KMS 키에 대한 설명을 입력합니다.

    3. (선택 사항) KMS 키에 태그를 추가합니다.

    4. 다음을 선택합니다.

  8. 키 관리 권한 정의 페이지에서 다음을 선택합니다.

  9. 키 사용 권한 정의 페이지에서 다음 단계를 따릅니다.

    1. 기타 AWS 계정에서 다른 AWS 계정 추가를 선택합니다.

    2. 액세스 권한을 부여할 AWS 계정 ID를 입력합니다.

      여러 AWS 계정에 액세스 권한을 부여할 수 있습니다.

    3. 다음을 선택합니다.

  10. KMS 키를 검토한 다음 완료를 선택합니다.

소스 계정에서 스냅샷 복사 및 공유

다음으로 고객 관리 키를 사용하여 소스 DB 스냅샷을 새 스냅샷에 복사합니다. 그런 다음 대상 AWS 계정에 공유합니다.

스냅샷을 복사하여 공유하는 방법
  1. AWS 계정 소스에서 AWS Management Console에 로그인합니다.

  2. https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  3. 탐색 창에서 스냅샷를 선택합니다.

  4. 복사하려는 DB 스냅샷을 선택합니다.

  5. [작업(Actions)]에서 [스냅샷 복사(Copy snapshot)]를 선택합니다.

  6. 스냅샷 복사 페이지에서 다음 단계를 따릅니다.

    1. 대상 리전에 이전 프로시저에서 고객 관리 키를 생성한 AWS 리전을 선택합니다.

    2. 새 DB 스냅샷 식별자에 DB 스냅샷 복사본의 이름을 입력합니다.

    3. AWS KMS key에 생성한 고객 관리 키를 선택합니다.

      
                                    고객 관리 키를 선택합니다.
    4. 스냅샷 복사를 선택합니다.

  7. 스냅샷 사본을 사용할 수 있는 경우 해당 복사본을 선택합니다.

  8. Actions(작업)에서 Share snapshot(스냅샷 공유)을 선택합니다.

  9. 스냅샷 권한 페이지에서 다음 단계를 따릅니다.

    1. 스냅샷 사본을 공유하는 데 사용할 AWS 계정 ID를 입력한 다음 추가를 선택합니다.

    2. Save(저장)를 선택합니다.

    스냅샷이 복사됩니다.

공유된 스냅샷을 대상 계정에 복사

이제 대상 AWS 계정에서 공유 스냅샷을 복사할 수 있습니다.

공유된 스냅샷을 복사하는 방법
  1. 대상 AWS 계정에서 AWS Management Console에 로그인합니다.

  2. https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  3. 탐색 창에서 스냅샷를 선택합니다.

  4. 나와 공유됨 탭을 선택합니다.

  5. 공유된 스냅샷을 선택합니다.

  6. [작업(Actions)]에서 [스냅샷 복사(Copy snapshot)]를 선택합니다.

  7. 이전 절차에서와 같이 스냅샷 복사 설정을 선택하고 대상 계정에 속한 AWS KMS key를 사용합니다.

    스냅샷 복사를 선택합니다.

스냅샷 공유 중지

DB 스냅샷 공유를 중지하려면 대상 AWS 계정에서 권한을 제거해야 합니다.

AWS 계정과 수동 DB 스냅샷 공유를 중지하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [Snapshots]를 선택합니다.

  3. 공유를 중지할 수동 스냅샷을 선택합니다.

  4. Actions(작업)를 선택한 다음 Share snapshot(스냅샷 공유)을 선택합니다.

  5. AWS 계정의 권한을 제거하려면 권한이 있는 계정 목록에서 해당 계정의 AWS 계정 식별자에 대해 삭제를 선택합니다.

  6. 저장을 선택하여 변경 사항을 저장합니다.

목록에서 AWS 계정 식별자를 제거하려면 --values-to-remove 파라미터를 사용합니다.

예 스냅샷 공유 중지

다음은 AWS 계정 ID 444455556666의 스냅샷 복원을 방지하는 예제입니다.

Linux, macOS, Unix:

aws rds modify-db-snapshot-attribute \ --db-snapshot-identifier manual-snapshot1 \ --attribute-name restore \ --values-to-remove 444455556666

Windows의 경우:

aws rds modify-db-snapshot-attribute ^ --db-snapshot-identifier manual-snapshot1 ^ --attribute-name restore ^ --values-to-remove 444455556666

AWS 계정의 공유 권한을 제거하려면 AttributeNamerestore로 설정한 ModifyDBSnapshotAttribute 작업과 ValuesToRemove 파라미터를 사용합니다. 수동 스냅샷을 비공개로 하려면 all 속성에 대한 값 목록에서 restore 값을 제거합니다.