관리 메뉴

가끔 보자, 하늘.

AWS EC2의 메타 데이터를 확인하는 방법(feat. python) 본문

개발 이야기/개발 및 서비스

AWS EC2의 메타 데이터를 확인하는 방법(feat. python)

가온아 2022. 7. 26. 15:07

인스턴스의 메타데이터란 실행 중인 인스턴스를 구성 또는 관리하는 데 사용될 수 있는 인스턴스 관련 데이터입니다. (link)

예를들어 현재 실행중인 인스턴스가 어느 리전에 속해 있는지를 알고 싶을 경우 사용할 수 있습니다. 환경변수로 설정하려면 각 리전별로 배포 프로세스를 분리해야 하지만 메타 데이터로 자신의 리전을 확인할 수 있으면 보다 간단히 해결할 수 있습니다. 

메타 데이터를 확인하는 방법은 이 링크에 상세히 설명되어 있습니다. 여기서는 curl로 원하는 정보를 콘솔에서 확인하는 방법을 알아보고, python code로 처리하는 방법을 살펴보겠습니다.

우선 원하는 지역에 EC2 Instance를 하나 만들고 원격 접속을 합니다. 그리고 아래와 같이 입력해보세요. (169.254.169.254는 인스턴스 메타데이터 서비스의 IPv4 주소입니다.)

> curl 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/

그러면 위와 같이 확인 가능한 메타 데이터 리스트가 출력됩니다. 이 중 원하는 데이터를 입력하면 원하는 정보를 얻을 수 있습니다. /가 있는 경우 명세해야 하는 하위 정보가 있다는 의미입니다. 예를들어 instance-id를 확인하려면 아래와 같이 입력합니다.

> curl http://169.254.169.254/latest/meta-data/instance-id
> (출력결과)
i-0d92311261b207bcb

해당 인스턴스의 리전는 아래와 같이 확인이 가능합니다.

> curl http://169.254.169.254/latest/meta-data/placement/region
> (출력결과)
ap-northeast-2

python에서는 다음 오픈소스(링크)를 활용하면 간단히 사용이 가능합니다. (3.7 이상 버전 기준)

python3 -m pip install ec2-metadata
from ec2_metadata import ec2_metadata
print(ec2_metadata.region)

(실행결과)
ap-northeast-2

 

이상.. 도움 되셨길...! 

반응형