인스턴스 메타데이터로 EC2 인스턴스 관리하기

인스턴스 메타데이터로 EC2 인스턴스 관리하기

*인스턴스 메타데이터(instance metadata)*는 실행 중인 인스턴스를 구성하거나 관리하는 데 사용할 수 있는 인스턴스에 대한 데이터예요. 이 절에서 인스턴스 메타데이터의 범주와 동적 데이터 범주를 자세히 살펴볼게요.

출처: 문서

본문

인스턴스 메타데이터는 실행 중인 인스턴스를 구성하거나 관리하는 데 사용할 수 있는 인스턴스에 대한 데이터예요. 인스턴스 메타데이터에는 다음이 포함돼요.

인스턴스 메타데이터 속성 —

인스턴스 메타데이터 속성은 범주로 나뉘는데, 예를 들면 호스트 이름, 이벤트, 보안 그룹이 있어요.

동적 데이터(Dynamic data) —

동적 데이터는 인스턴스가 시작될 때 생성되는 메타데이터로, 예를 들어 인스턴스 ID 문서(instance identity document)가 있어요. 자세한 내용은 동적 데이터 범주를 참고하세요.

사용자 데이터(User data) —

인스턴스 메타데이터를 사용해 인스턴스를 시작할 때 지정한 user data에 접근할 수도 있어요. 예를 들어 인스턴스 구성용 매개 변수를 지정하거나 간단한 스크립트를 포함할 수 있어요. 일반(generic) AMI를 만들고 user data로 시작 시 제공되는 구성 파일을 수정할 수도 있어요. 예를 들어 여러 소규모 비즈니스의 웹 서버를 운영한다면 모두 같은 일반 AMI를 사용하고, 시작 시 user data에 지정한 Amazon S3 버킷에서 콘텐츠를 가져올 수 있어요. 언제든 새 고객을 추가하려면 고객용 버킷을 만들고 그 콘텐츠를 추가한 다음, user data의 코드에 제공된 고유 버킷 이름으로 AMI를 시작하면 돼요. 같은 RunInstances 호출로 여러 인스턴스를 시작하면 user data가 그 예약(reservation)의 모든 인스턴스에서 사용할 수 있어요. 같은 예약의 각 인스턴스는 고유한 ami-launch-index 번호를 가지므로, 인스턴스가 무엇을 할지 제어하는 코드를 작성할 수 있어요. 예를 들어 첫 번째 호스트가 클러스터의 원본 노드로 스스로를 선택할 수 있어요. 자세한 AMI 시작 예시는 Identify each instance launched in a single request를 참고하세요.

중요

인스턴스 메타데이터와 user data는 인스턴스 내부에서만 접근할 수 있지만, 이 데이터는 인증이나 암호화 방식으로 보호되지 않아요. 인스턴스에 직접 접근할 수 있는 사람, 그리고 잠재적으로 인스턴스에서 실행되는 모든 소프트웨어가 그 메타데이터를 볼 수 있어요. 따라서 비밀번호나 수명이 긴 암호화 키 같은 민감한 데이터를 user data로 저장하면 안 돼요.

인스턴스 메타데이터 범주

인스턴스 메타데이터 속성은 범주로 나뉘어요. 인스턴스 메타데이터 속성을 검색하려면 요청에서 범주를 지정하면 응답으로 메타데이터가 반환돼요.

새 범주가 출시되면 새 버전 번호로 새 인스턴스 메타데이터 빌드가 생성돼요. 다음 표에서 범주가 출시된 버전 열은 인스턴스 메타데이터 범주가 출시된 빌드 버전을 지정해요. Amazon EC2가 새 인스턴스 메타데이터 빌드를 출시할 때마다 코드를 업데이트할 필요가 없도록, 메타데이터 요청에서 버전 번호 대신 latest를 사용하세요. 자세한 내용은 Get the available versions of the instance metadata를 참고하세요.

Amazon EC2가 새 인스턴스 메타데이터 범주를 출시하면 새 범주에 대한 인스턴스 메타데이터가 기존 인스턴스에서는 사용하지 못할 수 있어요. Nitro 기반 인스턴스에서는 시작 당시에 사용할 수 있었던 범주의 인스턴스 메타데이터만 검색할 수 있어요. Xen 하이퍼바이저가 있는 인스턴스에서는 인스턴스를 중지한 다음 시작해 인스턴스에 사용할 수 있는 범주를 업데이트할 수 있어요.

