반응형

이번 포스팅에서는 EC2 인스턴스의 유저데이터 및 메타데이터의 설정 방법 및 활용에 대해서 알아보려고 한다.

 

 


유저데이터 (EC2 User Data)

 

 

EC2 인스턴스를 최초 실행할 때 사용자 정의 스크립트를 실행할 수 있는 기능 인스턴스의 부팅 과정에서 실행되며, 필요한 초기화 작업을 자동으로 수행할 수 있다.

 

  • 동일한 작업을 여러 인스턴스에 적용해야 할 때, 수작업 대신 자동화를 통해 시간 절약
  • EC2 인스턴스 설정(보안 설정, 인스턴스 설정 등), 외부 패키지 및 애플리케이션 설치 및 실행 등
    • ex) Git 코드를 다운로드받고, Docker를 다운받아 이미지를 올리는 것 등
  • 필요 시 재부팅 마다 실행하도록 설정 가능
  • 특히 Auto Scaling 그룹에서 새로운 인스턴스가 생성될 때 User Data를 통해 초기화 작업을 자동으로 처리할 수 있어 편리하

 

 

실행 모드

  • Shell Script: 일반적인 셸 명령어를 실행할 수 있는 방식으로 간단한 작업에 적합하다.
  • Cloud-init: YAML 형식으로 작성하며 소프트웨어 설치, 설정 관리, 사용자 생성 등을 포함한 복잡한 작업을 정의할 수 있다.

 

 


EC2 : 사용자 데이터 설정하기

EC2 인스턴스에서 사용자 데이터를 편집할 수 있다. 위의 내용은 Ubuntu의 apt를 사용하여 docker 실행에 필요한 패키지들을 다운로드하는 과정을 자동으로 수행하도록 유저데이터를 설정한 것이다.

 

 

 


사용자 데이터 결과 확인 및 디버깅

 

cloud-init.log : EC2 인스턴스가 초기화되는 전체 과정에 대한 상세 로그가 기록된 파일.

cloud-init-output.log : EC2 초기화 과정에서의 스크립트 출력 및 에러 메시지가 기록된 로그 파일.

 

해당 두 가지의 로그 내용을 바탕으로 User Data가 성공적으로 반영되었는지, 혹시 실패하였다면 어디서 실패했는지를 파악할 수 있다.

일반적으로 Output 로그를 먼저 확인하여 스크립트 결과를 확인하고, 필요 시 세부 내역에 대해 로그를 확인한다.

 

 

 

 


메타데이터 (EC2 Meta Data)

 

 

EC2 인스턴스가 자체적으로 속성 및 정보를 조회할 수 있도록 AWS에서 제공하는 서비스

메타데이터는 AMI ID, 네트워크 정보(IP 주소, 보안그룹 등), EBS 볼륨 매핑 정보 등 인스턴스와 관련된 다양한 정보를 포함한다

이 정보는 인스턴스 내부에서만 접근 가능하며, 다른 인스턴스에서는 접근할 수 없다.

 

IMDS (Instance Metadata Service)

EC2 인스턴스에서 실행 중인 애플리케이션이 인스턴스 메타데이터IAM 역할 자격증명과 같은 정보를 안전하게 조회할 수 있도록 제공되는 서비스. 네트워크를 통해 간단한 HTTP 요청으로 동작한다.

 

IP 주소 : 169.254.169.254(IPv4), fd00:ec2::254(IPv6)

 

동작 방식

V1 : Request/Response 기반

V2 : 세션 기반 (디폴트, 현재 주로 사용됨) → 보안 토큰을 발급받아 요청 시 토큰 사용. 높은 보안 수준. 정책을 통해 강제적으로 IMDS v2로 강제할 수 있음. AWS 단의 Best Practice(권장 사항)

 

 


주요 사용 목적

 

동적 설정 및 초기화: 인스턴스가 환경 설정을 메타데이터를 바탕으로 동적으로 변경할 수 있다.

  • ex) EC2 인스턴스 ID를 기반으로 애플리케이션의 Alias 설정 등을 초기화.

IAM 임시 자격증명 조회: 인스턴스에 할당된 IAM 역할의 임시 자격증명(Access Key, Secret Key)을 조회하여 역할을 부여받을 수 있음.

 

https://sjh9708.tistory.com/247

 

[AWS] IAM : 인증과 접근 방식 (장기 자격 증명 & 임시 자격 증명)

이번 포스팅에서는 이전 포스팅에서 다루어보았던 권한 정책 부여 방식에 따라, 서비스를 사용하기 위해서 자격 증명을 통해 인증하는 방법을 살펴보려고 한다. 영구적 정책 부여 vs 임시 정책

sjh9708.tistory.com

 

 

 


EC2 : 메타데이터 엑세스 활성화

 

 

 

디폴트로 활성화되어 동작하여, V2만을 사용하도록 강제하는 등의 옵션을 부여할 수 있다. 요금은 무료이다.

 

 

 


IMDS V2를 사용하여 인스턴스 메타데이터 조회하기

 

 

1. IMDS v2에 보안 토큰 요청

TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
  • curl 명령어를 사용해 IMDS의 보안 토큰을 발급받는 /latest/api/token 엔드포인트 요청을 보낸다.
  • 헤더에 X-aws-ec2-metadata-token-ttl-seconds는 토큰의 유효 시간을 설정하여 보낸다.
  • 반환받은 보안 토큰을 변수 TOKEN에 저장하여 사용한다.

 

2. 보안 토큰을 활용하여 EC2 인스턴스의 ID 확인

curl -s -H "x-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id
  • 인스턴스 ID를 조회하는 IMDS 엔드포인트로 요청을 보낸다.
  • 헤더 x-aws-ec2-metadata-token: $TOKEN을 포함하여 요청한다.

 

 

 

 


References

 

https://docs.aws.amazon.com/

 

https://docs.aws.amazon.com/

 

docs.aws.amazon.com

 

https://www.inflearn.com/course/%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EB%8A%94-aws-%EA%B8%B0%EC%B4%88/dashboard

 

쉽게 설명하는 AWS 기초 강의 강의 | AWS 강의실 - 인프런

AWS 강의실 | AWS 여정을 시작하기 위해 가장 필요한 내용을 담았습니다., 안녕하세요. AWS 강의실입니다.AWS 공식 커뮤니티 빌더이자 2만명의 구독자를 보유한 AWS Only 강의 유튜브의 경험으로 AWS를

www.inflearn.com

 

 

 

반응형

BELATED ARTICLES

more