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 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">404 - Not Found 404 - Not Found
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);