다음 표는 인스턴스 메타데이터의 범주를 나열해요. 일부 범주 이름에는 내 인스턴스에 고유한 데이터에 대한 자리 표시자(placeholder)가 포함돼요. 예를 들어 mac은 네트워크 인터페이스의 MAC 주소를 나타내요. 인스턴스 메타데이터를 검색할 때는 자리 표시자를 실제 값으로 바꿔야 해요.

범주 설명 범주가 출시된 버전
ami-id 인스턴스를 시작하는 데 사용된 AMI ID. 1.0
ami-launch-index 같은 RunInstances 호출로 여러 인스턴스를 시작하면 이 값은 각 인스턴스의 시작 순서를 나타내요. 처음 시작된 인스턴스의 값은 0이에요. Auto Scaling이나 EC2 fleet으로 인스턴스를 시작하면 이 값은 항상 0이에요. 1.0
ami-manifest-path Amazon S3의 AMI 매니페스트 파일 경로. Amazon EBS 백업 AMI로 인스턴스를 시작했다면 반환된 결과는 unknown이에요. 1.0
ancestor-ami-ids 이 AMI를 만들기 위해 리번들(rebundle)된 인스턴스의 AMI ID. 이 값은 AMI 매니페스트 파일에 ancestor-amis 키가 있을 때만 존재해요. 2007-10-10
autoscaling/target-lifecycle-state Auto Scaling 인스턴스가 전환되는 대상 Auto Scaling 수명 주기 상태를 보여주는 값. 2022년 3월 10일 이후 대상 수명 주기 상태 중 하나로 전환될 때 표시돼요. 가능한 값: Detached InService
block-device-mapping/ami 루트/부팅 파일 시스템을 포함하는 가상 장치. 2007-12-15
block-device-mapping/ebsN Amazon EBS 볼륨과 연결된 가상 장치. Amazon EBS 볼륨은 시작 시 또는 인스턴스가 마지막으로 시작되었을 때 존재한 경우에만 메타데이터에서 사용할 수 있어요. N은 Amazon EBS 볼륨의 인덱스(예: ebs1, ebs2)를 나타내요. 2007-12-15
block-device-mapping/ephemeralN 비-NVMe 인스턴스 스토어 볼륨용 가상 장치. N은 각 볼륨의 인덱스를 나타내요. 블록 장치 매핑의 인스턴스 스토어 볼륨 수는 인스턴스의 실제 인스턴스 스토어 볼륨 수와 일치하지 않을 수 있어요. 인스턴스 유형이 인스턴스에 사용 가능한 인스턴스 스토어 볼륨 수를 결정해요. 블록 장치 매핑의 인스턴스 스토어 볼륨 수가 인스턴스에 사용 가능한 수를 초과하면 추가 인스턴스 스토어 볼륨은 무시돼요. 2007-12-15
block-device-mapping/root 루트(/ 또는 C:) 파일 시스템이 주어진 인스턴스와 연결된 루트 장치/파티션과 연결된 가상 장치 또는 파티션. 2007-12-15
block-device-mapping/swap swap과 연결된 가상 장치. 항상 존재하지는 않아요. 2007-12-15
events/maintenance/history 인스턴스에 완료되거나 취소된 유지 관리 이벤트가 있으면 이벤트 정보가 담긴 JSON 문자열을 포함해요. 2018-08-17
events/maintenance/scheduled 인스턴스에 활성 유지 관리 이벤트가 있으면 이벤트 정보가 담긴 JSON 문자열을 포함해요. 자세한 내용은 'View scheduled events that affect your Amazon EC2 instances'를 참고하세요. 2018-08-17
events/recommendations/rebalance 인스턴스에 대해 EC2 인스턴스 rebalance recommendation 알림이 발행되는 대략적인 UTC 시간. 이 범주의 메타데이터 예시는 다음과 같아요: {"noticeTime": "2020-11-05T08:22:00Z"}. 이 범주는 알림이 발행된 후에만 사용할 수 있어요. 자세한 내용은 'EC2 instance rebalance recommendations'를 참고하세요. 2020-10-27
hostname EC2 인스턴스가 IP 기반 명명(IPBN)을 사용하면 이는 인스턴스의 개인 IPv4 DNS 호스트 이름이에요. EC2 인스턴스가 리소스 기반 명명(RBN)을 사용하면 이는 RBN이에요. 네트워크 인터페이스가 여러 개인 경우 이는 eth0 장치(장치 번호가 0인 장치)를 가리켜요. IPBN과 RBN에 대한 자세한 내용은 'EC2 instance hostnames and domains'를 참고하세요. 1.0
iam/info 인스턴스에 연결된 IAM 역할이 있으면 인스턴스 프로필이 마지막으로 업데이트된 시간(인스턴스의 LastUpdated 날짜, InstanceProfileArn, InstanceProfileId 포함)에 대한 정보를 포함해요. 그렇지 않으면 존재하지 않아요. 2012-01-12
iam/security-credentials/role-name 인스턴스에 연결된 IAM 역할이 있으면 role-name은 역할의 이름이고, role-name은 역할과 연결된 임시 보안 자격 증명을 포함해요(자세한 내용은 'Retrieve security credentials from instance metadata' 참고). 그렇지 않으면 존재하지 않아요. 2012-01-12
identity-credentials/ec2/info identity-credentials/ec2/security-credentials/ec2-instance의 자격 증명에 대한 정보. 2018-05-23
identity-credentials/ec2/security-credentials/ec2-instance 인스턴스 ID 역할(instance identity role)에 대한 자격 증명으로, 인스턴스 내 소프트웨어가 EC2 Instance Connect와 AWS Systems Manager Default Host Management Configuration 같은 기능을 지원하기 위해 AWS에 자신을 식별할 수 있게 해줘요. 이 자격 증명에는 연결된 정책이 없으므로, AWS 기능에 인스턴스를 식별하는 것 외에 추가 AWS API 권한은 없어요. 자세한 내용은 'Instance identity roles for Amazon EC2 instances'를 참고하세요. 2018-05-23
instance-action 번들링 준비를 위해 인스턴스를 재부팅해야 한다고 알리는 값. 유효한 값: none shutdown
instance-id 이 인스턴스의 ID. 1.0
instance-life-cycle 이 인스턴스의 구매 옵션. 자세한 내용은 'Amazon EC2 billing and purchasing options'을 참고하세요. 2019-10-01
instance-type 인스턴스의 유형. 자세한 내용은 'Amazon EC2 instance types'를 참고하세요. 2007-08-29
ipv6 인스턴스의 IPv6 주소. 네트워크 인터페이스가 여러 개인 경우 이는 eth0 장치(장치 번호가 0인 장치) 네트워크 인터페이스와 할당된 첫 번째 IPv6 주소를 가리켜요. network interface[0]에 IPv6 주소가 없으면 이 항목은 설정되지 않고 HTTP 404 응답이 발생해요. 2021-01-03
kernel-id 해당하는 경우 이 인스턴스와 함께 시작된 커널의 ID. 2008-02-01
local-hostname 네트워크 인터페이스가 여러 개인 경우 이는 eth0 장치(장치 번호가 0인 장치)를 가리켜요. EC2 인스턴스가 IP 기반 명명(IPBN)을 사용하면 이는 인스턴스의 개인 IPv4 DNS 호스트 이름이에요. EC2 인스턴스가 리소스 기반 명명(RBN)을 사용하면 이는 RBN이에요. IPBN, RBN, EC2 인스턴스 명명에 대한 자세한 내용은 'EC2 instance hostnames and domains'를 참고하세요. 2007-01-19
local-ipv4 인스턴스의 개인 IPv4 주소. 네트워크 인터페이스가 여러 개인 경우 이는 eth0 장치(장치 번호가 0인 장치)를 가리켜요. IPv6 전용 인스턴스라면 이 항목은 설정되지 않고 HTTP 404 응답이 발생해요. 1.0
mac 인스턴스의 MAC(media access control) 주소. 네트워크 인터페이스가 여러 개인 경우 이는 eth0 장치(장치 번호가 0인 장치)를 가리켜요. 2011-01-01
metrics/vhostmd 더 이상 사용할 수 없어요. 2011-05-01
network/interfaces/macs/mac/device-number 해당 인터페이스와 연결된 고유 장치 번호. 장치 번호는 장치 이름에 해당해요. 예를 들어 device-number 2는 eth2 장치용이에요. 이 범주는 Amazon EC2 API와 AWS CLI용 EC2 명령이 사용하는 DeviceIndex 및 device-index 필드에 해당해요. 2011-01-01
network/interfaces/macs/mac/interface-id 네트워크 인터페이스의 ID. 2011-01-01
network/interfaces/macs/mac/ipv4-associations/public-ip 각 공용 IP 주소와 연결되고 해당 인터페이스에 할당된 개인 IPv4 주소. 2011-01-01
network/interfaces/macs/mac/ipv6s 인터페이스에 할당된 IPv6 주소. 2016-06-30
network/interfaces/macs/mac/ipv6-prefix 네트워크 인터페이스에 할당된 IPv6 접두사.
network/interfaces/macs/mac/local-hostname 네트워크 인터페이스의 개인 IPv4 DNS 호스트 이름. EFA 전용 인터페이스처럼 IP 주소가 전혀 없는 인터페이스에는 이 값이 설정되지 않아요. IPv6 전용 인터페이스라면 이는 리소스 기반 이름이에요. IPBN과 RBN에 대한 자세한 내용은 'EC2 instance hostnames and domains'를 참고하세요. 2007-01-19
network/interfaces/macs/mac/local-ipv4s 인터페이스와 연결된 개인 IPv4 주소. IPv6 전용 네트워크 인터페이스라면 이 항목은 설정되지 않고 HTTP 404 응답이 발생해요. 2011-01-01
network/interfaces/macs/mac/mac 인스턴스의 MAC 주소. 2011-01-01
network/interfaces/macs/mac/network-card 네트워크 카드의 인덱스. 일부 인스턴스 유형은 여러 네트워크 카드를 지원해요. 2020-11-01
network/interfaces/macs/mac/owner-id 네트워크 인터페이스 소유자의 ID. 다중 인터페이스 환경에서 인터페이스는 Elastic Load Balancing 같은 제3자가 연결할 수 있어요. 인터페이스의 트래픽은 항상 인터페이스 소유자에게 과금돼요. 2011-01-01
network/interfaces/macs/mac/public-hostname 인터페이스의 공용 DNS(IPv4). 이 범주는 enableDnsHostnames 속성이 true로 설정된 경우에만 반환돼요. 자세한 내용은 Amazon VPC User Guide의 'DNS attributes for your VPC'를 참고하세요. 인스턴스에 공용-IPv4 주소는 없고 공용-IPv6 주소만 있다면 이 항목은 설정되지 않고 HTTP 404 응답이 발생해요. 2011-01-01
network/interfaces/macs/mac/public-ipv4s 인터페이스와 연결된 공용 IP 주소 또는 Elastic IP 주소. 인스턴스에 여러 IPv4 주소가 있을 수 있어요. 2011-01-01
network/interfaces/macs/mac/security-groups 네트워크 인터페이스가 속한 보안 그룹. 2011-01-01
network/interfaces/macs/mac/security-group-ids 네트워크 인터페이스가 속한 보안 그룹의 ID. 2011-01-01
network/interfaces/macs/mac/subnet-id 인터페이스가 있는 서브넷의 ID. 2011-01-01
network/interfaces/macs/mac/subnet-ipv4-cidr-block 인터페이스가 있는 서브넷의 IPv4 CIDR 블록. 2011-01-01
network/interfaces/macs/mac/subnet-ipv6-cidr-blocks 인터페이스가 있는 서브넷의 IPv6 CIDR 블록. 2016-06-30
network/interfaces/macs/mac/vpc-id 인터페이스가 있는 VPC의 ID. 2011-01-01
network/interfaces/macs/mac/vpc-ipv4-cidr-block VPC의 기본 IPv4 CIDR 블록. 2011-01-01
network/interfaces/macs/mac/vpc-ipv4-cidr-blocks VPC의 IPv4 CIDR 블록. 2016-06-30
network/interfaces/macs/mac/vpc-ipv6-cidr-blocks 인터페이스가 있는 VPC의 IPv6 CIDR 블록. 2016-06-30
placement/availability-zone 인스턴스가 시작된 가용 영역. 2008-02-01
placement/availability-zone-id 인스턴스가 시작된 정적 가용 영역 ID. 가용 영역 ID는 계정 간에 일관돼요. 하지만 계정에 따라 다를 수 있는 가용 영역 이름과는 다를 수 있어요. 2019-10-01
placement/group-name 인스턴스가 시작된 배치 그룹의 이름. 2020-08-24
placement/host-id 인스턴스가 시작된 호스트의 ID. Dedicated Hosts에만 적용돼요. 2020-08-24
placement/partition-number 인스턴스가 시작된 파티션의 번호. 2020-08-24
placement/region 인스턴스가 시작된 AWS 리전. 2020-08-24
product-codes 있는 경우 인스턴스와 연결된 AWS Marketplace 제품 코드. 2007-03-01
public-hostname 인스턴스의 공용 DNS(IPv4). 이 범주는 enableDnsHostnames 속성이 true로 설정된 경우에만 반환돼요. 자세한 내용은 Amazon VPC User Guide의 'DNS attributes for your VPC'를 참고하세요. 인스턴스에 공용-IPv4 주소는 없고 공용-IPv6 주소만 있다면 이 항목은 설정되지 않고 HTTP 404 응답이 발생해요. 2007-01-19
public-ipv4 공용 IPv4 주소. Elastic IP 주소가 인스턴스와 연결되어 있으면 반환되는 값은 Elastic IP 주소예요. 2007-01-19
public-keys/0/openssh-key 공용 키. 인스턴스 시작 시 제공된 경우에만 사용할 수 있어요. 1.0
ramdisk-id 해당하는 경우 시작 시 지정된 RAM 디스크의 ID. 2007-10-10
reservation-id 예약의 ID. 1.0
security-groups 인스턴스에 적용된 보안 그룹의 이름. 시작 후에는 인스턴스의 보안 그룹을 변경할 수 있어요. 그러한 변경 사항은 여기와 network/interfaces/macs/mac/security-groups에 반영돼요. 1.0
services/domain 리전의 AWS 리소스용 도메인. 2014-02-25
services/partition 리소스가 있는 파티션. 표준 AWS 리전의 파티션은 aws예요. 다른 파티션에 리소스가 있으면 파티션은 aws-partitionname이에요. 예를 들어 China(Beijing) 리전의 리소스용 파티션은 aws-cn이에요. 2015-10-20
spot/instance-action 수행될 작업(hibernate, stop, terminate)과 작업이 발생할 대략적인 UTC 시간. 이 항목은 Spot Instance가 hibernate, stop, terminate로 표시된 경우에만 존재해요. 자세한 내용은 'instance-action'을 참고하세요. 2016-11-15
spot/termination-time Spot Instance의 운영 체제가 종료 신호를 받을 대략적인 UTC 시간. 이 항목은 Amazon EC2가 Spot Instance를 종료로 표시한 경우에만 존재하며 시간 값(예: 2015-01-05T18:02:00Z)을 포함해요. 직접 Spot Instance를 종료했다면 termination-time 항목은 시간으로 설정되지 않아요. 자세한 내용은 'termination-time'을 참고하세요. 2014-11-05
system 인스턴스의 기본 가상화 유형(하이퍼바이저). 2022-09-24
tags/instance 인스턴스와 연결된 인스턴스 태그. 인스턴스 메타데이터에서 태그 접근을 명시적으로 허용한 경우에만 사용할 수 있어요. 자세한 내용은 'Enable access to tags in instance metadata'를 참고하세요. 2021-03-23

동적 데이터 범주

다음 표는 동적 데이터의 범주를 나열해요.

범주 설명 범주가 출시된 버전
fws/instance-monitoring 고객이 CloudWatch에서 상세 1분 모니터링을 활성화했는지 여부를 보여주는 값. 유효한 값: enabled disabled
instance-identity/document instance-id, 개인 IP 주소 등을 포함하는 인스턴스 속성 JSON. 'Instance identity documents for Amazon EC2 instances'를 참고하세요. 2009-04-04
instance-identity/pkcs7 서명에 대한 문서의 인증성과 내용을 확인하는 데 사용. 'Instance identity documents for Amazon EC2 instances'를 참고하세요. 2009-04-04
instance-identity/signature 다른 당사자가 출처와 인증성을 확인하는 데 사용할 수 있는 데이터. 'Instance identity documents for Amazon EC2 instances'를 참고하세요. 2009-04-04

더 알아보기