コマンドラインでRDSスナップショットのリージョン間コピーをやってみる
こんにちは@oko_changです。
前回はRDSをリージョン間でレプリケーション構成にしてみましたが、今回はこちらも少し前にサポートされたRDSスナップショットのリージョン間コピーを試してみたいと思います。
Amazon Web Services ブログ: 【AWS発表】 Amazon RDSのリージョン間スナップショットコピーが可能に
環境
今回はMac OSXにインストールされたRDS Command Line ToolkitとAWS Command Line Interfaceの両方で試してみます。
それぞれのインストール方法は以下をご参考下さい。
RDS Command Line Toolkitの場合
バージョンを確認しておきます
$ rds --version Relational Database Service CLI version 1.15.001 (API 2013-09-09)
コピーするスナップショット(rds:okochangdb-2013-11-09-03-50)を確認します
$ rds-describe-db-snapshots \ --region ap-northeast-1 \ --snapshot-type automated DBSNAPSHOT rds:okochangdb-2013-11-09-03-50 2013-11-09T03:50:46.386Z okochangdb 2013-11-09T03:48:26.507Z mysql 10 available 100 root default:mysql-5-6 5.6.13 general-public-license automated vpc-0fc5a566
東京リージョンのスナップショットをシンガポールリージョンへコピーします
$ rds-copy-db-snapshot \ -s arn:aws:rds:ap-northeast-1:123456789123:snapshot:rds:okochangdb-2013-11-09-03-50 \ -t okochangdb-snapshot --region ap-southeast-1 DBSNAPSHOT okochangdb-snapshot okochangdb 2013-11-09T03:48:26.507Z mysql 10 creating 0 ap-northeast-1 root 5.6.13 general-public-license manual
コピーが開始されています
$ rds-describe-db-snapshots \ --region ap-southeast-1 \ --snapshot-type manual DBSNAPSHOT okochangdb-snapshot okochangdb 2013-11-09T03:48:26.507Z mysql 10 creating 1 ap-northeast-1 root 5.6.13 general-public-license manual
コピーが完了すると以下のようにavailableになります
$ rds-describe-db-snapshots \ --region ap-southeast-1 \ --snapshot-type manual DBSNAPSHOT okochangdb-snapshot 2013-11-09T04:03:54.297Z okochangdb 2013-11-09T03:48:26.507Z mysql 10 available 100 ap-northeast-1 root 5.6.13 general-public-license manual
AWS Command Line Interfaceの場合
バージョンを確認しておきます
$ aws --version aws-cli/1.2.4 Python/2.7.1 Darwin/11.4.2
コピーするスナップショット(rds:okochangdb-2013-11-09-03-50)を確認します
$ aws rds describe-db-snapshots --snapshot-type automated --region ap-northeast-1 { "DBSnapshots": [ { "Engine": "mysql", "SnapshotCreateTime": "2013-11-09T03:50:46.386Z", "AvailabilityZone": "ap-northeast-1a", "MasterUsername": "root", "LicenseModel": "general-public-license", "Status": "available", "VpcId": "vpc-0fc5a566", "DBSnapshotIdentifier": "rds:okochangdb-2013-11-09-03-50", "InstanceCreateTime": "2013-11-09T03:48:26.507Z", "OptionGroupName": "default:mysql-5-6", "AllocatedStorage": 10, "EngineVersion": "5.6.13", "SnapshotType": "automated", "Port": 3306, "DBInstanceIdentifier": "okochangdb" } ] }
東京リージョンのスナップショットをシンガポールリージョンへコピーします
$ aws rds copy-db-snapshot \ --source-db-snapshot-identifier arn:aws:rds:ap-northeast-1:123456789123:snapshot:rds:okochangdb-2013-11-09-03-50 \ --target-db-snapshot-identifier okochangdb-hoge \ --region ap-southeast-1 { "DBSnapshot": { "Engine": "mysql", "Status": "creating", "MasterUsername": "root", "LicenseModel": "general-public-license", "DBSnapshotIdentifier": "okochangdb", "InstanceCreateTime": "2013-11-09T03:48:26.507Z", "AllocatedStorage": 10, "EngineVersion": "5.6.13", "SnapshotType": "manual", "Port": 3306, "DBInstanceIdentifier": "okochangdb" } }
コピーが開始されています
$ aws rds describe-db-snapshots --region ap-southeast-1 --snapshot-type manual { "DBSnapshots": [ { "Engine": "mysql", "Status": "creating", "MasterUsername": "root", "LicenseModel": "general-public-license", "DBSnapshotIdentifier": "okochangdb", "InstanceCreateTime": "2013-11-09T03:48:26.507Z", "AllocatedStorage": 10, "EngineVersion": "5.6.13", "SnapshotType": "manual", "Port": 3306, "DBInstanceIdentifier": "okochangdb" } ] }
コピーが完了すると以下のようにavailableになります
$ aws rds describe-db-snapshots --region ap-southeast-1 --snapshot-type manual{ "DBSnapshots": [ { "Engine": "mysql", "SnapshotCreateTime": "2013-11-09T04:36:18.840Z", "MasterUsername": "root", "LicenseModel": "general-public-license", "Status": "available", "DBSnapshotIdentifier": "okochangdb", "InstanceCreateTime": "2013-11-09T03:48:26.507Z", "AllocatedStorage": 10, "EngineVersion": "5.6.13", "SnapshotType": "manual", "Port": 3306, "DBInstanceIdentifier": "okochangdb" } ] }
まとめ
それぞれのコマンドを実行するだけなので簡単にコピーが出来ます。
Management Consoleでも簡単ですが、コマンドラインツールでの実行方法を覚えておくとスクリプトとかを作るときに楽ですね。
ポイントはコピー元のスナップショットはARNで指定するってところでしょうか。
今回のARNは以下のようなルールになっています。
- arn:aws:rds:リージョン:アカウントID:snapshot:スナップショット名
参考
- http://aws.typepad.com/aws_japan/2013/11/cross-region-snapshot-copy-for-amazon-rds.html
- http://docs.aws.amazon.com/AmazonRDS/latest/CommandLineReference/CLIReference-cmd-CopyDBSnapshot.html
- http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
Amazon Web Services ガイドブック クラウドでWebサービスを作ろう!
- 作者: Jeff Barr,玉川憲,株式会社クイープ
- 出版社/メーカー: インプレスジャパン
- 発売日: 2011/02/18
- メディア: 単行本(ソフトカバー)
- 購入: 10人 クリック: 240回
- この商品を含むブログ (17件) を見る