인스턴스 메타데이터를 사용해 EC2 인스턴스의 태그 보기

인스턴스 메타데이터를 사용해 EC2 인스턴스의 태그 보기

인스턴스 메타데이터에서 인스턴스의 태그에 접근할 수 있어요. 인스턴스 메타데이터에서 태그에 접근하면 더 이상 태그 정보를 검색하기 위해 DescribeInstances 또는 DescribeTags API 호출을 사용할 필요가 없어 초당 API 트랜잭션 수를 줄이고, 사용자가 제어하는 인스턴스 수에 맞춰 태그 검색을 확장할 수 있게 해줍니다. 또한 인스턴스에서 실행 중인 로컬 프로세스가 인스턴스 메타데이터에서 직접 태그 정보를 볼 수 있습니다.

출처: 문서

본문

기본적으로 태그는 인스턴스 메타데이터에서 사용할 수 없습니다. 접근을 명시적으로 허용해야 해요. 인스턴스 실행 시 또는 실행 후 실행 중이거나 중지된 인스턴스에서 접근을 허용할 수 있습니다. 실행 템플릿에서 이를 지정함으로써 태그 접근을 허용할 수도 있어요. 템플릿으로 실행된 인스턴스는 인스턴스 메타데이터에서 태그 접근을 허용합니다.

인스턴스 태그를 추가하거나 제거하면 인스턴스가 실행 중일 때 인스턴스 메타데이터가 즉시 업데이트되며, 인스턴스를 중지했다 시작할 필요가 없어요.

작업 (Tasks)

  • Enable access to tags in instance metadata
  • Retrieve tags from instance metadata
  • Disable access to tags in instance metadata

인스턴스 메타데이터에서 태그 접근 활성화하기 (Enable access to tags in instance metadata)

기본적으로 인스턴스 메타데이터에는 인스턴스 태그에 대한 접근이 없어요. 각 인스턴스에 대해 접근을 명시적으로 활성화해야 합니다.

참고: 인스턴스 메타데이터에서 태그 접근을 허용하면 인스턴스 태그 키에 특정 제한이 적용됩니다. 이를 준수하지 않으면 새 인스턴스는 실행 실패, 기존 인스턴스는 오류가 발생합니다. 제한 사항은 다음과 같습니다.

  • 문자(a-z, A-Z), 숫자(0-9), 다음 문자 + - = . , _ : @만 포함할 수 있어요.
  • 공백이나 /를 포함할 수 없습니다.
  • .(마침표 하나), ..(마침표 둘), _index만으로 구성될 수 없습니다.

자세한 내용은 Tag restrictions 문서를 참고하세요.

콘솔 (Console) — 인스턴스 실행 중 인스턴스 메타데이터에서 태그 접근을 활성화하려면

  1. 인스턴스를 실행하는 절차를 따릅니다.
  2. Advanced details를 펼치고 Allow tags in metadata에서 Enable을 선택합니다.
  3. Summary 패널에서 인스턴스 구성을 검토하고 Launch instance를 선택합니다. 자세한 내용은 Launch an EC2 instance using the launch instance wizard in the console 문서를 참고하세요.

콘솔 (Console) — 인스턴스 실행 후 인스턴스 메타데이터에서 태그 접근을 활성화하려면

  1. Amazon EC2 콘솔을 엽니다. https://console.aws.amazon.com/ec2/
  2. 탐색 창에서 Instances를 선택합니다.
  3. 인스턴스를 선택하고 Actions, Instance settings, Allow tags in instance metadata를 선택합니다.
  4. 인스턴스 메타데이터에서 태그 접근을 허용하려면 Allow 확인란을 선택합니다.
  5. Save를 선택합니다.

AWS CLI — 인스턴스 실행 중 인스턴스 메타데이터에서 태그 접근을 활성화하려면

run-instances 명령을 사용하고 다음 --metadata-options 옵션을 추가합니다.

--metadata-options "InstanceMetadataTags=enabled"

AWS CLI — 인스턴스 실행 후 인스턴스 메타데이터에서 태그 접근을 활성화하려면

다음 modify-instance-metadata-options 명령을 사용합니다.

aws ec2 modify-instance-metadata-options \
    --instance-id i-1234567890abcdef0 \
    --instance-metadata-tags enabled

AWS CLI — 인스턴스 메타데이터에서 태그 접근이 활성화되었는지 확인하려면

describe-instances 명령을 사용하고 InstanceMetadataTags의 값을 확인합니다.

aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query "Reservations[*].Instances[].MetadataOptions[].InstanceMetadataTags"

