스팟 인스턴스 요청 태그 지정하기
스팟 인스턴스 요청 태그 지정하기 (Tag Spot Instance requests)
스팟 인스턴스 요청을 분류하고 관리하는 데 도움이 되도록 사용자 지정 메타데이터로 태그를 지정할 수 있어요. 스팟 인스턴스 요청을 만들 때나 만든 후에 태그를 할당할 수 있어요. Amazon EC2 콘솔이나 명령줄 도구로 태그를 할당할 수 있어요.
스팟 인스턴스 요청에 태그를 지정해도 스팟 인스턴스 요청이 시작한 인스턴스와 볼륨에는 자동으로 태그가 지정되지 않아요. 스팟 인스턴스 요청이 시작한 인스턴스와 볼륨에는 명시적으로 태그를 지정해야 해요. 스팟 인스턴스와 볼륨에는 시작 중이나 시작 후에 태그를 할당할 수 있어요.
태그가 어떻게 동작하는지에 대한 자세한 내용은 'Amazon EC2 리소스 태그 지정하기'를 참고하세요.
목차 (Contents)
- 사전 준비 (Prerequisites)
- 새 스팟 인스턴스 요청에 태그 지정하기
- 기존 스팟 인스턴스 요청에 태그 지정하기
- 스팟 인스턴스 요청 태그 보기
사전 준비 (Prerequisites)
사용자에게 리소스에 태그를 지정할 권한을 부여하세요. IAM 정책과 예시 정책에 대한 자세한 내용은 'Example: Tag resources'를 참고하세요. 만드는 IAM 정책은 스팟 인스턴스 요청을 만드는 방법에 따라 결정돼요.
- 시작 마법사나
run-instances로 스팟 인스턴스를 요청한다면 '시작 마법사나 run-instances를 사용할 때 사용자에게 리소스 태그 권한을 부여하려면'을 참고하세요. request-spot-instances명령으로 스팟 인스턴스를 요청한다면 'request-spot-instances를 사용할 때 사용자에게 리소스 태그 권한을 부여하려면'을 참고하세요.
시작 마법사나 run-instances를 사용할 때 사용자에게 리소스 태그 권한을 부여하려면
다음이 포함된 IAM 정책을 만드세요.
ec2:RunInstances작업 – 사용자에게 인스턴스를 시작할 권한을 부여해요.- Resource에
spot-instances-request지정 – 사용자가 스팟 인스턴스를 요청하는 스팟 인스턴스 요청을 만들 수 있게 해요. ec2:CreateTags작업 – 사용자에게 태그를 만들 권한을 부여해요.- Resource에
*지정 – 사용자가 인스턴스 시작 중에 생성되는 모든 리소스에 태그를 지정할 수 있게 해요.
{
"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 리소스를 어떻게 평가하는지 알아야 해요.
- 생성 시 스팟 인스턴스 요청에 태그를 지정하지 않으면 Amazon EC2는
RunInstances문에서spot-instances-request리소스를 평가하지 않아요. - 생성 시 스팟 인스턴스 요청에 태그를 지정하면 Amazon EC2는
RunInstances문에서spot-instances-request리소스를 평가해요.
따라서 spot-instances-request 리소스에 대해 IAM 정책에 다음 규칙이 적용돼요.
RunInstances로 스팟 인스턴스 요청을 만들고 생성 시 태그를 지정할 의도가 없다면spot-instances-request리소스를 명시적으로 허용할 필요 없어요. 호출은 성공해요.RunInstances로 스팟 인스턴스 요청을 만들고 생성 시 태그를 지정할 의도가 있다면RunInstances허용 문에spot-instances-request리소스를 포함해야 해요. 그렇지 않으면 호출이 실패해요.RunInstances로 스팟 인스턴스 요청을 만들고 생성 시 태그를 지정할 의도가 있다면CreateTags허용 문에spot-instances-request리소스나*와일드카드를 지정해야 해요. 그렇지 않으면 호출이 실패해요.
스팟 인스턴스 요청에 지원되지 않는 정책을 포함한 예시 IAM 정책은 'Work with Spot Instances'를 참고하세요.
request-spot-instances를 사용할 때 사용자에게 리소스 태그 권한을 부여하려면
다음이 포함된 IAM 정책을 만드세요.
ec2:RequestSpotInstances작업 – 사용자에게 스팟 인스턴스 요청을 만들 권한을 부여해요.ec2:CreateTags작업 – 사용자에게 태그를 만들 권한을 부여해요.- Resource에
spot-instances-request지정 – 사용자가 스팟 인스턴스 요청에만 태그를 지정할 수 있게 해요.
{
"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 예시에서 스팟 인스턴스 요청을 다음과 같이 구성하세요.
- ResourceType에
spot-instances-request를 지정하세요. 다른 값을 지정하면 스팟 인스턴스 요청이 실패해요. - Tags에 키-값 쌍을 지정하세요. 키-값 쌍을 여러 개 지정할 수 있어요.
콘솔
새 스팟 인스턴스 요청에 태그를 지정하려면
- '스팟 인스턴스 관리하기' 절차를 따르세요.
- 태그를 추가하려면 Add Tags 페이지에서 Add Tag를 선택하고 태그의 키와 값을 입력하세요. 추가 태그마다 Add another tag를 선택하세요. 각 태그에 대해 스팟 인스턴스 요청, 스팟 인스턴스, 볼륨에 같은 태그를 지정할 수 있어요. 세 가지 모두에 태그를 지정하려면 Instances, Volumes, Spot Instance Requests가 모두 선택되었는지 확인하세요. 하나나 둘만 태그하려면 태그할 리소스가 선택되고 나머지 리소스가 선택 해제되었는지 확인하세요.
- 스팟 인스턴스 요청을 만드는 데 필요한 필드를 완료한 뒤 Launch를 선택하세요. 자세한 내용은 '스팟 인스턴스 관리하기'를 참고하세요.
AWS CLI
새 스팟 인스턴스 요청에 태그를 지정하려면
request-spot-instances 명령을 --tag-specification 옵션과 함께 사용하세요. 태그 사양은 스팟 인스턴스 요청에 Environment=Production과 Cost-Center=123 두 개의 태그를 추가해요.
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 두 개의 태그를 추가해요.
$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)
기존 스팟 인스턴스 요청에 태그 지정하기
콘솔
기존 스팟 인스턴스 요청에 태그를 지정하려면
스팟 인스턴스 요청을 만든 뒤 콘솔을 사용해 스팟 인스턴스 요청에 태그를 추가할 수 있어요.
- Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/ 에서 엽니다.
- 탐색 창에서 Spot Requests를 선택하세요.
- 스팟 인스턴스 요청을 선택하세요.
- Tags 탭을 선택하고 Create Tag를 선택하세요.
콘솔로 기존 스팟 인스턴스에 태그를 지정하려면
스팟 인스턴스 요청이 스팟 인스턴스를 시작한 뒤에는 콘솔을 사용해 인스턴스에 태그를 추가할 수 있어요. 자세한 내용은 '콘솔로 태그 추가하기'를 참고하세요.
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"}
스팟 인스턴스 요청 태그 보기
콘솔
스팟 인스턴스 요청 태그를 보려면
- Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/ 에서 엽니다.
- 탐색 창에서 Spot Requests를 선택하세요.
- 스팟 인스턴스 요청을 선택하고 Tags 탭을 선택하세요.
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