작성일: 2025년 9월 4일
EC2 Instance를 운용하다보면, EC2 내부에서 실행중인 프로세스가 Amazon Cloud Infra의 Provision 정보 또는 Meta data를 조회해야 하는 경우가 있다.
(예를 들어, Instance를 여러 개 묶어서 HA 또는 Cluster를 구성하거나 EMS/NMS 시스템에게 정보를 전달하기 위해)
아래와 같이 Rest API를 이용해서 EC2 Instance 내부의 프로세스가 Instance 자체의 Meta data를 조회하는 것이 가능한다.
EC2 Instance 내부에 SSH 접속하여 아래와 같은 Shell command를 수행한다.
$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
$ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
events/
hostname
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/
$
예를 들어서, 내가 SSH 접속한 EC2 Instance가 어느 Availability Zone에서 운영되고 있는지 확인하고 싶다면 아래와 같이 HTTP Get을 한다.
$ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/placement/availability-zone
ap-northeast-2c
Amazon Cloud Infra가 해당 EC2 Instance에서 할당한 Public IP address 와 Internet domain name을 조회하고 싶다면 아래와 같이 HTTP Get을 한다.
$ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-ipv4
52.77.178.215
$ curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-hostname
ec2-52-77-178-215.ap-northeast-2.compute.amazonaws.com