다음은 출력 예시입니다. 값은 enabled 또는 disabled입니다.

[
    "enabled"
]

PowerShell — 인스턴스 실행 중 인스턴스 메타데이터에서 태그 접근을 활성화하려면

New-EC2Instance cmdlet을 사용하고 다음 -MetadataOptions_InstanceMetadataTags 파라미터를 추가합니다.

-MetadataOptions_InstanceMetadataTags enabled

PowerShell — 인스턴스 실행 후 인스턴스 메타데이터에서 태그 접근을 활성화하려면

Edit-EC2InstanceMetadataOption cmdlet을 사용합니다.

Edit-EC2InstanceMetadataOption `
    -InstanceId i-1234567890abcdef0 `
    -InstanceMetadataTags enabled

PowerShell — 인스턴스 메타데이터에서 태그 접근이 활성화되었는지 확인하려면

Get-EC2Instance cmdlet을 사용하고 InstanceMetadataTags의 값을 확인합니다.

(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances.MetadataOptions.InstanceMetadataTags.Value

다음은 출력 예시입니다. 값은 enabled 또는 disabled입니다.

enabled

인스턴스 메타데이터에서 태그 가져오기 (Retrieve tags from instance metadata)

인스턴스 메타데이터에서 인스턴스 태그 접근을 허용한 후에는, 인스턴스 메타데이터의 tags/instance 범주에 접근할 수 있어요. 자세한 내용은 Access instance metadata for an EC2 instance 문서를 참고하세요.

IMDSv2

Linux — Linux 인스턴스에서 다음 명령을 실행해 인스턴스의 모든 태그 키를 나열합니다.

TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance

이 예시는 이전 예시에서 얻은 키의 값을 가져옵니다. IMDSv2 요청은 이전 예시의 명령으로 만든 저장된 토큰을 사용합니다. 토큰은 만료되지 않아야 해요.

curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/tag-key

Windows — Windows 인스턴스에서 다음 cmdlet을 실행해 인스턴스의 모든 태그 키를 나열합니다.

$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/tags/instance

이 예시는 이전 예시에서 얻은 키의 값을 가져옵니다. IMDSv2 요청은 이전 예시의 명령으로 만든 저장된 토큰을 사용합니다. 토큰은 만료되지 않아야 해요.

Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/tags/instance/tag-key

IMDSv1

Linux — Linux 인스턴스에서 다음 명령을 실행해 인스턴스의 모든 태그 키를 나열합니다.

curl http://169.254.169.254/latest/meta-data/tags/instance

이 예시는 이전 예시에서 얻은 키의 값을 가져옵니다.

curl http://169.254.169.254/latest/meta-data/tags/instance/tag-key

Windows — Windows 인스턴스에서 다음 cmdlet을 실행해 인스턴스의 모든 태그 키를 나열합니다.

Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/tags/instance

이 예시는 이전 예시에서 얻은 키의 값을 가져옵니다.

Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/tags/instance/tag-key

인스턴스 메타데이터에서 태그 접근 비활성화하기 (Disable access to tags in instance metadata)

인스턴스 메타데이터에서 인스턴스 태그 접근을 비활성화할 수 있어요. 기본적으로 꺼져 있으므로 실행 시 인스턴스 메타데이터의 인스턴스 태그 접근을 비활성화할 필요는 없습니다.

콘솔 (Console)

인스턴스 메타데이터에서 태그 접근을 비활성화하려면

  1. Amazon EC2 콘솔을 엽니다. https://console.aws.amazon.com/ec2/
  2. 탐색 창에서 Instances를 선택합니다.
  3. 인스턴스를 선택하고 Actions, Instance settings, Allow tags in instance metadata를 선택합니다.
  4. 인스턴스 메타데이터에서 태그 접근을 끄려면 Allow 확인란을 선택 해제합니다.
  5. Save를 선택합니다.

AWS CLI

인스턴스 메타데이터에서 태그 접근을 비활성화하려면 다음 modify-instance-metadata-options 명령을 사용합니다.

aws ec2 modify-instance-metadata-options \
    --instance-id i-1234567890abcdef0 \
    --instance-metadata-tags disabled

PowerShell

인스턴스 메타데이터에서 태그 접근을 비활성화하려면 Edit-EC2InstanceMetadataOption cmdlet을 사용합니다.

Edit-EC2InstanceMetadataOption `
    -InstanceId i-1234567890abcdef0 `
    -InstanceMetadataTag disabled

더 알아보기 (Learn more)