

# 신규 또는 기존 스팟 플릿 요청과 이를 통해 시작되는 인스턴스 및 볼륨 태그 지정
<a name="tag-spot-fleet"></a>

스팟 플릿 요청과 이를 통해 시작되는 인스턴스와 볼륨을 분류 및 관리하는 데 도움이 되도록 사용자 지정 메타데이터로 이 요청에 태그를 지정할 수 있습니다. 스팟 플릿 요청을 생성할 때 또는 생성한 후 요청을 태깅할 수 있습니다. 마찬가지로 플릿에서 인스턴스와 볼륨이 시작될 때 또는 그 이후에 인스턴스와 볼륨에 태그를 할당할 수 있습니다.

플릿 요청에 태그를 지정할 때 플릿에서 시작한 인스턴스 및 볼륨에는 태그가 자동으로 지정되지 않습니다. 플릿에서 시작한 인스턴스 및 볼륨에 명시적으로 태그를 지정해야 합니다. 플릿 요청에만, 플릿에서 시작한 인스턴스에만, 플릿에서 시작한 인스턴스에 연결된 볼륨에만, 또는 모두에 태그를 할당하도록 선택할 수 있습니다.

**참고**  
온디맨드 인스턴스에 연결된 볼륨에만 태그를 지정할 수 있습니다. 스팟 인스턴스에 연결된 볼륨에는 태그를 지정할 수 없습니다.

Amazon EC2 콘솔이나 명령줄 도구를 사용하여 태그를 지정할 수 있습니다.

태그 작동 방식에 대한 자세한 내용은 [Amazon EC2 리소스 태깅](Using_Tags.md) 섹션을 참조하세요.

