

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Auto Scaling グループとインスタンスにタグを付ける
<a name="ec2-auto-scaling-tagging"></a>

*タグ*は、 AWS リソースに割り当てる、または AWS に割り当てるカスタム属性ラベルです。各 タグは 2 つの部分で構成されます: 
+ タグキー (例: `costcenter`、`environment` または `project`)
+ タグ値として知られるオプションのフィールド (例: `111122223333` または `production`)

タグは、以下のことに役立ちます。
+  AWS コストを追跡します。 AWS Billing and Cost Management ダッシュボードでこれらのタグをアクティブ化します。 AWS はタグを使用してコストを分類し、毎月のコスト配分レポートを配信します。詳細については、AWS Billing ユーザーガイド の「[コスト配分タグの使用](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)」を参照してください。
+ タグに基づいて、Auto Scaling グループへのアクセスを制御します。IAM ポリシーで条件を使用して、そのグループのタグに基づき、Auto Scaling グループへのアクセスを制御できます。詳しくは、「[セキュリティ用のタグ](tag-security.md)」を参照してください。
+ 追加したタグに基づく Auto Scaling グループのフィルタリングと検索。詳細については、「[タグを使用して Auto Scaling グループをフィルタリングする](use-tag-filters-aws-cli.md)」を参照してください。
+  AWS リソースを特定して整理します。多くの はタグ付け AWS のサービス をサポートしているため、異なるサービスのリソースに同じタグを割り当てて、リソースが関連していることを示すことができます。

新規または既存の Auto Scaling グループにタグを付けることができます。Auto Scaling グループから、起動する EC2 インスタンスにタグを伝播することもできます。

タグは Amazon EBS ボリュームには伝達されません。Amazon EBS ボリュームにタグを追加するには、起動テンプレートでタグを指定します。詳細については、「[Auto Scaling グループの起動テンプレートを作成する](create-launch-template.md)」を参照してください。

タグを作成および管理するには AWS マネジメントコンソール、、 AWS CLI、または SDKsを使用します。

