2011年6月24日金曜日

EC2起動時に設定できる"User Data"をPHPで利用する

スズキです。

EC2はインスタンス起動時に"User Data"を設定でき、
"http://169.254.169.254/1.0/user-data"にアクセスすることで取得することができます。

"User Data"が設定されていない場合は、次のように404となります。

# curl http://169.254.169.254/1.0/user-data
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>404 - Not Found</title>
 </head>
 <body>
  <h1>404 - Not Found</h1>
 </body>
</html>

"AWS Managemrnt Console"で下記のように"User Data"を設定して
EC2インスタンスを起動すると、


以下のように設定した値が取得できます。(ステータスコードは200です)

# curl http://169.254.169.254/1.0/user-data
test

とういうことで、PHPで"User Data"の有り無しで処理を分ける場合は、
次のようになります。

$curl = curl_init("http://169.254.169.254/1.0/user-data");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_exec($curl);

if(curl_getinfo($curl, CURLINFO_HTTP_CODE) != 200) {
    // "user-data"が設定されていたときの処理
}

curl_close($curl);

"Auto Scaling"と"SimpleDB"は明日にまわそう。
--------
http://www.suz-lab.com

0 コメント: