2012年4月29日日曜日

EIPを付け替えるPHPスクリプト

スズキです。

指定したEIPを自分自身(EC2)に付け替えるPHPスクリプトを作ってみました。

#!/usr/bin/php
<?php
require_once("/opt/aws/php/default/sdk.class.php");
define("EIP", "xxx.xxx.xxx.xxx");
$ec2 = new AmazonEC2(array(
  "key"    => "ACCESS KEY",
  "secret" => "SECRET KEY"
));
$ec2->set_region(AmazonEC2::REGION_APAC_NE1);
$response = $ec2->disassociate_address(EIP);
if(!$response->isOK()) {
  error_log("[" . $response->body->Errors->Error->Code . "] " . $response->body->Errors->Error->Message);
}
$response = $ec2->associate_address(
  file_get_contents("http://169.254.169.254/latest/meta-data/instance-id"),
  EIP
);
if(!$response->isOK()) {
  error_log("[" . $response->body->Errors->Error->Code . "] " . $response->body->Errors->Error->Message);
  exit(1);
}
exit(0);
?>

一旦"disassociate_address"で、もし他のEC2に付けられていたら外し、
自分自身(EC2)に付け直すようにしています。

Heartbeat(Pacemaker)と連携させてみよう。
--------
http://www.suz-lab.com

0 コメント: