

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

# Neptune의 데이터베이스 복제본 생성
<a name="manage-console-cloning"></a>

DB 복제본 생성을 사용하면 Amazon Neptune의 모든 데이터베이스를 빠르고 비용 효과적으로 복제할 수 있습니다. 복제본 데이터베이스는 최초 생성 시 최소한의 추가 공간만 필요합니다. 데이터베이스 복제본 생성 작업은 *기록 중 복사(Copy-on-Write) 프로토콜*을 사용합니다. 데이터는 데이터가 변경될 때 소스 데이터베이스 또는 복제본 데이터베이스에 복사됩니다. 동일한 DB 클러스터에서 여러 복제본을 생성할 수 있습니다. 다른 복제본에서 추가 복제본을 생성할 수도 있습니다. Neptune 스토리지와 관련하여 기록 중 복사 프로토콜을 사용하는 방법에 대한 자세한 내용은 [기록 중 복사(Copy-on-Write) 프로토콜](#manage-console-cloning-protocol) 단원을 참조하세요.

다양한 사용 사례에서 특히 다음과 같이 프로덕션 환경에 영향을 미치기를 원치 않을 경우 DB 복제본 생성 작업을 사용할 수 있습니다.
+ 스키마 변경 사항 또는 파라미터 그룹 변경 사항 등 변경 사항의 영향을 실험 및 평가하는 경우
+ 데이터 내보내기 또는 분석 쿼리 실행과 같은 워크로드 집약적 작업을 수행하는 경우
+ 비프로덕션 환경에서 개발 또는 테스트용으로 프로덕션 DB 클러스터의 복제본을 생성하는 경우

**AWS Management Console를 사용하여 DB 클러스터 복제를 생성하려면**

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

1. 탐색 창에서 **인스턴스**를 선택합니다. 복제본을 생성할 DB 클러스터의 기본 인스턴스를 선택합니다.

1. **인스턴스 작업**을 선택한 후 **복제본 생성**을 선택합니다.

1. **복제본 생성** 페이지에서 복제본 DB 클러스터의 기본 인스턴스 이름을 **DB 인스턴스 식별자**로 입력합니다.

   필요에 따라 복제본 DB 클러스터에 다른 설정을 구성합니다. 다양한 DB 클러스터 설정에 대한 자세한 정보는 [콘솔을 사용하여 시작](manage-console-launch-console.md) 단원을 참조하세요.

1. **복제본 생성**을 선택해 복제본 DB 클러스터를 시작합니다.

**AWS CLI를 사용하여 DB 클러스터 복제를 생성하려면**
+ [restore-db-cluster-to-point-in-time](api-snapshots.md#RestoreDBClusterToPointInTime) AWS CLI 명령을 호출하고 다음 값을 입력합니다.
  + `--source-db-cluster-identifier` – 복제를 생성할 소스 DB 클러스터의 이름입니다.
  + `--db-cluster-identifier` – 복제 DB 클러스터의 이름입니다.
  + `--restore-type copy-on-write` - 복제본 DB 클러스터를 생성해야 함을 나타내는 `copy-on-write` 값입니다.
  + `--use-latest-restorable-time` – 최근 복원이 가능한 백업 시간을 사용하도록 지정합니다.
**참고**  
[restore-db-cluster-to-point-in-time](api-snapshots.md#RestoreDBClusterToPointInTime) AWS CLI 명령은 해당 DB 클러스터의 DB 인스턴스가 아닌 DB 클러스터만 복제합니다.

  다음 Linux/UNIX 예제에서는 `source-db-cluster-id` DB 클러스터에서 복제본을 생성하고 해당 클론의 이름을 `db-clone-cluster-id`로 명명합니다.

  ```
  aws neptune restore-db-cluster-to-point-in-time \
    --region us-east-1 \
    --source-db-cluster-identifier source-db-cluster-id \
    --db-cluster-identifier db-clone-cluster-id \
    --restore-type copy-on-write \
    --use-latest-restorable-time
  ```

  `\` 라인 끝 이스케이프 문자가 이에 상당하는 Windows `^`로 바뀌면 Windows에서도 똑같은 예제가 적용됩니다.

  ```
  aws neptune restore-db-cluster-to-point-in-time ^
    --region us-east-1 ^
    --source-db-cluster-identifier source-db-cluster-id ^
    --db-cluster-identifier db-clone-cluster-id ^
    --restore-type copy-on-write ^
    --use-latest-restorable-time
  ```

## 제한 사항
<a name="manage-console-cloning-limitations"></a>

Neptune의 DB 복제 작업에는 다음과 같은 제한이 있습니다.
+ AWS 리전 간에 복제본 데이터베이스를 생성할 수 없습니다. 복제본 데이터베이스는 소스 데이터베이스와 동일한 리전에 생성해야 합니다.
+ 복제된 데이터베이스는 항상 복제된 데이터베이스에서 사용 중인 Neptune 엔진 버전의 최신 패치를 사용합니다. 소스 데이터베이스가 해당 패치 버전으로 아직 업그레이드되지 않은 경우에도 마찬가지입니다. 그러나 엔진 버전 자체는 변경되지 않습니다.
+ 현재 다른 복제본 기반의 복제본을 포함해 Neptune DB 클러스터 복사본 하나당 복제본 수는 15개로 제한됩니다. 이 한도에 도달한 후에는 데이터베이스를 복제하지 말고 다른 복사본을 만들어야 합니다. 그렇지만 복사본 하나가 최대 15개의 복제본으로 구성될 수 있습니다.
+ 교차 계정 DB 복제는 현재 지원하지 않습니다.
+ 복제본에 다양한 Virtual Private Cloud(VPC)를 제공할 수 있습니다. 하지만 이러한 VPC의 서브넷을 동일한 가용 영역 세트에 매핑해야 합니다.

## DB 복제를 위한 기록 중 복사 프로토콜
<a name="manage-console-cloning-protocol"></a>

다음 시나리오는 기록 중 복사 프로토콜의 작동 방식을 보여줍니다.
+ [복제 전 Neptune 데이터베이스](#manage-console-cloning-protocol-before)
+ [복제 후 Neptune 데이터베이스](#manage-console-cloning-protocol-after)
+ [소스 데이터베이스에 변경 사항이 발생하는 경우](#manage-console-cloning-protocol-source-write)
+ [복제본 데이터베이스에 변경 사항이 발생하는 경우](#manage-console-cloning-protocol-clone-write)

### 복제 전 Neptune 데이터베이스
<a name="manage-console-cloning-protocol-before"></a>

소스 데이터베이스에서 데이터가 페이지 단위로 저장됩니다. 다음 다이어그램에서 소스 데이터베이스에 4개 페이지가 있습니다.

![\[4페이지로 구성된 DB 복제 전 Neptune 소스 데이터베이스\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/neptune-clone-1.png)


### 복제 후 Neptune 데이터베이스
<a name="manage-console-cloning-protocol-after"></a>

다음 다이어그램에서 알 수 있듯이 DB 복제 후 소스 데이터베이스에는 변동이 없습니다. 소스 데이터베이스와 복제본 데이터베이스 모두 동일한 4개 페이지를 가리킵니다. 물리적으로 복사된 페이지가 없으므로 추가 스토리지도 필요하지 않습니다.

![\[DB 복제 후 동일한 페이지를 가리키는 Neptune 소스 데이터베이스 및 복제본 데이터베이스\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/neptune-clone-2.png)


### 소스 데이터베이스에 변경 사항이 발생하는 경우
<a name="manage-console-cloning-protocol-source-write"></a>

다음 예제에서 소스 데이터베이스가 `Page 1`에서 데이터를 변경합니다. 원래의 `Page 1`에 기록하는 대신, 추가 스토리지를 사용하여 `Page 1'`이라는 새 페이지가 생성됩니다. 이제 소스 데이터베이스가 새로운 `Page 1'` 이외에 `Page 2`, `Page 3`, `Page 4`도 가리킵니다. 복제본 데이터베이스는 계속해서 `Page 1`\$1`Page 4`를 가리킵니다.

![\[소스 데이터베이스에 변경 발생 후 Neptune 소스 데이터베이스 및 복제본 데이터베이스\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/neptune-clone-3.png)


### 복제본 데이터베이스에 변경 사항이 발생하는 경우
<a name="manage-console-cloning-protocol-clone-write"></a>

다음 다이어그램에서 복제본 데이터베이스도 변경되었습니다. 이번에는 `Page 4`입니다. 원래 `Page 4`에 기록하는 대신, 추가 스토리지를 사용하여 `Page 4'`이라는 새 페이지가 생성됩니다. 소스 데이터베이스는 `Page 1'`과 `Page 2`\$1`Page 4`를 계속 가리키지만, 복제본 데이터베이스는 이제 `Page 1`\$1`Page 3`과 `Page 4'`도 가리킵니다.

![\[복제본 데이터베이스에 변경 발생 후 Neptune 소스 데이터베이스 및 복제본 데이터베이스\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/neptune-clone-4.png)


두 번째 시나리오에서 예시한 대로, DB 복제 이후 복제본 생성 지점에 추가 스토리지가 필요하지 않습니다. 하지만 세 번째 및 네 번째 시나리오와 같이 소스 데이터베이스 및 복제본 데이터베이스가 변경될 경우 변경된 페이지만 생성됩니다. 시간이 경과하여 소스 데이터베이스와 복제본 데이터베이스 모두가 변경될 경우 변경 사항을 캡처하고 저장하기 위해 점점 더 많은 스토리지가 필요합니다.

## 소스 데이터베이스 삭제
<a name="manage-console-cloning-source-deleting"></a>

소스 데이터베이스를 삭제해도 연관된 복제본 데이터베이스에는 영향을 주지 않습니다. 복제본 데이터베이스는 이전에 소스 데이터베이스가 소유하던 페이지를 계속 가리킵니다.