【AWS CLI】Amazon RDS クロスリージョン自動バックアップの設定をしてみた

記事タイトルとURLをコピーする

こんにちは。AWS CLIが好きな福島です。

今回は、Amazon RDSのクロスリージョン自動バックアップ関連の操作をAWS CLIで実施する方法をブログに記載いたします。 マネジメントコンソールから実施する方法は、以下のブログをご参照いただけますと幸いです。

blog.serverworks.co.jp

実行環境

今回、コマンドを実行した環境は、以下の通りとなります。
(本記事でご紹介しているコマンドの中には、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のクロスリージョン自動バックアップ関連の操作をしてみました。 どなたかのお役に立てれば幸いです。

福島 和弥 (記事一覧)

2019/10 入社

AWS CLIが好きです。