share facebook facebook twitter menu hatena pocket slack

2011.04.22 FRI

AWSアカウントのRDS一覧を取得とスナップショット作成

鈴木 宏康

WRITTEN BY 鈴木 宏康

今まで、コンソールからそれぞれの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用いて実装していこうと思います。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。