**Topics**
+ [사전 조건](#tag-spot-fleet-prereqs)
+ [새 스팟 플릿과 해당 플릿에서 시작되는 인스턴스 및 볼륨 태깅](#tag-new-spot-fleet-and-resources)
+ [기존 스팟 플릿 태깅](#tag-existing-spot-fleet)
+ [스팟 플릿 요청 태그 보기](#view-spot-fleet-tags)

## 사전 조건
<a name="tag-spot-fleet-prereqs"></a>

사용자에게 리소스에 태그를 지정할 수 있는 권한을 부여합니다. 자세한 내용은 [예: 태그 리소스](ExamplePolicies_EC2.md#iam-example-taggingresources) 섹션을 참조하세요.

**사용자에게 리소스에 태그를 지정할 수 있는 권한 부여**  
다음을 포함하는 IAM 정책을 생성합니다.
+ `ec2:CreateTags` 작업 사용자에게 태그 생성 권한이 부여됩니다.
+ `ec2:RequestSpotFleet` 작업 사용자에게 스팟 플릿 요청 생성 권한이 부여됩니다.
+ `Resource`의 경우 `"*"`를 지정해야 합니다. 이를 통해 사용자는 모든 리소스 유형에 태그를 지정할 수 있습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TagSpotFleetRequest",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags",
                "ec2:RequestSpotFleet"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**중요**  
`spot-fleet-request` 리소스에 대한 리소스 수준 권한은 현재 지원되지 않습니다. `spot-fleet-request`을 리소스로 지정하면 플릿에 태그를 지정하려고 할 때 승인되지 않은 예외가 발생합니다. 다음 예에서는 정책을 설정하지 *않는* 방법을 보여 줍니다.  

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateTags",
        "ec2:RequestSpotFleet"
    ],
    "Resource": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/*"
}
```

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요.
+ AWS IAM Identity Center의 사용자 및 그룹:

  권한 세트를 생성합니다. *AWS IAM Identity Center 사용자 안내서*에서 [권한 세트 생성](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)의 지침을 따릅니다.
+ ID 제공업체를 통해 IAM에서 관리되는 사용자:

  ID 페더레이션을 위한 역할을 생성합니다. *IAM 사용자 설명서*의 [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)의 지침을 따릅니다.
+ IAM 사용자:
  + 사용자가 맡을 수 있는 역할을 생성합니다. *IAM 사용자 설명서*에서 [Create a role for an IAM user](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)의 지침을 따릅니다.
  + (권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. *IAM 사용 설명서*에서 [사용자(콘솔)에 권한 추가](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)의 지침을 따릅니다.

## 새 스팟 플릿과 해당 플릿에서 시작되는 인스턴스 및 볼륨 태깅
<a name="tag-new-spot-fleet-and-resources"></a>

**콘솔을 사용하여 새 스팟 플릿 요청 및 해당 스팟 플릿이 시작하는 인스턴스와 볼륨에 태그를 지정하려면 다음을 수행하세요.**

1. [정의된 파라미터를 사용하여 스팟 플릿 요청 생성](create-spot-fleet.md#create-spot-fleet-advanced)의 절차를 따르세요.

1. 태그를 추가하는 방법은 플릿을 수동으로 구성했는지, 시작 템플릿을 사용했는지에 따라 달라집니다.
   + 수동으로 플릿을 구성한 경우 다음을 수행합니다.

     태그를 추가하려면 **추가 시작 파라미터**를 확장하고 **태그 생성**을 선택한 다음 태그의 키와 값을 입력합니다. 각 태그에 대해 반복합니다.

     각 태그에 대해 동일한 태그로 스팟 플릿 요청과 인스턴스를 태깅할 수 있습니다. 인스턴스와 요청에 모두 태그를 지정하려면 **인스턴스**와 **플릿**이 모두 선택되어 있는지 확인합니다. 스팟 플릿 요청만 태깅하려면 **인스턴스(Instance)** 선택을 취소합니다. 플릿에서 시작한 인스턴스만 태깅하려면 **플릿(Fleet)**을 선택 취소합니다.
**참고**  
수동으로 플릿을 구성하는 경우 볼륨에 태그를 지정하는 옵션이 없습니다. 볼륨 태그는 온디맨드 인스턴스에 연결된 볼륨에 대해서만 지원됩니다. 수동으로 플릿을 구성하는 경우 온디맨드 인스턴스를 지정할 수 없습니다.
   + 시작 템플릿을 사용한 경우 다음을 수행합니다.

     플릿 요청에 태그를 추가하려면 **태그**에서 **태그 생성**을 선택하고 태그 키와 값을 입력합니다. 각 태그에 대해 반복합니다.

     플릿의 리소스에 태그를 지정하려면 [시작 템플릿](create-launch-template.md)에서 태그를 지정해야 합니다.

**AWS CLI를 사용하여 새 스팟 플릿 요청 및 해당 스팟 플릿이 시작하는 인스턴스 및 볼륨에 태깅**  
스팟 플릿 요청을 생성할 때 태깅하고 해당 스팟 플릿에서 시작할 때 인스턴스 및 볼륨을 태깅하려면 스팟 플릿 요청 구성을 다음과 같이 구성합니다.

**스팟 플릿 요청 태그:**
+ `SpotFleetRequestConfig`에서 스팟 플릿 요청에 대한 태그를 지정합니다.
+ `ResourceType`에 `spot-fleet-request`을 지정합니다. 다른 값을 지정하면 플릿 요청이 실패합니다.
+ `Tags`에 대해 키-값 페어를 지정합니다. 둘 이상의 키-값 페어를 지정할 수 있습니다.

**인스턴스 태그:**
+ `LaunchSpecifications`의 인스턴스에 대한 태그를 지정합니다.
+ `ResourceType`에 `instance`을 지정합니다. 다른 값을 지정하면 플릿 요청이 실패합니다.
+ `Tags`에 대해 키-값 페어를 지정합니다. 둘 이상의 키-값 페어를 지정할 수 있습니다.

  또는 스팟 플릿 요청에서 참조되는 [시작 템플릿](create-launch-template.md)에서 인스턴스에 대한 태그를 지정할 수 있습니다.

**볼륨 태그:**
+ 스팟 플릿 요청에서 참조되는 [시작 템플릿](create-launch-template.md)의 볼륨에 대한 태그를 지정합니다. `LaunchSpecifications`에서의 볼륨 태그 지정은 지원되지 않습니다.

다음 예에서 스팟 플릿 요청은 Key=Environment 및 Value=Production, Key=Cost-Center 및 Value=123이라는 2개의 태그로 태깅됩니다. 플릿에서 시작한 인스턴스는 스팟 플릿 요청의 태그 중 하나와 동일한 Key=Cost-Center 및 Value=123 태그 1개로만 태깅됩니다.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchSpecifications": [
            {
                "ImageId": "ami-0123456789EXAMPLE",
                "InstanceType": "c4.large",
                "TagSpecifications": [
                    {
                        "ResourceType": "instance",
                        "Tags": [
                            {
                                "Key": "Cost-Center",
                                "Value": "123"
                            }
                        ]
                    }
                ]
            }
        ],
        "SpotPrice": "5",
        "TargetCapacity": 2,
        "TerminateInstancesWithExpiration": true,
        "Type": "maintain",
        "ReplaceUnhealthyInstances": true,
        "InstanceInterruptionBehavior": "terminate",
        "InstancePoolsToUseCount": 1,
        "TagSpecifications": [
            {
                "ResourceType": "spot-fleet-request",
                "Tags": [
                    {
                        "Key": "Environment",
                        "Value":"Production"
                    },
                    {
                        "Key": "Cost-Center",
                        "Value":"123"
                    }
                ]
            }
        ]
    }
}
```

**AWS CLI를 사용하여 스팟 플릿에서 시작한 인스턴스에 태깅**  
플릿에서 시작되는 인스턴스를 태깅하려면 스팟 플릿 요청에서 참조되는 [시작 템플릿](create-launch-template.md)에서 태그를 지정하거나 다음과 같이 스팟 플릿 요청 구성에서 태그를 지정할 수 있습니다.
+ `LaunchSpecifications`의 인스턴스에 대한 태그를 지정합니다.
+ `ResourceType`에 `instance`을 지정합니다. 다른 값을 지정하면 플릿 요청이 실패합니다.
+ `Tags`에 대해 키-값 페어를 지정합니다. 둘 이상의 키-값 페어를 지정할 수 있습니다.

다음 예에서는 플릿에 의해 시작되는 인스턴스에 Key=Cost-Center 및 Value=123 태그가 지정되어 있습니다.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchSpecifications": [
            {
                "ImageId": "ami-0123456789EXAMPLE",
                "InstanceType": "c4.large",
                "TagSpecifications": [
                    {
                        "ResourceType": "instance",
                        "Tags": [
                            {
                                "Key": "Cost-Center",
                                "Value": "123"
                            }
                        ]
                    }
                ]
            }
        ],
        "SpotPrice": "5",
        "TargetCapacity": 2,
        "TerminateInstancesWithExpiration": true,
        "Type": "maintain",
        "ReplaceUnhealthyInstances": true,
        "InstanceInterruptionBehavior": "terminate",
        "InstancePoolsToUseCount": 1
    }
}
```

**AWS CLI를 사용하여 스팟 플릿에서 시작한 온디맨드 인스턴스에 연결된 볼륨에 태깅**  
플릿에서 생성하는 볼륨을 태깅하려면 스팟 플릿 요청에서 참조되는 [시작 템플릿](create-launch-template.md)에서 태그를 지정합니다.

**참고**  
볼륨 태그는 온디맨드 인스턴스에 연결된 볼륨에 대해서만 지원됩니다. 스팟 인스턴스에 연결된 볼륨에는 태그를 지정할 수 없습니다.  
`LaunchSpecifications`에서의 볼륨 태그 지정은 지원되지 않습니다.

## 기존 스팟 플릿 태깅
<a name="tag-existing-spot-fleet"></a>

**콘솔을 사용하여 기존 스팟 플릿 요청을 태깅하려면**

스팟 플릿 요청을 생성한 후 콘솔을 사용하여 플릿 요청에 태그를 추가할 수 있습니다.

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **스팟 요청**을 선택합니다.

1. 스팟 플릿 요청을 선택합니다.

1. **태그** 탭을 선택하고 **태그 생성**을 선택합니다.

**AWS CLI를 사용하여 기존 스팟 플릿 요청에 태깅**  
[create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) 명령을 사용해 기존 리소스에 태그를 지정할 수 있습니다. 다음 예에서, 기존 스팟 플릿 요청은 Key=purpose 및 Value=test로 태깅됩니다.

```
aws ec2 create-tags \
    --resources sfr-11112222-3333-4444-5555-66666EXAMPLE \
    --tags Key=purpose,Value=test
```

## 스팟 플릿 요청 태그 보기
<a name="view-spot-fleet-tags"></a>

**콘솔을 사용하여 스팟 플릿 요청 태그를 보려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **스팟 요청**을 선택합니다.

1. 스팟 플릿 요청을 선택하고 [**태그(Tags)**] 탭을 선택합니다.

**스팟 플릿 요청 태그를 설명하려면**  
[describe-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-tags.html) 명령을 사용하여 지정된 리소스에 대한 태그를 표시합니다. 다음 예제에서는 지정된 스팟 플릿 요청에 대한 태그를 설명합니다.

```
aws ec2 describe-tags \
    --filters "Name=resource-id,Values=sfr-11112222-3333-4444-5555-66666EXAMPLE"
```

```
{
    "Tags": [
        {
            "Key": "Environment",
            "ResourceId": "sfr-11112222-3333-4444-5555-66666EXAMPLE",
            "ResourceType": "spot-fleet-request",
            "Value": "Production"
        },
        {
            "Key": "Another key",
            "ResourceId": "sfr-11112222-3333-4444-5555-66666EXAMPLE",
            "ResourceType": "spot-fleet-request",
            "Value": "Another value"
        }
    ]
}
```

스팟 플릿 요청을 설명하여 스팟 플릿 요청의 태그를 볼 수도 있습니다.

[describe-spot-fleet-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-requests.html) 명령을 사용하여 지정된 스팟 플릿 요청의 구성을 볼 수 있습니다. 여기에는 플릿 요청에 대해 지정된 태그가 모두 포함됩니다.

```
aws ec2 describe-spot-fleet-requests \
    --spot-fleet-request-ids sfr-11112222-3333-4444-5555-66666EXAMPLE
```

```
{
    "SpotFleetRequestConfigs": [
        {
            "ActivityStatus": "fulfilled",
            "CreateTime": "2020-02-13T02:49:19.709Z",
            "SpotFleetRequestConfig": {
                "AllocationStrategy": "capacityOptimized",
                "OnDemandAllocationStrategy": "lowestPrice",
                "ExcessCapacityTerminationPolicy": "Default",
                "FulfilledCapacity": 2.0,
                "OnDemandFulfilledCapacity": 0.0,
                "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role",
                "LaunchSpecifications": [
                    {
                        "ImageId": "ami-0123456789EXAMPLE",
                        "InstanceType": "c4.large"
                    }
                ],
                "TargetCapacity": 2,
                "OnDemandTargetCapacity": 0,
                "Type": "maintain",
                "ReplaceUnhealthyInstances": false,
                "InstanceInterruptionBehavior": "terminate"
            },
            "SpotFleetRequestId": "sfr-11112222-3333-4444-5555-66666EXAMPLE",
            "SpotFleetRequestState": "active",
            "Tags": [
                {
                    "Key": "Environment",
                    "Value": "Production"
                },
                {
                    "Key": "Another key",
                    "Value": "Another value"
                }
            ]
        }
    ]
}
```