인스턴스 메타데이터를 사용하여 EC2 인스턴스의 태그 보기 - - Amazon Elastic Compute Cloud

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

인스턴스 메타데이터에서 인스턴스의 태그에 액세스할 수 있습니다. 인스턴스 메타데이터에서 태그에 액세스하면 더 이상 DescribeInstances 또는 DescribeTags API 호출을 사용하여 태그 정보를 검색할 필요가 없습니다. 그러면 초당 API 트랜잭션이 줄어들고 제어하는 인스턴스 수에 따라 태그 검색이 확장될 수 있습니다. 또한 인스턴스에서 실행 중인 로컬 프로세스는 인스턴스 메타데이터에서 직접 인스턴스의 태그 정보를 볼 수 있습니다.

기본적으로 태그는 인스턴스 메타데이터에서 사용할 수 없으므로 액세스를 명시적으로 허용해야 합니다. 인스턴스 시작 시 또는 실행 중이거나 중지된 인스턴스에서 시작 후 액세스를 허용할 수 있습니다. 시작 템플릿에서 이를 지정하여 태그에 대한 액세스를 허용할 수도 있습니다. 템플릿을 사용하여 시작된 인스턴스는 인스턴스 메타데이터의 태그에 대한 액세스를 허용합니다.

인스턴스 태그를 추가하거나 제거하면 인스턴스가 실행되는 동안 인스턴스를 중지했다가 시작할 필요 없이 인스턴스 메타데이터가 업데이트됩니다.

인스턴스 메타데이터에서 태그에 대한 액세스 활성화

기본적으로 인스턴스 메타데이터의 인스턴스 태그에 액세스할 수 없습니다. 각 인스턴스에 대해 명시적으로 액세스를 활성화해야 합니다.

참고

인스턴스 메타데이터의 태그에 대한 액세스를 허용하는 경우 인스턴스 태그 에 특정 제한이 적용됩니다. 규정을 준수하지 않으면 새 인스턴스의 시작이 실패하거나 기존 인스턴스에 대한 오류가 발생합니다. 제한 사항은 다음과 같습니다.

  • 문자(a-z, A-Z), 숫자(0-9), 다음 문자(+ - = . , _ : @)만 포함할 수 있습니다.

  • 공백 또는 /를 포함할 수 없습니다.

  • .(1기간), ..(2기간) 또는 _index로만 구성할 수 없습니다.

자세한 내용은 태그 제한 섹션을 참조하세요.

Console
인스턴스 시작 중 인스턴스 메타데이터의 태그에 대한 액세스를 활성화하는 방법
  1. 인스턴스 시작 절차를 따릅니다.

  2. 고급 세부 정보를 확장하고 메타데이터에서 태그 허용에 대해 활성화를 선택합니다.

  3. Summary(요약) 패널에서 인스턴스 구성을 검토한 다음 Launch instance(인스턴스 시작)를 선택합니다. 자세한 내용은 콘솔에서 인스턴스 시작 마법사를 사용하여 EC2 인스턴스 시작 섹션을 참조하세요.

인스턴스 시작 후 인스턴스 메타데이터의 태그에 대한 액세스를 활성화하는 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 인스턴스를 선택합니다.

  3. 인스턴스를 선택한 다음 작업, 인스턴스 설정, 인스턴스 메타데이터의 태그 허용을 선택합니다.

  4. 인스턴스 메타데이터의 태그에 대한 액세스를 허용하려면 허용 확인란을 선택합니다.

  5. 저장을 선택합니다.

AWS CLI
인스턴스 시작 중 인스턴스 메타데이터의 태그에 대한 액세스를 활성화하는 방법

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

--metadata-options "InstanceMetadataTags=enabled"
인스턴스 시작 후 인스턴스 메타데이터의 태그에 대한 액세스를 활성화하는 방법

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

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567890abcdef0 \ --instance-metadata-tags enabled
인스턴스 메타데이터의 태그에 대한 액세스가 활성화되었는지 확인하는 방법

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
인스턴스 시작 후 인스턴스 메타데이터의 태그에 대한 액세스를 활성화하는 방법

Edit-EC2InstanceMetadataOption cmdlet을 사용합니다.

Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567890abcdef0 ` -InstanceMetadataTags enabled
인스턴스 메타데이터의 태그에 대한 액세스가 활성화되었는지 확인하는 방법

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

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

다음은 예제 출력입니다. 이때 값은 enabled 또는 disabled입니다.

enabled

인스턴스 메타데이터에서 태그 검색

인스턴스 메타데이터에서 인스턴스 태그 액세스를 허용한 이후 인스턴스 메타데이터에서 tags/instance 카테고리에 액세스할 수 있습니다. 자세한 내용은 EC2 인스턴스에 대한 인스턴스 메타데이터에 액세스 섹션을 참조하세요.

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

인스턴스 메타데이터에서 태그에 대한 액세스 비활성화

인스턴스 메타데이터에서 인스턴스 태그에 대한 액세스를 비활성화할 수 있습니다. 인스턴스 메타데이터의 인스턴스 태그에 대한 액세스는 기본적으로 해제되어 있으므로 시작 시 비활성화할 필요가 없습니다.

Console
인스턴스 메타데이터에서 태그에 대한 액세스를 비활성화하는 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 인스턴스를 선택합니다.

  3. 인스턴스를 선택한 다음 작업(Actions), 인스턴스 설정(Instance settings), 인스턴스 메타데이터의 태그 허용(Allow tags in instance metadata)을 선택합니다.

  4. 인스턴스 메타데이터의 태그에 대한 액세스를 해제하려면 허용 확인란 선택을 취소합니다.

  5. 저장을 선택합니다.

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