Auto Scaling グループとインスタンスにタグを付ける - Amazon EC2 Auto Scaling

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

Auto Scaling グループとインスタンスにタグを付ける

タグは、ユーザーまたは が AWS リソースに割り当てるカスタム属性ラベル AWS です。各 タグは 2 つの部分で構成されます:

  • タグキー (例: costcenterenvironment または project)

  • タグ値として知られるオプションのフィールド (例: 111122223333 または production)

タグは、以下のことに役立ちます。

  • AWS コストを追跡します。これらのタグは AWS Billing and Cost Management ダッシュボードでアクティブ化します。 AWS はタグを使用してコストを分類し、毎月のコスト配分レポートを提供します。詳細については、AWS Billing ユーザーガイド の「コスト配分タグの使用」を参照してください。

  • タグに基づいて、Auto Scaling グループへのアクセスを制御します。IAM ポリシーで条件を使用して、そのグループのタグに基づき、Auto Scaling グループへのアクセスを制御できます。詳しくは、「セキュリティ用のタグ」を参照してください。

  • 追加したタグに基づく Auto Scaling グループのフィルタリングと検索。詳細については、「タグを使用して Auto Scaling グループをフィルタリングする」を参照してください。

  • AWS リソースを特定して整理します。多くの はタグ付け AWS のサービス をサポートしているため、異なる サービスのリソースに同じタグを割り当てて、リソースが関連していることを示すことができます。

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

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

タグは、 AWS Management Console、 AWS CLI、または SDKsを使用して作成および管理できます。

タグの命名と使用制限

タグには以下のようなベーシック制限があります。

  • リソースあたりのタグの最大数は 50 です。

  • 単一の呼び出しを使用して追加または削除できるタグの最大数は 25 です。

  • キーの最大長は Unicode 文字で 128 文字です。

  • 値の最大長は Unicode 文字で 256 文字です。

  • タグのキーと値は大文字と小文字が区別されます。ベストプラクティスとして、タグを大文字にするための戦略を決定し、その戦略をすべてのリソースタイプにわたって一貫して実装します。

  • タグの名前または値に aws: プレフィックスは使用しないでください。このプレフィックスは AWS 用に予約されています。このプレフィックスが含まれるタグの名前または値は編集または削除できません。これらはリソースクォータあたりのタグに対して計算されません。

EC2 インスタンスのタグ付けライフサイクル

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 グループにタグを付ける

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

タグの追加または変更 (コンソール)

Auto Scaling グループの作成時にタグを付けるには

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

既存の Auto Scaling グループのタグを追加または変更するには
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

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

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

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

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

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

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

タグの追加または変更 (AWS CLI)

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

Auto Scaling グループの作成時にタグを付けるには

create-auto-scaling-group コマンドを使用して、新しい Auto Scaling グループを作成し、environment=productionAuto 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 コマンドを使用して、タグを作成または変更します。例えば、以下のコマンドは 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)

特定の Auto Scaling グループに適用されているタグを表示する場合は、次のいずれかのコマンドを使用できます。

  • describe-tags – 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-groups – 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" } ], ... } ] }

タグの削除

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

タグの削除 (コンソール)

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

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

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

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

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

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

タグの削除 (AWS CLI)

delete-tags コマンドを使用してタグを削除します。例えば、以下のコマンドは environment キーを持つタグを削除します。

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

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

セキュリティ用のタグ

タグを使用してリクエスター (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 グループへのアクセスを拒否できます。

{ "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 の連携」を参照してください。

タグへのアクセスを制御する

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

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

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

Auto Scaling グループに指定されたタグに制約を強制する IAM ポリシーの例については、「使用できるタグキーとタグ値を制御する」を参照してください。

注記

ユーザーによる Auto Scaling グループに対するタグ付け (または、タグの削除) 操作の実行を制限するポリシーを持っていても、ユーザーはインスタンスの起動後にタグを手動で変更できます。EC2 インスタンスでタグへのアクセスを制御する例については、Linux インスタンス用 Amazon EC2 ユーザーガイドの例: リソースのタグ付けを参照してください。

タグを使用して Auto Scaling グループをフィルタリングする

次の例は、 describe-auto-scaling-groups コマンドでフィルターを使用して、特定のタグを持つ 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 「出力のフィルタリング」を参照してください。

例: 指定したタグキーと一致するタグを持つ 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