본문 바로가기

Cloud/AWS

[AWS] CLI 를 활용한 RDS Cluster snapshot Restore

반응형

AWS 에서 제공되는 관리형 DB 서비스인 Aurora DB 를 활용하면
아래 림과 같이 자동으로 클러스터 스냅샷이 생성 되게 됩니다.

image


이때  콘솔을 통해서 Restore Snapshot 을 진행하게 되면 클러스터와  RDS 인스턴스가 자동으로 생성되게 됩니다.
image



동일한 작업을 AWS CLI로 진행하고자
아래  명령어를 통해 RDS 를 생성해 보았습니다. 



 restore-db-cluster-from-snapshot


[--availability-zones <value>]


--db-cluster-identifier <value>


--snapshot-identifier <value>


--engine <value>


[--engine-version <value>]


[--port <value>]


[--db-subnet-group-name <value>]


[--database-name <value>]


[--option-group-name <value>]


[--vpc-security-group-ids <value>]


[--tags <value>]


[--kms-key-id <value>]


[--enable-iam-database-authentication | --no-enable-iam-database-authentication]


[--cli-input-json <value>]


[--generate-cli-skeleton <value>]

cs



Snapshot을 통해 DB가 정상적으로 만들어진 것 처럼 표출 되지만
아래와 같이 빈 클러스터만 생성되고 instance 가 생성되지 않습니다.
image

아무리 찾아봐도 Cluster를 동시에 생성할수 가 없어서 검색을 하다보니
CLI를 통해 Cluster Snapshot 을 복원하게 되면 추가적으로 인스턴스 생성작업을 다시 진행해 주어야 했습니다.
AWS 콘솔에서 클러스터 스냅샷을 복원하면

클러스터 생성  –> 클러스터 내부에 인스턴스 생성

위의 두가지  작업을 순차적으로 자동으로 진행해 주지만 CLI는 수동으로 진행을 해주어야 합니다.

아래 명령어를 통해 DB 인스턴스를 생성합니다.



  create-db-instance


[--db-name <value>]


--db-instance-identifier <value>


[--allocated-storage <value>]


--db-instance-class <value>


--engine <value>


[--master-username <value>]


[--master-user-password <value>]


[--db-security-groups <value>]


[--vpc-security-group-ids <value>]


[--availability-zone <value>]


[--db-subnet-group-name <value>]


[--preferred-maintenance-window <value>]


[--db-parameter-group-name <value>]


[--backup-retention-period <value>]


[--preferred-backup-window <value>]


[--port <value>]


[--multi-az | --no-multi-az]


[--engine-version <value>]


[--auto-minor-version-upgrade | --no-auto-minor-version-upgrade]


[--license-model <value>]


[--iops <value>]


[--option-group-name <value>]


[--character-set-name <value>]


[--publicly-accessible | --no-publicly-accessible]


[--tags <value>]


[--db-cluster-identifier <value>]


[--storage-type <value>]


[--tde-credential-arn <value>]


[--tde-credential-password <value>]


[--storage-encrypted | --no-storage-encrypted]


[--kms-key-id <value>]


[--domain <value>]


[--copy-tags-to-snapshot | --no-copy-tags-to-snapshot]


[--monitoring-interval <value>]


[--monitoring-role-arn <value>]


[--domain-iam-role-name <value>]


[--promotion-tier <value>]


[--timezone <value>]


[--enable-iam-database-authentication | --no-enable-iam-database-authentication]


[--enable-performance-insights | --no-enable-performance-insights]


[--performance-insights-kms-key-id <value>]


[--cli-input-json <value>]


[--generate-cli-skeleton <value>]

cs

cs

여기서 가장 중요한게 아래 옵션 입니다.


--db-cluster-identifier ClusterName

cs

cs

ClusterName 부분에 위에서 생성한 클러스터 이름을 입력하게 되면 클러스터 설정값을 기본으로 DB 클러스터가 생성되게 됩니다.

콘솔에서 확인해 보면 아래와 같이  지정된 클러스터 내부에 정상적으로 인스턴스 가 생성되는 것을 확인할 수 있습니다.

image



참고 : RDS CLI 구성
http://docs.aws.amazon.com/cli/latest/reference/rds/index.html