AWS EC2に割り当てられたパブリックIPアドレスをEC2のインスタンス内から取得する方法を記載します。
以下のコマンドで取得できます。
curl http://169.254.169.254/latest/meta-data/public-ipv4
「169.254.169.254」はメタデータを戻すサーバのアドレスですので、環境によってIPアドレスを変更する必要はありません。
EC2のインスタンス内から上記コマンドを打てば、インスタンスメタデータにアクセスして、そのインスタンスに割り当てられたパブリックIPアドレスを取得できます。
まとめ
「curl http://169.254.169.254/latest/meta-data/public-ipv4」でパブリックIPアドレスを取得可能
→「169.254.169.254」はメタデータを戻すサーバのアドレス
→インスタンスメタデータにアクセスして、そのインスタンスに割り当てられたパブリックIPアドレスを取得できる仕組み
インスタンスメタデータで取得できるもの
インスタンスメタデータには他にもいろいろなメタデータが入っています。
以下のコマンドでどんなメタデータが取得できるか確認できます。
curl http://169.254.169.254/latest/meta-data/
上記コマンド実行で、以下の結果が返ってきます。以下のメタデータを取得可能ということです。
mi-id
ami-launch-index
ami-manifest-path
block-device-mapping/
events/
hostname
iam/
identity-credentials/
instance-action
instance-id
instance-life-cycle
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/
上記の取得したいメタデータは以下のコマンドで取得可能です。
curl http://169.254.169.254/latest/meta-data/{取得したいメタデータを指定}