⚙️
AWS CLIでAurora(MySQL5.7)をスナップショット作成からリストアまでする方法
DBのクラスター、インスタンス(プライマリー、リードレプリカ)をスナップショットから復元する機会はそう多くないので忘れないようメモ
以下の項目は、システムによって置き換える必要あり。
- スナップショット名:
sample-snapshot
- クラスター名:
sample-cluster
- プライマリーインスタンス名:
sample-primary
- リードレプリカインスタンス名:
sample-replica
- DBサブネットグループ名:
sample-db-subnet-group
- クラスターパラメータグループ名:
sample-cluster-parameter
- インスタンスパラメータグループ名:
sample-instance-parameter
- VPCセキュリティグループID:
sg-xxxx
- KMSキーID: xxx(RDS用のデフォルトのKMSキーIDでも良いかと)
スナップショット作成
aws rds create-db-cluster-snapshot \
--db-cluster-snapshot-identifier sample-snapshot \
--db-cluster-identifier sample-cluster
クラスタの作成(リストア)
--kms-key-id
部分は、AWSマネージド型のKMSのキーID(aws/rds)を使用
aws rds restore-db-cluster-from-snapshot \
--db-cluster-identifier sample-cluster \
--snapshot-identifier sample-snapshot \
--engine aurora-mysql \
--engine-version 5.7.mysql_aurora.2.10.1 \
--availability-zones "ap-northeast-1a" "ap-northeast-1c" \
--db-subnet-group-name sample-db-subnet-group \
--db-cluster-parameter-group-name sample-cluster-parameter \
--vpc-security-group-ids sg-xxxx \
--kms-key-id xxx \
--enable-cloudwatch-logs-exports "error" "slowquery"
プライマリーインスタンスの作成
- パフォーマンスインサイトを有効
- インスタンスサイズは、
db.r5.xlarge
(仮) - アカウントID部分は、置き換え必要
- パブリックアクセスは無効
- パフォーマンスインサイト用にAWSマネージド型のKMSのキーID(aws/rds)を使用
aws rds create-db-instance \
--db-cluster-identifier sample-cluster \
--db-instance-identifier sample-primary \
--db-instance-class db.r5.xlarge \
--db-parameter-group-name sample-instance-parameter \
--availability-zone ap-northeast-1a \
--engine aurora-mysql \
--monitoring-interval 60 \
--monitoring-role-arn arn:aws:iam::アカウントID:role/rds-monitoring-role \
--no-publicly-accessible \
--auto-minor-version-upgrade \
--storage-encrypted \
--preferred-maintenance-window mon:13:14-mon:13:44 \
--enable-performance-insights \
--performance-insights-kms-key-id xxxx \
--performance-insights-retention-period 7
レプリカインスタンスの作成
- レプリカは
ap-northeast-1a
に配置して今回は、Single-AZ構成 - Multi AZにするかどうかの判断はこちらの記事が参考になりそう
aws rds create-db-instance \
--db-cluster-identifier sample-cluster \
--db-instance-identifier sample-primary \
--db-instance-class db.r5.xlarge \
--db-parameter-group-name sample-instance-parameter \
--availability-zone ap-northeast-1c \
--engine aurora-mysql \
--monitoring-interval 60 \
--monitoring-role-arn arn:aws:iam::アカウントID:role/rds-monitoring-role \
--no-publicly-accessible \
--auto-minor-version-upgrade \
--storage-encrypted \
--preferred-maintenance-window mon:13:14-mon:13:44 \
--enable-performance-insights \
--performance-insights-kms-key-id xxxx \
--performance-insights-retention-period 7
Discussion