処理の実行
IMDSv2で利用するトークンを取得して、ヘッダー形式で変数に格納します。
変数の設定:
EC2_METADATA_SECOND='900'
コマンド:
EC2_METADATA_TOKEN=$( \
curl -s \
-X PUT "http://169.254.169.254/latest/api/token" \
-H "X-aws-ec2-metadata-token-ttl-seconds: ${EC2_METADATA_SECOND}" \
) \
&& echo ${EC2_METADATA_TOKEN}
結果(例):
AQAAAJpDbguWKZjFZdh6vShmtdpW4qDe2jrPtodG9VxCC0yhNz-ezQ==
変数の設定:
EC2_METADATA_HEADER="X-aws-ec2-metadata-token: ${EC2_METADATA_TOKEN}" \
&& echo ${EC2_METADATA_HEADER}
結果(例):
X-aws-ec2-metadata-token: AQAAAJpDbguWKZjFZdh6vShmtdpW4qDe2jrPtodG9VxCC0yhNz-ezQ==
EC2インスタンスのメタ情報一覧(トップ)を取得します。
変数の設定:
curl -H "${EC2_METADATA_HEADER}" \
http://169.254.169.254/latest/meta-data/
結果:
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
events/
hostname
iam/
identity-credentials/
instance-action
instance-id
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
reservation-id
security-groups
EC2インスタンスのインスタンスタイプを取得します。
変数の設定:
EC2_INSTANCE_TYPE=$( \
curl -s -H "${EC2_METADATA_HEADER}" \
http://169.254.169.254/latest/meta-data/instance-type \
) \
&& echo ${EC2_INSTANCE_TYPE}
結果:
EC2インスタンスのインスタンスIDを取得します。
変数の設定:
EC2_INSTANCE_ID=$( \
curl -s -H "${EC2_METADATA_HEADER}" \
http://169.254.169.254/latest/meta-data/instance-id \
) \
&& echo ${EC2_INSTANCE_ID}
結果:
EC2インスタンスを起動したAMIを取得します。
変数の設定:
EC2_IMAGE_ID=$( \
curl -s -H "${EC2_METADATA_HEADER}" \
http://169.254.169.254/latest/meta-data/ami-id \
) \
&& echo ${EC2_IMAGE_ID}
結果:
EC2インスタンスのグローバルIPアドレスを取得します。
変数の設定:
EC2_IP_PUBLIC=$( \
curl -s -H "${EC2_METADATA_HEADER}" \
http://169.254.169.254/latest/meta-data/public-ipv4 \
) \
&& echo ${EC2_IP_PUBLIC}
結果:
EC2インスタンスの属しているAZを取得します。
変数の設定:
EC2_AZ_NAME=$( \
curl -s -H "${EC2_METADATA_HEADER}" \
http://169.254.169.254/latest/meta-data/placement/availability-zone \
) \
&& echo ${EC2_AZ_NAME}
結果(例):
EC2インスタンスの属しているリージョンを取得します。
変数の設定:
EC2_REGION_NAME=$( \
curl -s -H "${EC2_METADATA_HEADER}" \
http://169.254.169.254/latest/meta-data/placement/availability-zone \
| sed -e 's/[a-z]*$//' \
) \
&& echo ${EC2_REGION_NAME}
結果(例):
完了確認
「EC2インスタンスのメタ情報を取得できている。」ことを確認します。