RDS for PostgreSQL DB 인스턴스의 스냅샷을 Aurora PostgreSQL DB 클러스터로 마이그레이션합니다.
Aurora PostgreSQL DB 클러스터를 생성하려면 RDS for PostgreSQL DB 인스턴스의 DB 스냅샷을 마이그레이션할 수 있습니다. 새롭게 생성된 Aurora PostgreSQL DB 클러스터는 원본 RDS for PostgreSQL DB 인스턴스의 데이터로 채워집니다. DB 스냅샷 생성에 대한 자세한 내용은 DB 스냅샷 생성을 참조하세요.
경우에 따라 DB 스냅샷이 데이터를 저장할 AWS 리전에 속하지 않을 수도 있습니다. 이때는 Amazon RDS 콘솔을 사용하여 DB 스냅샷을 해당 AWS 리전으로 복사합니다. DB 스냅샷 복사에 대한 자세한 내용은 DB 스냅샷 복사를 참조하세요.
지정된 AWS 리전에서 사용 가능한 Aurora PostgreSQL 버전과 호환되는 RDS for PostgreSQL 스냅샷을 마이그레이션할 수 있습니다. 예를 들어, RDS PostgreSQL 11.1 DB 인스턴스의 스냅샷은 미국 서부(캘리포니아 북부)에서 Aurora PostgreSQL 버전 11.4, 11.7, 11.8 또는 11.9로 마이그레이션할 수 있습니다. RDS PostreSQL 10.11 스냅샷은 Aurora PostgreSQL 10.11, 10.12, 10.13, 10.14로 마이그레이션할 수 있습니다. 즉, RDS PostgreSQL 스냅샷은 Aurora PostgreSQL과 같거나 낮은 마이너 버전을 사용해야 합니다.
또한 AWS KMS key를 사용하여 새 Aurora PostgreSQL DB 클러스터가 유휴 상태에서 암호화되도록 선택할 수도 있습니다. 이 옵션은 암호화되지 않은 DB 스냅샷에만 가능합니다.
RDS for PostgreSQL DB 스냅샷을 Aurora PostgreSQL DB 클러스터로 마이그레이션하려면 AWS Management Console, AWS CLI 또는 RDS API를 사용합니다. AWS Management Console을 사용할 경우 콘솔은 DB 클러스터와 프라이머리 인스턴스를 모두 생성하는 데 필요한 작업을 수행합니다.
RDS 콘솔을 사용해 PostgreSQL DB 스냅샷을 마이그레이션하려면
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
[Snapshots]를 선택합니다.
-
[스냅샷(Snapshots)] 페이지에서 Aurora PostgreSQL DB 클러스터로 마이그레이션하려는 RDS for PostgreSQL 스냅샷을 선택합니다.
-
작업 을 선택한 다음 스냅샷 마이그레이션을 선택합니다.
-
[Migrate Database] 페이지에서 다음과 같이 값을 설정합니다.
-
DB 엔진 버전: 마이그레이션된 새 인스턴스에 사용할 DB 엔진 버전을 선택합니다.
-
[DB 인스턴스 식별자(DB instance identifier)]: 선택한 AWS 리전의 계정에 대해 고유한 DB 클러스터의 이름을 입력합니다. 이 식별자는 DB 클러스터에 속한 인스턴스의 엔드포인트 주소로 사용됩니다. 선택한 AWS 리전 및 DB 엔진 포함(예:
aurora-cluster1
) 등의 몇 가지 지능적 요소를 이름에 추가할 수 있습니다.DB 인스턴스 식별자는 다음과 같은 제약 조건이 있습니다.
-
1–63자의 영숫자 또는 하이픈으로 구성되어야 합니다.
-
첫 번째 문자는 글자이어야 합니다.
-
하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.
-
각 AWS 리전별로 AWS 계정마다 모든 DB 인스턴스가 고유해야 합니다.
-
-
DB 인스턴스 클래스: 데이터베이스에 필요한 스토리지와 용량을 지닌 DB 인스턴스 클래스를 선택합니다(예:
db.r6g.large
). 데이터베이스의 데이터 용량이 늘어날수록 Aurora 클러스터 볼륨도 자동 확장됩니다. 따라서 현재 스토리지 요구 사항에 맞는 DB 인스턴스 클래스를 선택해야 합니다. 자세한 내용은 Amazon Aurora 스토리지 개요 단원을 참조하십시오. -
Virtual Private Cloud(VPC): 기존 VPC가 있는 경우, VPC 식별자(예:
vpc-a464d1c1
)를 선택하여 해당 VPC를 Aurora PostgreSQL DB 클러스터에 사용할 수 있습니다. VPC 생성에 대한 내용은 자습서: DB 클러스터에 사용할 Amazon VPC 생성(IPv4 전용) 섹션을 참조하세요.기존 VPC가 없다면 [Create a new VPC]를 선택하여 Amazon RDS에서 VPC를 새로 생성하도록 할 수 있습니다.
-
DB 서브넷 그룹: 기존 서브넷 그룹이 있으면 해당 서브넷 그룹 식별자(예:
gs-subnet-group1
)를 선택하여 Aurora PostgreSQL DB 클러스터에 기존 서브넷 그룹을 사용할 수 있습니다. -
퍼블릭 액세스 가능: VPC에 있는 리소스만 DB 클러스터의 인스턴스에 액세스할 수 있도록 하려면 아니요를 선택합니다. 퍼블릭 네트워크에 있는 리소스가 DB 클러스터의 인스턴스에 액세스할 수 있도록 하려면 예를 선택합니다.
참고
퍼블릭 서브넷에서는 프로덕션 DB 클러스터가 필요 없을 수도 있습니다. 애플리케이션 서버만 DB 클러스터에 액세스하기 때문입니다. DB 클러스터가 퍼블릭 서브넷에 필요 없는 경우에는 [Publicly Accessible]을 아니오로 설정합니다.
-
VPC 보안 그룹: VPC 보안 그룹을 선택하여 데이터베이스에 대한 액세스를 허용합니다.
-
가용 영역: Aurora PostgreSQL DB 클러스터의 기본 인스턴스를 호스팅할 가용 영역을 선택합니다. Amazon RDS가 가용 영역을 선택하도록 하려면 기본 설정 없음을 선택합니다.
-
데이터베이스 포트: Aurora PostgreSQL DB 클러스터의 인스턴스에 연결할 때 사용할 기본 포트를 입력합니다. 기본값은
5432
입니다.참고
기업 방화벽 뒤에 있어서 PostgreSQL 기본 포트인 5432 같은 기본 포트에 액세스하지 못할 수도 있습니다. 이런 경우에는 기업 방화벽이 허용하는 포트 값을 입력합니다. 나중에 Aurora PostgreSQL DB 클러스터에 연결할 때도 필요하므로 이 포트 값을 기억해야 합니다.
-
암호화 활성화: 새 Aurora PostgreSQL DB 클러스터를 저장 상태에서 암호화하려면 암호화 활성화를 선택합니다. 또한 KMS 키를 AWS KMS key 값으로 선택합니다.
-
마이너 버전 자동 업그레이드: PostgreSQL DB 엔진의 마이너 버전 업그레이드가 있을 때 Aurora PostgreSQL DB 클러스터가 업그레이드를 자동으로 수신하도록 하려면 마이너 버전 자동 업그레이드 사용을 선택합니다.
마이너 버전 자동 업그레이드 옵션은 Aurora PostgreSQL DB 클러스터에 대해 PostgreSQL 엔진 마이너 버전으로의 업그레이드에만 적용됩니다. 시스템 안정성 유지를 위한 정기 패치에는 적용되지 않습니다.
-
-
[Migrate]를 선택하여 DB 스냅샷을 마이그레이션합니다.
-
새 DB 클러스터를 보려면 [ 데이터베이스 ] 를 선택합니다. 새 DB 클러스터를 선택하여 마이그레이션 진행률을 모니터링합니다. 마이그레이션이 완료되면 클러스터의 상태가 사용 가능으로 표시됩니다. 연결 및 보안 탭에서 DB 클러스터의 기본 작성기 인스턴스에 연결하는 데 사용할 클러스터 엔드포인트를 찾을 수 있습니다. Aurora PostgreSQL DB 클러스터 연결에 대한 자세한 내용은 Amazon Aurora DB 클러스터에 연결 단원을 참조하세요.
AWS CLI를 사용하여 RDS for PostgreSQL DB 스냅샷을 Aurora PostgreSQL로 마이그레이션하려면 2개의 개별 AWS CLI 명령이 필요합니다. 먼저 restore-db-cluster-from-snapshot
AWS CLI 명령을 사용하여 새 Aurora PostgreSQL DB 클러스터를 생성합니다. 그런 다음 create-db-instance
명령을 사용하여 새 클러스터에 프라이머리 DB 인스턴스를 생성하여 마이그레이션을 완료합니다. 다음 절차에서는 스냅샷 생성에 사용된 DB 인스턴스와 구성이 동일한 프라이머리 DB 인스턴스로 Aurora PostgreSQL DB 클러스터를 생성합니다.
Aurora PostgreSQL DB 클러스터로 RDS for PostgreSQL DB 스냅샷 마이그레이션
describe-db-snapshots 명령을 사용하여 마이그레이션하려는 DB 스냅샷에 대한 정보를 가져옵니다. 명령에
--db-instance-identifier
파라미터 또는--db-snapshot-identifier
를 지정할 수 있습니다. 이러한 파라미터 중 하나를 지정하지 않으면 모든 스냅샷을 가져옵니다.aws rds describe-db-snapshots --db-instance-identifier
<your-db-instance-name>
이 명령은 지정된 DB 인스턴스에서 생성된 모든 스냅샷에 대한 모든 구성 세부 정보를 반환합니다. 출력에서 마이그레이션할 스냅샷을 찾고 Amazon 리소스 이름(ARN)을 찾습니다. Amazon RDS ARN에 대해 자세히 알아보려면 Amazon Relational Database Service(Amazon RDS)를 참조하세요. ARN은 다음 출력과 유사합니다.
“DBSnapshotArn": "arn:aws:rds:
aws-region
:111122223333:snapshot:<snapshot_name>"또한 출력에서 엔진 버전, 할당된 스토리지, DB 인스턴스 암호화 여부와 같은 RDS for PostgreSQL DB 인스턴스에 대한 구성 세부 정보를 찾을 수 있습니다.
-
restore-db-cluster-from-snapshot 명령을 사용하여 마이그레이션을 시작합니다. 다음 파라미터를 지정합니다.
-
--db-cluster-identifier
- Aurora PostgreSQL DB 클러스터에 지정하려는 이름입니다. 이 Aurora DB 클러스터는 DB 스냅샷 마이그레이션의 대상입니다. -
--snapshot-identifier
- 마이그레이션할 DB 스냅샷의 Amazon 리소스 이름(ARN)입니다. -
--engine
- Aurora DB 클러스터 엔진에 대해aurora-postgresql
을 지정합니다. -
--kms-key-id
- Aurora PostgreSQL DB 클러스터를 생성할 수 있습니다. 이 선택적 파라미터를 사용하면 암호화되지 않은 DB 스냅샷에서 암호화된 Aurora PostgreSQL DB 클러스터를 생성할 수 있습니다. 또한 DB 스냅샷에 사용된 키와 DB 클러스터에 대해 다른 암호화 키를 선택할 수 있습니다.참고
암호화된 DB 스냅샷에서 암호화되지 않은 Aurora PostgreSQL DB 클러스터를 생성할 수 없습니다.
다음과 같이
--kms-key-id
파라미터가 지정되지 않은 경우 restore-db-cluster-from-snapshot AWS CLI 명령은 DB 스냅샷과 동일한 키를 사용하여 암호화되거나 원본 DB 스냅샷이 암호화되지 않은 경우 암호화되지 않은 빈 Aurora PostgreSQL DB 클러스터를 생성합니다.대상 LinuxmacOS, 또는Unix:
aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier
cluster-name
\ --snapshot-identifier arn:aws:rds:aws-region
:111122223333
:snapshot:your-snapshot-name
\ --engine aurora-postgresqlWindows의 경우:
aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier
new_cluster
^ --snapshot-identifier arn:aws:rds:aws-region
:111122223333
:snapshot:your-snapshot-name
^ --engine aurora-postgresql -
-
이 명령은 마이그레이션을 위해 생성 중인 Aurora PostgreSQL DB 클러스터에 대한 세부 정보를 반환합니다. describe-db-clusters AWS CLI 명령을 사용하여 Aurora PostgreSQL DB 클러스터의 상태를 확인할 수 있습니다.
aws rds describe-db-clusters --db-cluster-identifier
cluster-name
-
DB 클러스터가 "사용 가능" 상태가 되면 create-db-instance 명령을 사용하여 Amazon RDS DB 스냅샷을 기반으로 하는 DB 인스턴스로 Aurora PostgreSQL DB 클러스터를 채웁니다. 다음 파라미터를 지정합니다.
-
--db-cluster-identifier
- 이전 단계에서 생성한 새 Aurora PostgreSQL DB 클러스터의 이름입니다. -
--db-instance-identifier
- DB 인스턴스에 부여할 이름입니다. 이 인스턴스는 Aurora PostgreSQL DB 클러스터의 프라이머리 노드가 됩니다. -
----db-instance-class
- 사용할 DB 인스턴스 클래스를 지정합니다. 마이그레이션할 Aurora PostgreSQL 버전에서 지원하는 DB 인스턴스 클래스 중에서 선택합니다. 자세한 내용은 DB 인스턴스 클래스 유형 및 DB 인스턴스 클래스에 지원되는 DB 엔진 단원을 참조하세요. -
--engine
- DB 인스턴스에 대해aurora-postgresql
을 지정합니다.
create-db-instance
AWS CLI 명령에 적절한 옵션을 전달하여 원본 DB 스냅샷과 다른 구성으로 DB 인스턴스를 생성할 수도 있습니다. 자세한 내용은 create-db-instance 명령을 참조하세요.대상 LinuxmacOS, 또는Unix:
aws rds create-db-instance \ --db-cluster-identifier
cluster-name
\ --db-instance-identifier --db-instance-class db.instance.class
\ --engine aurora-postgresqlWindows의 경우:
aws rds create-db-instance ^ --db-cluster-identifier
cluster-name
^ --db-instance-identifier --db-instance-class db.instance.class
^ --engine aurora-postgresql -
마이그레이션 프로세스가 완료되면 Aurora PostgreSQL 클러스터에 채워진 프라이머리 DB 인스턴스가 있습니다.