(1) RDS(MySQL)
構成:マルチ AZ+リードレプリカ1個
マルチ AZ 配置をサポートするデータベースエンジンの場合、
DB インスタンスが単一アベイラビリティーゾーンで設定されていてもマルチ AZ で設定されていても、
そのインスタンスを停止して再度起動することができます。
マルチ AZ 設定の Amazon RDS for SQL Server DB インスタンスは停止できません。
リードレプリカが含まれているか、リードレプリカである DB インスタンスは停止できません。
-- プライマリインスタンス作成
aws rds create-db-instance \
--db-instance-identifier mysql01 \
--allocated-storage 20 \
--db-instance-class db.t3.micro \
--engine mysql \
--master-username root \
--master-user-password 'password' \
--multi-az \
--engine-version 8.0.25 \
--storage-type gp2 \
--no-publicly-accessible \
--no-enable-performance-insights \
--no-auto-minor-version-upgrade \
--backup-retention-period 1
-- リードレプリカ作成
aws rds create-db-instance-read-replica \
--db-instance-identifier mysql01-replica01 \
--region ap-northeast-1 \
--source-db-instance-identifier arn:aws:rds:ap-northeast-1:999999999999:db:mysql01
aws rds describe-db-instances
-- 手動フェイルオーバ実行
aws rds reboot-db-instance --db-instance-identifier mysql01 --force-failover
-- エンドポイント確認
mysql -h mysql01.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -P 3306 -u root -p
mysql -h mysql01-replica01.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -P 3306 -u root -p
-- プライマリインスタンス停止/起動
aws rds stop-db-instance --db-instance-identifier mysql01
aws rds start-db-instance --db-instance-identifier mysql01
★リードレプリカがある場合、停止できない
-- プライマリインスタンス再起動
aws rds reboot-db-instance --db-instance-identifier mysql01 --no-force-failover
-- リードレプリカ停止/起動
★リードレプリカは停止できない
-- リードレプリカ再起動
aws rds reboot-db-instance --db-instance-identifier mysql01-replica01 --no-force-failover
-- クリーンアップ
aws rds delete-db-instance \
--db-instance-identifier mysql01-replica01 \
--skip-final-snapshot
aws rds delete-db-instance \
--db-instance-identifier mysql01 \
--skip-final-snapshot
(2) Aurora(MySQL)
構成:ライターインスタンス+リーダーインスタンス
Aurora MySQL バージョン 2.10 以降では、クラスター内のリーダーインスタンスを再起動せずに、
Aurora MySQL クラスターのライターインスタンスを再起動できます。
-- クラスタ作成
aws rds create-db-cluster \
--db-cluster-identifier cluster01 \
--engine aurora-mysql \
--engine-version 5.7.mysql_aurora.2.10.0 \
--master-username root \
--master-user-password 'password'
aws rds create-db-instance \
--db-instance-identifier cluster01-instance01 \
--db-cluster-identifier cluster01 \
--db-instance-class db.t3.small \
--engine aurora-mysql \
--no-auto-minor-version-upgrade
aws rds create-db-instance \
--db-instance-identifier cluster01-instance02 \
--db-cluster-identifier cluster01 \
--db-instance-class db.t3.small \
--engine aurora-mysql \
--no-auto-minor-version-upgrade
aws rds describe-db-clusters
aws rds describe-db-instances
-- 手動フェイルオーバ実行
aws rds failover-db-cluster \
--db-cluster-identifier cluster01 \
--target-db-instance-identifier cluster01-instance02
-- エンドポイント確認
mysql -h cluster01.cluster-xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -P 3306 -u root -p
mysql -h cluster01.cluster-ro-xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -P 3306 -u root -p
mysql -h cluster01-instance01.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -P 3306 -u root -p
mysql -h cluster01-instance02.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -P 3306 -u root -p
-- ライターインスタンス停止/起動
★インスタンスの停止はできない
-- ライターインスタンス再起動
aws rds reboot-db-instance --db-instance-identifier cluster01-instance02
-- リーダーインスタンス停止/起動
★インスタンスの停止はできない
-- リーダーインスタンス再起動
aws rds reboot-db-instance --db-instance-identifier cluster01-instance01
-- クラスタ停止/起動
aws rds stop-db-cluster --db-cluster-identifier cluster01
aws rds start-db-cluster --db-cluster-identifier cluster01
-- クラスタ再起動
★コマンドなし
-- クリーンアップ
aws rds delete-db-instance \
--db-instance-identifier cluster01-instance02 \
--skip-final-snapshot
aws rds delete-db-instance \
--db-instance-identifier cluster01-instance01 \
--skip-final-snapshot
aws rds delete-db-cluster \
--db-cluster-identifier cluster01 \
--skip-final-snapshot
(3)Redshift
マルチ AZ 配置をサポートしていない
(4)Redis
構成:クラスターモードが無効、プライマリーノード+レプリカノード1個
-- クラスター作成
aws elasticache create-replication-group \
--replication-group-id redis01 \
--replication-group-description "redis01" \
--num-cache-clusters 2 \
--cache-node-type cache.t3.micro \
--cache-parameter-group default.redis6.x \
--engine redis \
--engine-version 6.x \
--multi-az-enabled
aws elasticache describe-replication-groups --replication-group-id redis01
aws elasticache describe-cache-clusters --cache-cluster-id redis01-001 --show-cache-node-info
aws elasticache describe-cache-clusters --cache-cluster-id redis01-002 --show-cache-node-info
-- 手動フェイルオーバ実行
aws elasticache test-failover \
--replication-group-id redis01 \
--node-group-id 0001
-- エンドポイント確認
src/redis-cli -h redis01.xxxxxx.ng.0001.apne1.cache.amazonaws.com -c -p 6379
src/redis-cli -h redis01-ro.xxxxxx.ng.0001.apne1.cache.amazonaws.com -c -p 6379
src/redis-cli -h redis01-001.xxxxxx.0001.apne1.cache.amazonaws.com -c -p 6379
src/redis-cli -h redis01-002.xxxxxx.0001.apne1.cache.amazonaws.com -c -p 6379
-- クリーンアップ
aws elasticache delete-replication-group \
--replication-group-id redis01 \
--no-retain-primary-cluster