단일 요청으로 시작된 각 인스턴스를 식별합니다.
이 예제는 사용자 데이터 및 인스턴스 메타데이터를 사용하여 Amazon EC2 인스턴스를 구성하는 방법을 보여줍니다.
참고
이 섹션의 예에서는 IMDS의 IPv4 주소(169.254.169.254
)를 사용합니다. IPv6 주소를 통해 EC2 인스턴스의 인스턴스 메타데이터를 검색하는 경우, 대신 IPv6 주소([fd00:ec2::254]
)를 활성화하고 사용해야 합니다. IMDS의 IPv6 주소는 IMDSv2 명령과 호환됩니다. IPv6 주소는 IPv6 지원 서브넷(듀얼 스택 또는 IPv6 전용)의 Nitro 기반 인스턴스에서만 액세스할 수 있습니다.
Alice는 데이터베이스 AMI 인스턴스 4개를 시작하여 그 중 첫 번째 인스턴스는 원래 인스턴스의 역할을 하고 나머지 3개는 복제본의 역할을 하도록 하려고 합니다. 그러한 인스턴스는 시작되었을 때 각 복제본의 복제 전략에 대한 사용자 데이터가 추가될 수 있어야 합니다. Alice는 네 인스턴스 모두에서 이 데이터가 사용될 수 있다는 것을 알고 있기 때문에 각 인스턴스가 적용 가능한 부분을 인식할 수 있도록 하는 방식으로 사용자 데이터를 구축해야 합니다. Alice는 ami-launch-index
인스턴스 메타데이터 값을 이용하여 이를 수행할 수 있고 이 값은 각 인스턴스에서 공유합니다. 1개 이상의 인스턴스를 동시에 시작하는 경우 ami-launch-index
는 인스턴스가 시작되는 순서를 나타냅니다. 첫 번째 인스턴스의 값은 0
입니다.
Alice가 구성한 사용자 데이터는 다음과 같습니다.
replicate-every=1min | replicate-every=5min | replicate-every=10min
replicate-every=1min
데이터는 최초 복제 구성을 정의하고 replicate-every=5min
는 두 번째 복제 구성을 정의하는 식으로 동작합니다. Alice는 서로 다른 인스턴스의 데이터 구분자로 파이프 기호(|
)를 사용하는 ASCII 문자열로 이 데이터를 제공하려 합니다.
Alice는 run-instances 명령을 사용하여 4개의 인스턴스를 시작하고 사용자 데이터를 지정합니다.
aws ec2 run-instances \ --image-id
ami-0abcdef1234567890
\ --count 4 \ --instance-type t2.micro \ --user-data "replicate-every=1min | replicate-every=5min | replicate-every=10min"
시작된 이후 모든 인스턴스는 다음과 같은 사용자 데이터 및 공통 메타데이터 사본을 갖습니다.
-
AMI ID: ami-0abcdef1234567890
-
예약 ID: r-1234567890abcabc0
-
퍼블릭 키: 없음
-
보안 그룹 이름: 기본
-
인스턴스 유형: t2.micro
그러나 다음 표와 같이 각 인스턴스에는 고유한 메타데이터가 있습니다.
메타데이터 | 값 |
---|---|
instance-id | i-1234567890abcdef0 |
ami-launch-index | 0 |
public-hostname | ec2-203-0-113-25.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.223 |
local-hostname | ip-10-251-50-12.ec2.internal |
local-ipv4 | 10.251.50.35 |
메타데이터 | 값 |
---|---|
instance-id | i-0598c7d356eba48d7 |
ami-launch-index | 1 |
public-hostname | ec2-67-202-51-224.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.224 |
local-hostname | ip-10-251-50-36.ec2.internal |
local-ipv4 | 10.251.50.36 |
메타데이터 | 값 |
---|---|
instance-id | i-0ee992212549ce0e7 |
ami-launch-index | 2 |
public-hostname | ec2-67-202-51-225.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.225 |
local-hostname | ip-10-251-50-37.ec2.internal |
local-ipv4 | 10.251.50.37 |
메타데이터 | 값 |
---|---|
instance-id | i-1234567890abcdef0 |
ami-launch-index | 3 |
public-hostname | ec2-67-202-51-226.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.226 |
local-hostname | ip-10-251-50-38.ec2.internal |
local-ipv4 | 10.251.50.38 |
Alice는 ami-launch-index
값을 사용하여 사용자 데이터의 어느 부분이 특정 인스턴스에 적용 가능한지를 결정할 수 있습니다.
-
Alice는 인스턴스 중 하나에 접속한 다음 해당 인스턴스의
ami-launch-index
를 검색하여 복제본인지 확인합니다. -
ami-launch-index
를 변수로 저장합니다. -
사용자 데이터를 변수로 저장합니다.
-
마지막으로 Alice는 cut 명령을 사용하여 해당 인스턴스에 적용 가능한 사용자 데이터 부분을 추출합니다.