**Topics**
+ [タグの命名と使用制限](#tag_restrictions)
+ [EC2 インスタンスのタグ付けライフサイクル](#tag-lifecycle)
+ [Auto Scaling グループにタグを付ける](add-tags.md)
+ [タグの削除](delete-tag.md)
+ [セキュリティ用のタグ](tag-security.md)
+ [タグへのアクセスを制御する](tag-permissions.md)
+ [タグを使用して Auto Scaling グループをフィルタリングする](use-tag-filters-aws-cli.md)

## タグの命名と使用制限
<a name="tag_restrictions"></a>

タグには以下のようなベーシック制限があります。
+ リソースあたりのタグの最大数は 50 です。
+ 単一の呼び出しを使用して追加または削除できるタグの最大数は 25 です。
+ キーの最大長は Unicode 文字で 128 文字です。
+ 値の最大長は Unicode 文字で 256 文字です。
+ タグキーと値は大文字と小文字が区別されます。ベストプラクティスとして、タグを大文字にするための戦略を決定し、その戦略をすべてのリソースタイプにわたって一貫して実装します。
+ タグ名または値に `aws:` プレフィックスを使用しないでください。このプレフィックスは AWS 使用のために予約されています。このプレフィックスが含まれるタグの名前または値は編集または削除できません。これらはリソースクォータあたりのタグに対して計算されません。

## EC2 インスタンスのタグ付けライフサイクル
<a name="tag-lifecycle"></a>

EC2 インスタンスにタグを伝播することを選択した場合、タグは以下のように管理されます。
+ Auto Scaling グループがインスタンスを起動すると、リソースの作成後ではなく作成中に、インスタンスにタグが追加されます。
+ Auto Scaling グループでは、キーに `aws:autoscaling:groupName`、値に Auto Scaling グループ名が使用され、インスタンスにタグが自動的に追加されます。
+ 起動テンプレートでインスタンスタグを指定し、グループのタグをそのインスタンスに伝播することを選択した場合、すべてのタグがマージされます。起動テンプレートのタグと Auto Scaling グループのタグに同じタグキーが指定されている場合、グループのタグ値が優先されます。
+ 既存のインスタンスをアタッチするときに、Auto Scaling グループはタグをインスタンスに追加し、同じタグキーを持つ既存のタグを上書きします。また、キーが `aws:autoscaling:groupName` で、値が Auto Scaling グループ名のタグも追加されます。
+ Auto Scaling グループからインスタンスからデタッチした場合は、`aws:autoscaling:groupName` タグのみが削除されます。

# Auto Scaling グループにタグを付ける
<a name="add-tags"></a>

Auto Scaling グループにタグを追加する際、Auto Scaling グループで起動するインスタンスに追加するかどうかを指定できます。タグを変更する場合は、変更後にその Auto Scaling グループで起動されたインスタンスには更新されたタグのバージョンが追加されます。Auto Scaling グループのタグを作成または変更しても、これらの変更内容は既に Auto Scaling グループで実行中のインスタンスには加えられません。

**Topics**
+ [タグの追加または変更 (コンソール)](#add-tags-console)
+ [タグの追加または変更 (AWS CLI)](#add-tags-aws-cli)

## タグの追加または変更 (コンソール)
<a name="add-tags-console"></a>

**Auto Scaling グループの作成時にタグを付けるには**  
Amazon EC2 コンソールを使用して Auto Scaling グループを作成する場合、Auto Scaling グループの作成ウィザードの [**Add Tags (タグの追加)**] ページでタグのキーと値を指定できます。Auto Scaling グループで起動されるインスタンスにタグを付けるには、[**Tag New Instances (新しいインスタンスのタグ付け)**] オプションが選択されたままにしてください。タグを付けない場合は、このオプションの選択を解除できます。

**既存の Auto Scaling グループのタグを追加または変更するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling グループの横にあるチェックボックスを選択します。

   **[Auto Scaling groups]** (Auto Scaling グループ) ページの下部にスプリットペインが開きます。

1. [**詳細**] タブで、[**タグ**]、[**編集**] の順に選択します。

1. 既存のタグを変更するには、[**Key**] と [**Value**] フィールドを編集します。

1. 新しいタグを追加するには、[**Add tag**] を選択し、[**Key**] と [**Value**] フィールドを選択します。[**Tag New Instances (新しいインスタンスにタグ付けする)**] を選択したままにして Auto Scaling グループで起動されるインスタンスに自動的にタグを追加することも、選択解除して追加しないこともできます。

1. タグの追加を完了したら、[**保存**] を選択します

## タグの追加または変更 (AWS CLI)
<a name="add-tags-aws-cli"></a>

次の例は、 を使用して Auto Scaling グループを作成するときにタグ AWS CLI を追加し、既存の Auto Scaling グループのタグを追加または変更する方法を示しています。

**Auto Scaling グループの作成時にタグを付けるには**  
[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) を使用して新しい Auto Scaling グループを作成し、タグを追加します (例: **environment=production** を Auto Scaling グループに追加)。タグは、Auto Scaling グループで起動されるインスタンスにも追加されます。

```
aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \
  --launch-configuration-name my-launch-config --min-size 1 --max-size 3 \
  --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \
  --tags Key=environment,Value=production,PropagateAtLaunch=true
```

**既存の Auto Scaling グループのタグを作成または変更するには**  
[create-or-update-tags](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-or-update-tags.html) コマンドを使用して、タグを作成または変更します。例えば、以下のコマンドは `Name=my-asg` および `costcenter=cc123` タグを追加します。この変更後、それらのタグは Auto Scaling グループ内で起動されるすべてのインスタンスに追加されます。いずれかのキーを持つタグがすでに存在する場合、既存のタグは置き換えられます。Amazon EC2 コンソールでは、各インスタンスの表示名は、`Name` キーに指定された名前に関連付けられます (大文字と小文字は区別)。

```
aws autoscaling create-or-update-tags \
  --tags ResourceId=my-asg,ResourceType=auto-scaling-group,Key=Name,Value=my-asg,PropagateAtLaunch=true \
  ResourceId=my-asg,ResourceType=auto-scaling-group,Key=costcenter,Value=cc123,PropagateAtLaunch=true
```

### Auto Scaling グループのタグを記述する (AWS CLI)
<a name="describe-tags-aws-cli"></a>

特定の Auto Scaling グループに適用されているタグを表示する場合は、次のいずれかのコマンドを使用できます。
+ [describe-tags](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-tags.html) – Auto Scaling グループ名を指定して、指定したグループのタグのリストを表示します。

  ```
  aws autoscaling describe-tags --filters Name=auto-scaling-group,Values=my-asg
  ```

  以下に、応答の例を示します。

  ```
  {
      "Tags": [
          {
              "ResourceType": "auto-scaling-group",
              "ResourceId": "my-asg",
              "PropagateAtLaunch": true,
              "Value": "production",
              "Key": "environment"
          }
      ]
  }
  ```
+ [describe-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) – Auto Scaling グループ名を指定して、タグを含む指定したグループの属性を表示します。

  ```
  aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  ```

  以下に、応答の例を示します。

  ```
  {
      "AutoScalingGroups": [
          {
              "AutoScalingGroupName": "my-asg",
              "AutoScalingGroupARN": "arn",
              "LaunchTemplate": {
                  "LaunchTemplateId": "lt-0b97f1e282EXAMPLE",
                  "LaunchTemplateName": "my-launch-template",
                  "Version": "$Latest"
              },
              "MinSize": 1,
              "MaxSize": 5,
              "DesiredCapacity": 1,
              ...
              "Tags": [
                  {
                      "ResourceType": "auto-scaling-group",
                      "ResourceId": "my-asg",
                      "PropagateAtLaunch": true,
                      "Value": "production",
                      "Key": "environment"
                  }
              ],
              ...
          }
      ]
  }
  ```

# タグの削除
<a name="delete-tag"></a>

Auto Scaling グループに関連付けられたタグは、いつでも削除できます。

**Topics**
+ [タグの削除 (コンソール)](#delete-tag-console)
+ [タグの削除 (AWS CLI)](#delete-tag-aws-cli)

## タグの削除 (コンソール)
<a name="delete-tag-console"></a>

**タグを削除するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. 既存のグループの横にあるチェックボックスをオンにします。

   **[Auto Scaling groups]** (Auto Scaling グループ) ページの下部にスプリットペインが開きます。

1. [**詳細**] タブで、[**タグ**]、[**編集**] の順に選択します。

1. タグの横にある [**削除**] を選択します。

1. **[更新]** を選択します。

## タグの削除 (AWS CLI)
<a name="delete-tag-aws-cli"></a>

[delete-tags](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/delete-tags.html) コマンドを使用してタグを削除します。例えば、以下のコマンドは `environment` キーを持つタグを削除します。

```
aws autoscaling delete-tags --tags "ResourceId=my-asg,ResourceType=auto-scaling-group,Key=environment"
```

タグのキーは指定する必要がありますが、値を指定する必要はありません。指定した値が正しくない場合、タグは削除されません。

# セキュリティ用のタグ
<a name="tag-security"></a>

タグを使用してリクエスター (IAM ユーザーまたはロールなど) が特定の Auto Scaling グループを作成、変更、削除する許可を持っていることを確認します。以下の条件キーを 1 つ以上使用して、IAM ポリシーの条件要素にタグ情報を指定します。
+ 特定のタグを持つ Auto Scaling グループに対してユーザーアクションを許可 (または拒否) するには、`autoscaling:ResourceTag/tag-key: tag-value` を使用します。
+ リクエストに特定のタグが含める (または含めない) ことを要求するには、`aws:RequestTag/tag-key: tag-value` を使用します。
+ リクエストに特定のタグキーを含める (または含めない) ことを要求するには、`aws:TagKeys [tag-key, ...]` を使用します。

例えば、以下の例に示すように、キー `environment` および 値 `production` を持つタグを含むすべての Auto Scaling グループへのアクセスを拒否できます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [        
                "autoscaling:CreateAutoScalingGroup",
                "autoscaling:UpdateAutoScalingGroup",
                "autoscaling:DeleteAutoScalingGroup"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {"autoscaling:ResourceTag/environment": "production"}
            }
        }
    ]
}
```

------

条件キーを使用して Auto Scaling グループへのアクセスを制御する方法の詳細については、「[Amazon EC2 Auto Scaling と IAM の連携](control-access-using-iam.md)」を参照してください。

# タグへのアクセスを制御する
<a name="tag-permissions"></a>

タグを使用してリクエスター (IAM ユーザーまたはロールなど) が Auto Scaling グループのタグを追加、変更、削除する許可を持っていることを確認します。

次の IAM ポリシーの例では、Auto Scaling グループから `temporary` キーを持つタグのみを削除する許可をプリンシパルに与えます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "autoscaling:DeleteTags",
            "Resource": "*",
            "Condition": {
                "ForAllValues:StringEquals": { "aws:TagKeys": ["temporary"] }
            }
        }
    ]
}
```

------

Auto Scaling グループに指定されたタグに制約を強制する IAM ポリシーの例については、「[使用できるタグキーとタグ値を制御する](security_iam_id-based-policy-examples.md#policy-example-tags)」を参照してください。

**注記**  
ユーザーによる Auto Scaling グループに対するタグ付け (または、タグの削除) 操作の実行を制限するポリシーを持っていても、ユーザーはインスタンスの起動後にタグを手動で変更できます。EC2 インスタンスでタグへのアクセスを制御する例については、「*Amazon EC2 ユーザーガイド*」の「[例: リソースのタグ付け](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-taggingresources)」を参照してください。

# タグを使用して Auto Scaling グループをフィルタリングする
<a name="use-tag-filters-aws-cli"></a>

次の例では、[describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) コマンドでフィルターを使用して、Auto Scaling グループを特定のタグで記述する方法を示しています。タグによるフィルタリングは、 AWS CLI または SDK に限定され、コンソールからは使用できません。

**フィルタリングの考慮事項**
+ 1 つのリクエストで複数のフィルターと複数のフィルタの値を指定できます。
+ フィルターの値にワイルドカードを使用することはできません。
+ フィルターの値は大文字と小文字が区別されます。

**例: 特定のタグキーと値のペアを持つ Auto Scaling グループを記述する**  
次のコマンドは、**`environment=production`** のタグキーと値のペアを持つ Auto Scaling グループのみを表示するように、結果をフィルタリングする方法を示しています。

```
aws autoscaling describe-auto-scaling-groups \
  --filters Name=tag-key,Values=environment Name=tag-value,Values=production
```

以下に、応答の例を示します。

```
{
    "AutoScalingGroups": [
        {
            "AutoScalingGroupName": "my-asg",
            "AutoScalingGroupARN": "arn",
            "LaunchTemplate": {
                "LaunchTemplateId": "lt-0b97f1e282EXAMPLE",
                "LaunchTemplateName": "my-launch-template",
                "Version": "$Latest"
            },
            "MinSize": 1,
            "MaxSize": 5,
            "DesiredCapacity": 1,
            ...
            "Tags": [
                {
                    "ResourceType": "auto-scaling-group",
                    "ResourceId": "my-asg",
                    "PropagateAtLaunch": true,
                    "Value": "production",
                    "Key": "environment"
                }
            ],
            ...
        },

    ... additional groups ...

    ]
}
```

または `tag:<key>` フィルターを使用して、タグを指定することもできます。例えば、次のコマンドは、**`environment=production`** のタグキーと値のペアを持つ Auto Scaling グループのみを表示するように、結果をフィルタリングする方法を示しています。このフィルターは、次の形式になります: `Name=tag:<key>,Values=<value>` (**<key>** および **<value>** はタグキーと値のペアを表します。) 

```
aws autoscaling describe-auto-scaling-groups \
  --filters Name=tag:environment,Values=production
```

`--query` オプションを使用して AWS CLI 出力をフィルタリングすることもできます。次の例は、前のコマンドの AWS CLI 出力をグループ名、最小サイズ、最大サイズ、および希望する容量属性のみに制限する方法を示しています。

```
aws autoscaling describe-auto-scaling-groups \
  --filters Name=tag:environment,Values=production \
  --query "AutoScalingGroups[].{AutoScalingGroupName: AutoScalingGroupName, MinSize: MinSize, MaxSize: MaxSize, DesiredCapacity: DesiredCapacity}"
```

以下に、応答の例を示します。

```
[
    {
        "AutoScalingGroupName": "my-asg",
        "MinSize": 0,
        "MaxSize": 10,
        "DesiredCapacity": 1
    },

    ... additional groups ...

]
```

フィルタリングの詳細については、「 *AWS Command Line Interface ユーザーガイド*[」の AWS CLI 「出力のフィルタリング](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html)」を参照してください。

**例: 指定したタグキーと一致するタグを持つ Auto Scaling グループを記述する**  
次のコマンドは、タグ値に関係なく `environment` タグを持つ Auto Scaling グループのみを表示するように、結果をフィルタリングする方法を示しています。

```
aws autoscaling describe-auto-scaling-groups \
  --filters Name=tag-key,Values=environment
```

**例: 指定したタグキーのセットに一致するタグを持つ Auto Scaling グループを記述する**  
次のコマンドは、タグ値に関係なく `environment` および `project` のタグを持つ Auto Scaling グループのみを表示するように、結果をフィルタリングする方法を示しています。

```
aws autoscaling describe-auto-scaling-groups \
  --filters Name=tag-key,Values=environment Name=tag-key,Values=project
```

**例: 指定したタグキーのうち少なくとも 1 つに一致するタグを持つ Auto Scaling グループを記述する**  
次のコマンドは、タグ値に関係なく `environment` または `project` のタグを持つ Auto Scaling グループのみを表示するように、結果をフィルタリングする方法を示しています。

```
aws autoscaling describe-auto-scaling-groups \
  --filters Name=tag-key,Values=environment,project
```

**例: 指定したタグ値を持つ Auto Scaling グループを記述する**  
次のコマンドは、タグキーに関係なくタグ値 `production` を持つ Auto Scaling グループのみを表示するように、結果をフィルタリングする方法を示しています。

```
aws autoscaling describe-auto-scaling-groups \
  --filters Name=tag-value,Values=production
```

**例: 指定したタグ値のセットを持つ Auto Scaling グループを記述する**  
次のコマンドは、タグキーに関係なくタグ値 `production` および `development` を持つ Auto Scaling グループのみを表示するように、結果をフィルタリングする方法を示しています。

```
aws autoscaling describe-auto-scaling-groups \
  --filters Name=tag-value,Values=production Name=tag-value,Values=development
```

**例: 指定したタグ値の少なくとも 1 つに一致するタグを持つ Auto Scaling グループを記述する**  
次のコマンドは、タグキーに関係なくタグ値 `production` または `development` を持つ Auto Scaling グループのみを表示するように、結果をフィルタリングする方法を示しています。

```
aws autoscaling describe-auto-scaling-groups \
  --filters Name=tag-value,Values=production,development
```

**例: 複数のタグキーおよびタグ値が一致するタグを持つ Auto Scaling グループを記述する**  
フィルターを組み合わせてカスタムの AND および OR ロジックを作成し、より複雑なフィルタリングを実行することもできます。

次のコマンドは、特定のタグのセットを持つ Auto Scaling グループのみを表示するように、結果をフィルタリングする方法を示しています。一方のタグキーは `environment` AND でタグ値は (`production` OR `development`) AND、もう一方のタグキーは `costcenter` AND でタグ値は `cc123` です。

```
aws autoscaling describe-auto-scaling-groups \
  --filters Name=tag:environment,Values=production,development Name=tag:costcenter,Values=cc123
```