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);

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