스팟 인스턴스 요청을 쉽게 분류하고 관리하려면 사용자 지정 메타데이터로 이 요청을 태깅할 수 있습니다. 스팟 인스턴스 요청을 생성할 때 또는 생성한 후 스팟 인스턴스 요청에 태그를 할당할 수 있습니다. Amazon EC2 콘솔이나 명령줄 도구를 사용하여 태그를 지정할 수 있습니다.
스팟 인스턴스 요청을 태깅하는 경우 스팟 인스턴스 요청에서 시작된 인스턴스 및 볼륨은 자동으로 태깅되지 않습니다. 스팟 인스턴스 요청에서 시작된 인스턴스 및 볼륨을 명시적으로 태깅해야 합니다. 시작 중 또는 이후에 스팟 인스턴스 및 볼륨에 태그를 할당할 수 있습니다.
태그 작동 방식에 대한 자세한 내용은 Amazon EC2 리소스 태깅 섹션을 참조하세요.
사전 조건
사용자에게 리소스에 태그를 지정할 수 있는 권한을 부여합니다. IAM 정책 및 예제 정책에 대한 자세한 내용은 예: 태그 리소스 섹션을 참조하세요.
생성하는 IAM 정책은 스팟 인스턴스 요청을 생성할 때 사용하는 방법에 따라 결정됩니다.
사용자에게 인스턴스 시작 마법사 또는 run-instances를 사용할 때 리소스에 태그를 지정할 수 있는 권한 부여
다음을 포함하는 IAM 정책을 만듭니다.
-
ec2:RunInstances
작업 사용자에게 인스턴스 시작 권한이 부여됩니다.
-
Resource
에 spot-instances-request
을 지정합니다. 이렇게 하면 사용자가 스팟 인스턴스를 요청하는 스팟 인스턴스 요청을 생성할 수 있습니다.
-
ec2:CreateTags
작업 사용자에게 태그 생성 권한이 부여됩니다.
-
Resource
에 *
을 지정합니다. 이를 통해 사용자가 인스턴스 시작 중에 생성된 모든 리소스에 태그를 지정할 수 있습니다.
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowLaunchInstances",
"Effect": "Allow",
"Action": [
"ec2:RunInstances"
],
"Resource": [
"arn:aws:ec2:us-east-1::image/*",
"arn:aws:ec2:us-east-1:*:subnet/*",
"arn:aws:ec2:us-east-1:*:network-interface/*",
"arn:aws:ec2:us-east-1:*:security-group/*",
"arn:aws:ec2:us-east-1:*:key-pair/*",
"arn:aws:ec2:us-east-1:*:volume/*",
"arn:aws:ec2:us-east-1:*:instance/*",
"arn:aws:ec2:us-east-1:*:spot-instances-request/*"
]
},
{
"Sid": "TagSpotInstanceRequests",
"Effect": "Allow",
"Action": "ec2:CreateTags",
"Resource": "*"
}
]
}
RunInstances 작업을 사용하여 스팟 인스턴스 요청을 생성하고 생성 시 스팟 인스턴스 요청을 태깅하는 경우 Amazon EC2가 RunInstances 문에서 spot-instances-request
리소스를 평가하는 방법을 알고 있어야 합니다. 이는 IAM 정책에서 다음과 같이 평가됩니다.
따라서 spot-instances-request
리소스의 경우 IAM 정책에 다음 규칙이 적용됩니다.
-
RunInstances를 사용하여 스팟 인스턴스 요청을 생성하고 생성 시 스팟 인스턴스 요청을 태깅하지 않으려는 경우 spot-instances-request
리소스를 명시적으로 허용할 필요가 없습니다. 호출이 성공합니다.
-
RunInstances를 사용하여 스팟 인스턴스 요청을 생성하고 생성 시 스팟 인스턴스 요청을 태깅하려는 경우 RunInstances allow 문에 spot-instances-request
리소스를 포함해야 합니다. 그러지 않으면 호출이 실패합니다.
-
RunInstances를 사용하여 스팟 인스턴스 요청을 생성하고 생성 시 스팟 인스턴스 요청을 태깅하려는 경우 CreateTags allow 문에서 spot-instances-request
리소스를 지정하거나 *
와일드카드를 포함해야 합니다. 그러지 않으면 호출이 실패합니다.
스팟 인스턴스 요청에 지원되지 않는 정책을 포함한 예제 IAM 정책은 스팟 인스턴스 작업 섹션을 참조하세요.
사용자에게 request-spot-instances를 사용할 때 리소스에 태그를 지정할 수 있는 권한 부여
다음을 포함하는 IAM 정책을 만듭니다.
-
ec2:RequestSpotInstances
작업 사용자에게 스팟 인스턴스 요청을 생성할 수 있는 권한이 부여됩니다.
-
ec2:CreateTags
작업 사용자에게 태그 생성 권한이 부여됩니다.
-
Resource
에 spot-instances-request
을 지정합니다. 이렇게 하면 사용자가 스팟 인스턴스 요청만 태깅할 수 있습니다.
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "TagSpotInstanceRequest",
"Effect": "Allow",
"Action": [
"ec2:RequestSpotInstances",
"ec2:CreateTags"
],
"Resource": "arn:aws:ec2:us-east-1
:111122223333
:spot-instances-request/*"
}
]
}
새 스팟 인스턴스 요청을 태깅하려면
AWS CLI 및 PowerShell 예제에서 스팟 인스턴스 요청을 다음과 같이 구성합니다.
- Console
-
새 스팟 인스턴스 요청에 태그를 지정하는 방법
-
스팟 인스턴스 관리의 절차를 따르세요.
-
태그를 추가하려면 태그 추가 페이지에서 태그 추가를 선택하고 해당 태그에 대한 키와 값을 입력합니다. 각 추가 태그에 다른 태그 추가를 선택합니다.
각 태그에 대해 동일한 태그로 스팟 인스턴스 요청, 스팟 인스턴스 및 볼륨을 태깅할 수 있습니다. 세 가지 모두를 태깅하려면 [인스턴스(Instances)], [볼륨(Volumes)] 및 [스팟 인스턴스 요청(Spot Instance Requests)]이 선택되어 있는지 확인합니다. 한두 개만 태그를 지정하려면 태그를 지정할 리소스가 선택되어 있고 나머지 리소스는 선택 취소되어 있는지 확인합니다.
-
필수 필드를 입력하여 스팟 인스턴스 요청을 생성한 다음 [시작(Launch)]을 선택합니다. 자세한 내용은 스팟 인스턴스 관리 섹션을 참조하세요.
- AWS CLI
-
새 스팟 인스턴스 요청에 태그를 지정하는 방법
request-spot-instances 명령을 --tag-specification
옵션과 함께 사용합니다.
태그 사양은 스팟 인스턴스 요청에 Environment=Production
및 Cost-Center=123
이라는 2개의 태그를 추가합니다.
aws ec2 request-spot-instances \
--instance-count 5
\
--type "one-time" \
--launch-specification file://specification.json
\
--tag-specification 'ResourceType=spot-instances-request,Tags=[{Key=Environment
,Value=Production
},{Key=Cost-Center
,Value=123
}]'
- PowerShell
-
새 스팟 인스턴스 요청에 태그를 지정하는 방법
Request-EC2SpotInstance cmdlet을 -TagSpecification
파라미터와 함께 사용합니다.
-TagSpecification $tagspec
태그 사양은 다음과 같이 정의됩니다. 스팟 인스턴스 요청에 Environment=Production
및 Cost-Center=123
이라는 2개의 태그를 추가합니다.
$tag1 = @{Key="Environment"; Value="Production"}
$tag2 = @{Key="Cost-Center"; Value="123"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "spot-instances-request"
$tagspec.Tags = @($tag1,$tag2)
기존 스팟 인스턴스 요청을 태깅하려면
- Console
-
기존 스팟 인스턴스 요청에 태그를 지정하는 방법
스팟 인스턴스 요청을 생성한 후 콘솔을 사용하여 스팟 인스턴스 요청에 태그를 추가할 수 있습니다.
https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.
-
탐색 창에서 스팟 요청을 선택합니다.
-
스팟 인스턴스 요청을 선택합니다.
-
태그 탭을 선택하고 태그 생성을 선택합니다.
콘솔을 사용하여 기존 스팟 인스턴스를 태깅하려면
스팟 인스턴스 요청에서 스팟 인스턴스가 시작된 후 콘솔을 사용하여 인스턴스에 태그를 추가할 수 있습니다. 자세한 내용은 콘솔을 사용하여 태그 추가 섹션을 참조하세요.
- AWS CLI
-
기존 스팟 인스턴스 요청 또는 스팟 인스턴스에 태그를 지정하려면
create-tags 명령을 사용하여 기존 리소스에 태그를 지정합니다. 다음 예제에서는 기존 스팟 인스턴스 요청 및 스팟 인스턴스에 purpose=test
태그가 지정됩니다.
aws ec2 create-tags \
--resources sir-0e54a519c9EXAMPLE
i-1234567890abcdef0
\
--tags Key=purpose
,Value=test
- PowerShell
-
기존 스팟 인스턴스 요청 또는 스팟 인스턴스에 태그를 지정하려면
New-EC2Tag cmdlet을 사용합니다. 다음 예제는 기존 스팟 인스턴스 요청 및 스팟 인스턴스에 purpose=test
태그를 추가합니다.
New-EC2Tag `
-Resource sir-0e54a519c9EXAMPLE
, i-1234567890abcdef0
`
-Tag @{Key="purpose
"; Value="test
"}
- Console
-
- AWS CLI
-
스팟 인스턴스 요청 태그를 설명하려면
describe-spot-instance-requests 명령을 사용하여 지정된 스팟 인스턴스 요청의 구성을 볼 수 있습니다. 여기에는 요청에 지정된 모든 태그가 포함됩니다.
aws ec2 describe-spot-instance-requests \
--spot-instance-request-ids sir-0e54a519c9EXAMPLE
\
--query "SpotInstanceRequests[*].Tags"
출력의 예시는 다음과 같습니다.
[
[
{
"Key": "Environment",
"Value": "Production"
},
{
"Key": "Department",
"Value": "101"
}
]
]
- PowerShell
-
스팟 인스턴스 요청 태그를 설명하려면
Get-EC2SpotInstanceRequest cmdlet을 사용합니다.
(Get-EC2SpotInstanceRequest `
-SpotInstanceRequestId sir-0e54a519c9EXAMPLE
).Tags
출력의 예시는 다음과 같습니다.
Key Value
--- -----
Environment Production
Department 101