今回は、指定したEIPを自分自身(EC2)に付け替えるPHPスクリプトを紹介します。

#!/usr/bin/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で指定のEIPが他のEC2に付けられていたら外し、自分自身(EC2)に付け直すようにしています。

Heartbeat(Pacemaker)と連携させてみようと思います。

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