AWS SDK for PHPを利用して、awsインスタンスを定時起動させる(Elastic IPsの割り当て)
クラウド(aws)を利用して弾力性のあるシステムを構築する(入門) - 4丁目よりで記述した方法では起動したインスタンスにIPアドレスが割り当てられていない。IPアドレスを割り当てるにはassociate_address(AWS SDK for PHP 1.5.15)を使って行うようです。
前回の起動スクリプトを改造する。
<?php /* *起動スクリプト ec2_start.php */ //ec2を操作する為のライブラリ読み込み require_once("AWSSDKforPHP/sdk.class.php"); //アクセスキーの設定 define('AWS_KEY', 'アクセスキーIDを記述'); define('AWS_SECRET_KEY', 'シークレットアクセスキーを記述'); //EC2を操作する為のオブジェクト生成 $ec2 = new AmazonEC2(); //リージョンを変更(東京リージョン) $ec2->set_region(AmazonEC2::REGION_APAC_NE1); //EC2のインスタンスを起動 $result= $ec2->start_instances('インスタンスIDを記述'); if(!$result->isOK()){ error_log("AWS起動失敗",1,"メールアドレス設定"); } //ipアドレスを割り当てる(このタイミングで割り当てると失敗します・・・) $r = $ec2->associate_address('インスタンスIDを記述', 'Elastic IPsで取得したIPアドレス'); if(!$r->isOK()){ error_log("ipアドレス割り当て失敗",1,"メールアドレス設定"); }
参考
AWS SDK for PHP 1.5.15(associate_addressのドキュメント)