EC2 Instance Metadata 접근 방법 정리

이 글은 AI가 작성했습니다.

개요

Amazon EC2 인스턴스는 실행 중인 인스턴스 내부에서 다양한 환경 정보를 조회할 수 있는 Instance Metadata Service(IMDS) 를 제공한다.

이 메타데이터는 인스턴스 내부 애플리케이션이나 스크립트에서 다음과 같은 정보를 동적으로 조회할 때 사용된다.

  • 인스턴스 ID
  • 로컬 IP 주소
  • IAM Role 자격 증명
  • 사용자 데이터(User Data)
  • 네트워크 설정

메타데이터는 EC2 내부의 링크 로컬 주소(link-local address) 를 통해 HTTP 요청으로 접근할 수 있다.


Instance Metadata Service (IMDS)

EC2 메타데이터 서비스는 두 가지 버전을 제공한다.

  • IMDSv1
  • IMDSv2

기본적으로 두 버전을 모두 사용할 수 있지만 보안 강화를 위해 IMDSv2 사용이 권장된다.

IMDSv2는 요청 전에 세션 토큰을 발급받아야 하는 방식으로 동작한다.


메타데이터 접근 주소

EC2 인스턴스 내부에서 다음 주소로 메타데이터에 접근할 수 있다.

IPv4

http://169.254.169.254/latest/meta-data/

IPv6

http://[fd00:ec2::254]/latest/meta-data/

이 주소는 인스턴스 내부에서만 접근 가능한 링크-로컬 주소다.


IMDSv2 사용 예시

IMDSv2는 먼저 토큰을 발급받은 후 메타데이터 요청에 사용한다.

1. 토큰 발급

TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" \
  -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")

2. 메타데이터 조회

curl -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/

메타데이터 구성

EC2 메타데이터는 다음과 같은 범주로 구성된다.

  • Metadata

    • 인스턴스 ID
    • AMI ID
    • 네트워크 정보
  • Dynamic Data

    • IAM Role credentials
    • instance identity document
  • User Data

    • 인스턴스 시작 시 실행되는 사용자 스크립트

User Data

User Data는 인스턴스 시작 시 실행되는 스크립트 또는 설정 데이터를 의미한다.

주요 특징

  • Base64 인코딩 필요
  • 최대 16KB 제한
  • 인스턴스 속성으로 저장
  • AMI 생성 시 포함되지 않음

일반적으로 다음 용도로 사용된다.

  • 서버 초기 설정
  • 패키지 설치
  • 애플리케이션 자동 배포

인스턴스 메타데이터 옵션 확인

EC2 콘솔에서 현재 인스턴스의 IMDS 설정을 확인할 수 있다.

확인 항목

  • IMDSv2

    • Required
    • Optional
  • Instance metadata tags

    • Enabled
    • Disabled

경로

EC2 Console
→ Instances
→ Instance Settings
→ Modify Instance Metadata Options

오류 코드

IMDS 요청 시 다음 HTTP 오류 코드가 반환될 수 있다.

Code의미
400잘못된 파라미터
401잘못된 토큰
403접근 금지 또는 IMDS 비활성화
404리소스 없음
503서비스 일시 오류

컨테이너 환경 고려 사항

컨테이너 환경에서 IMDS 호출 시 네트워크 홉 제한(hop limit) 문제로 요청이 실패할 수 있다.

기본값

hop limit = 1

컨테이너 환경에서는 다음과 같이 설정하는 것이 권장된다.

hop limit = 2

또는 필요한 설정(AWS Region 등)을 컨테이너 환경 변수로 직접 전달하는 방식도 사용된다.


PPS(Packet Per Second) 제한

EC2 링크-로컬 서비스에는 1024 PPS 제한이 존재한다.

다음 서비스 요청이 합산된다.

  • IMDS 요청
  • Route53 Resolver DNS
  • Amazon Time Service
  • Windows License Service

높은 트래픽 환경에서는 요청 수를 제한해야 한다.


메타데이터 사용 시 권장 사항

  • 가능하면 IMDSv2 사용
  • /latest 경로 사용 (버전 고정 방지)
  • 자격 증명 요청은 캐시 사용
  • 과도한 메타데이터 요청 방지
  • 컨테이너 환경에서는 hop limit 설정 검토

참고 자료