今まで、コンソールからそれぞれのRDSを指定して、スナップショットを作成するか、コンソールからインスタンスIDを確認した上で、スクリプトでスナップショットを作成していたのですが、必ずコンソールへログインする必要がありました。
今回は、コンソールへログインせずに、PHPでインスタンスからRDSの一覧を取得して、RDSのスナップショットをまとめて作成出来るようにしました。
require_once("./sdk.class.php"); define("AWS_KEY" , "AAAAAAAA"); define("AWS_SECRET_KEY", "SSSSSSSS"); $rds = new AmazonRDS(); $rds->set_region(AmazonRDS::REGION_APAC_NE1); $ins_rsp = $rds->describe_db_instances(); $instances = $ins_rsp->body->DescribeDBInstancesResult->DBInstances->DBInstance; if(!$ins_rsp->isOK()) { fputs(STDERR, $ins_rsp->body->Error->Message . "n"); exit(1); } foreach($instances as $instance){ $name = $instance->DBInstanceIdentifier; $snp_rsp = $rds->create_db_snapshot("a-" . date("YmdHis") . "-" . $name, $name); if(!$snp_rsp->isOK()) { fputs(STDERR, $snp_rsp->body->Error->Message . "n"); } }
以上で、RDS一覧の取得とスナップショットの作成完了です。
これを使えば、まとめてスナップショットを作成することが出来、とても便利です。
今後、AWSのメンテナンスツールはPHP用いて実装していこうと思います。