こんにちは。AWS CLIが好きな福島です。
今回は、Amazon RDSのクロスリージョン自動バックアップ関連の操作をAWS CLIで実施する方法をブログに記載いたします。 マネジメントコンソールから実施する方法は、以下のブログをご参照いただけますと幸いです。
実行環境
今回、コマンドを実行した環境は、以下の通りとなります。
(本記事でご紹介しているコマンドの中には、Linuxのコマンドを利用している箇所があります。)
# uname -a Linux LAPTOP-CNM26HN6 4.4.0-18362-Microsoft #1049-Microsoft Thu Aug 14 12:01:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux # # aws --version aws-cli/2.1.27 Python/3.7.3 Linux/4.4.0-18362-Microsoft exe/x86_64.ubuntu.18 prompt/off #
コマンド一覧
自動バックアップをコピーできるリージョン確認
aws rds describe-source-regions --region ap-northeast-1 --output table
- 実行結果
SupportsDBInstanceAutomatedBackupsReplicationの項目が「True」になっているリージョンにコピーが可能です。
-------------------------------------------------------------------------------------------------------------------------------- | DescribeSourceRegions | +------------------------------------------------------------------------------------------------------------------------------+ || SourceRegions || |+-------------------------------------------+-----------------+------------+-------------------------------------------------+| || Endpoint | RegionName | Status | SupportsDBInstanceAutomatedBackupsReplication || |+-------------------------------------------+-----------------+------------+-------------------------------------------------+| || https://rds.ap-northeast-2.amazonaws.com | ap-northeast-2 | available | False || || https://rds.ap-northeast-3.amazonaws.com | ap-northeast-3 | available | True ★ || || https://rds.ap-south-1.amazonaws.com | ap-south-1 | available | False || || https://rds.ap-southeast-1.amazonaws.com | ap-southeast-1 | available | False || || https://rds.ap-southeast-2.amazonaws.com | ap-southeast-2 | available | False || || https://rds.ca-central-1.amazonaws.com | ca-central-1 | available | False || || https://rds.eu-central-1.amazonaws.com | eu-central-1 | available | False || || https://rds.eu-north-1.amazonaws.com | eu-north-1 | available | False || || https://rds.eu-west-1.amazonaws.com | eu-west-1 | available | False || || https://rds.eu-west-2.amazonaws.com | eu-west-2 | available | False || || https://rds.eu-west-3.amazonaws.com | eu-west-3 | available | False || || https://rds.sa-east-1.amazonaws.com | sa-east-1 | available | False || || https://rds.amazonaws.com | us-east-1 | available | False || || https://rds.us-east-2.amazonaws.com | us-east-2 | available | False || || https://rds.us-west-1.amazonaws.com | us-west-1 | available | False || || https://rds.us-west-2.amazonaws.com | us-west-2 | available | False || |+-------------------------------------------+-----------------+------------+-------------------------------------------------+|
クロスリージョン自動バックアップの設定確認
aws rds describe-db-instances --query "DBInstances[].[DBInstanceIdentifier,DBInstanceAutomatedBackupsReplications[0].DBInstanceAutomatedBackupsArn]" --output text | column -t
- 実行結果 2列目にARNが表示されていると設定が有効になっております。
fk-jira None fk-test-aurora-postgresql-instance-1 None fk-test-aurora-prod-instance-1 None fk-test-aurora-prod-instance-2 None fk-test-oracle None fk-test-postgresql arn:aws:rds:ap-northeast-3:xxxxxxxxxxxx:auto-backup:ab-e2shw4ttsvy6oy2wlhpinxzrd2bn6cib43sjnei fk-test-restore None
クロスリージョン自動バックアップの有効化
--regionには、複製先のリージョンを指定します。
--source-db-instance-arnには、複製元となるRDSを指定します。
--backup-retention-periodには、バックアップを保持する期間を指定します。
以下の場合、ap-northeast-1(東京)にある「fk-test-postgresql」をap-northeast-3(大阪)にコピーする設定となります。
aws rds start-db-instance-automated-backups-replication \ --region ap-northeast-3 \ --source-db-instance-arn "arn:aws:rds:ap-northeast-1:xxxxxxxxx:db:fk-test-postgresql" --backup-retention-period 7
クロスリージョン自動バックアップの無効化
aws rds stop-db-instance-automated-backups-replication \ --region ap-northeast-3 \ --source-db-instance-arn "arn:aws:rds:ap-northeast-1:xxxxxxxxx:db:fk-test-postgresql"
コピーしたバックアップの確認
echo "DBInstanceIdentifier Status InstanceCreateTime BackupRetentionPeriod" > /tmp/awscli.tmp;\ aws rds describe-db-instances --query "DBInstances[].[DBInstanceAutomatedBackupsReplications[0].DBInstanceAutomatedBackupsArn]" --output text | grep -v None | while read line do replication_region=$(echo $line | awk -F\: '{print $4}') aws rds describe-db-instance-automated-backups --db-instance-automated-backups-arn $line \ --region $replication_region \ --query "DBInstanceAutomatedBackups[].[DBInstanceIdentifier,Status,InstanceCreateTime,BackupRetentionPeriod]" \ --output text >> /tmp/awscli.tmp done;\ column -t /tmp/awscli.tmp;\ rm /tmp/awscli.tmp
- 実行結果
DBInstanceIdentifier Status InstanceCreateTime BackupRetentionPeriod fk-test-postgresql replicating 2021-03-09T14:36:11+00:00 7
終わりに
今回は、AWS CLIを使って、Amazon RDSのクロスリージョン自動バックアップ関連の操作をしてみました。 どなたかのお役に立てれば幸いです。