

# Amazon RDS의 DB 스냅샷 공유
<a name="USER_ShareSnapshot"></a>

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

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

스냅샷 복사에 대한 자세한 정보는 [Amazon RDS용 DB 스냅샷 복사](USER_CopySnapshot.md) 섹션을 참조하세요. DB 스냅샷에서 DB 인스턴스를 복원하는 방법에 대한 자세한 내용은 [DB 인스턴스 복원](USER_RestoreFromSnapshot.md) 섹션을 참조하세요.

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

수동 스냅샷을 다른 AWS 계정과 공유할 경우 다음과 같은 제한이 적용됩니다.
+ AWS Command Line Interface(AWS CLI) 또는 Amazon RDS API를 사용하여 공유 스냅샷에서 DB 인스턴스를 복원할 때는 공유 스냅샷의 Amazon 리소스 이름(ARN)을 스냅샷 식별자로 지정해야 합니다.
+ 영구적 또는 지속적 옵션이 포함된 옵션 그룹을 사용하는 DB 스냅샷은 공유할 수 없습니다. 단, `Timezone` 또는 `OLS` 옵션(또는 둘 다)이 있는 Oracle DB 인스턴스는 제외됩니다.

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

  아래 표에 영구적 옵션과 지속적 옵션 및 관련된 DB 엔진이 나열되어 있습니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html)

  Oracle DB 인스턴스의 경우 `Timezone` 또는 `OLS` 옵션(또는 둘 다)이 있는 공유 DB 스냅샷을 복사할 수 있습니다. 이렇게 하려면 DB 스냅샷을 복사할 때 이 옵션이 포함된 대상 옵션 그룹을 지정하십시오. OLS 옵션은 Oracle 버전 12.2 이상을 실행하는 Oracle DB 인스턴스에 대해서만 영구적이고 지속적입니다. 이러한 옵션에 대한 자세한 내용은 [Oracle 시간대](Appendix.Oracle.Options.Timezone.md) 및 [Oracle 레이블 보안](Oracle.Options.OLS.md) 섹션을 참조하세요.
+ 다중 AZ DB 클러스터의 스냅샷을 공유할 수 없습니다.
+ 스냅샷에 추가 스토리지 볼륨이 포함된 경우 스냅샷을 공유할 수 없습니다.

퍼블릭 스냅샷 공유, 암호화된 스냅샷 공유 및 스냅샷 공유 중지에 대한 자세한 내용은 다음 주제를 참조하세요.

**주제**
+ [Amazon RDS의 퍼블릭 스냅샷 공유](USER_ShareSnapshot.Public.md)
+ [Amazon RDS의 암호화된 스냅샷 공유](share-encrypted-snapshot.md)
+ [Amazon RDS에 대한 스냅샷 공유 중지](share-snapshot-stop.md)

## 스냅샷 공유
<a name="USER_ShareSnapshot.Sharing"></a>

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

### 콘솔
<a name="USER_ShareSnapshot.Console"></a>

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

**Amazon RDS 콘솔을 사용하여 수동 DB 스냅샷 공유**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

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

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

1. **DB 스냅샷 공개 여부**에 대해 다음 옵션 중 하나를 선택합니다.
   + 소스가 암호화되어 있지 않은 경우 **퍼블릭**을 선택하여 모든 AWS 계정이 수동 DB 스냅샷에서 DB 인스턴스를 복원하도록 허용하거나, **프라이빗**을 선택하여 지정한 AWS 계정만 수동 DB 스냅샷에서 DB 인스턴스를 복원하도록 허용합니다.
**주의**  
**DB 스냅샷 가시성**을 **퍼블릭**으로 설정한 경우 모든 AWS 계정은 수동 DB 스냅샷에서 DB 인스턴스를 복원하고 사용자 데이터에 액세스할 수 있습니다. 프라이빗 정보가 포함된 수동 DB 스냅샷을 **퍼블릭(Public)**으로 공유하지 마세요.  
자세한 내용은 [Amazon RDS의 퍼블릭 스냅샷 공유](USER_ShareSnapshot.Public.md) 섹션을 참조하세요.
   + 원본 DB 클러스터가 암호화되어 있는 경우 암호화된 스냅샷을 퍼블릭으로 공유할 수 없으므로 **DB snapshot visibility(DB 스냅샷 가시성)**는 **Private(프라이빗)**으로 설정됩니다.
**참고**  
기본 AWS KMS key로 암호화된 스냅샷은 공유할 수 없습니다. 이 문제를 해결하는 방법에 대한 자세한 내용은 [Amazon RDS의 암호화된 스냅샷 공유](share-encrypted-snapshot.md) 섹션을 참조하세요.

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

   허용된 계정 목록에 AWS 계정 식별자를 추가하다가 실수하는 경우, 잘못된 AWS 계정 식별자의 오른쪽에 있는 **삭제**를 선택하여 목록에서 해당 식별자를 삭제할 수 있습니다.  
![\[AWS 계정이 수동 DB 클러스터 스냅샷을 복원할 수 있도록 허용\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/ShareSnapshot_add.png)

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

### AWS CLI
<a name="USER_ShareSnapshot.CLI"></a>

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

**Example 단일 계정과 스냅샷 공유**  
다음 예에서는 AWS 계정 식별자 `123456789012`가 `db7-snapshot`이라는 DB 스냅샷을 복원할 수 있습니다.  
대상 LinuxmacOS, 또는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
```

**Example 여러 계정과 스냅샷 공유**  
다음 예에서는 `111122223333` 및 `444455556666`이라는 두 개의 AWS 계정 식별자가 `manual-snapshot1`이라는 DB 스냅샷을 복원할 수 있습니다.  
대상 LinuxmacOS, 또는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 명령 프롬프트를 사용하는 경우 백슬래시(\$1)를 접두사로 추가하여 JSON 코드에서 큰 따옴표(")를 이스케이프해야 합니다.

스냅샷을 복원할 수 있는 AWS 계정를 나열하려면 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshot-attributes.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshot-attributes.html) AWS CLI 명령을 사용합니다.

### RDS API
<a name="USER_ShareSnapshot.API"></a>

Amazon RDS API를 사용하여 수동 DB 스냅샷을 다른 AWS 계정과 공유할 수도 있습니다. 이렇게 하려면 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBSnapshotAttribute.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBSnapshotAttribute.html) 작업을 호출합니다. `AttributeName`에 대해 `restore`를 지정하고 `ValuesToAdd` 파라미터를 사용하여 수동 스냅샷의 복원 권한이 있는 AWS 계정를 위한 ID 목록을 추가합니다.

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

스냅샷을 복원할 수 있도록 허용된 모든 AWS 계정을 나열하려면 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshotAttributes.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshotAttributes.html) API 작업을 사용합니다.