Amazon EC2 リソースのタグ付け - Amazon Elastic Compute Cloud

Amazon EC2 リソースのタグ付け

インスタンスやイメージなどの Amazon EC2 リソースを管理しやすくするために、独自のメタデータをタグとして各リソースに割り当てることができます。タグを使用すると、AWS リソースを用途、所有者、環境などのさまざまな方法で分類できます。これは、同じタイプのリソースが多数ある場合に役立ちます。割り当てたタグに基づいて、特定のリソースをすばやく識別できます。ここでは、タグとその作成方法について説明します。

警告

タグのキーと値は、多くの異なる API コールから返されます。DescribeTags へのアクセスを拒否しても、他の API から返されるタグへのアクセスは自動的に拒否されません。ベストプラクティスとして、機密データをタグに含めないようお勧めします。

タグの基本

タグとは、AWS リソースに割り当てるラベルです。タグはそれぞれ、1 つのキーとオプションの 1 つので構成されており、どちらもお客様側が定義します。

タグを使用すると、AWS リソースを用途、所有者、環境などのさまざまな方法で分類できます。例えば、アカウントの各インスタンスの所有者とスタックレベルを追跡しやすくするため、Amazon EC2 インスタンスに対して一連のタグを定義できます。

次の図は、タグの機能を示しています。図の中では、インスタンスのそれぞれに 2 つのタグを割り当てています。1 つは Owner のキーを使用、もう 1 つは Stack キーを使用します。各タグには値も関連付けられています。

タグの例

ニーズを満たす一連のタグキーをリソースタイプごとに考案されることをお勧めします。一貫性のある一連のタグキーを使用することで、リソースの管理が容易になります。追加したタグに基づいてリソースを検索およびフィルタリングできます。効果的なリソースのタグ付け戦略を実装する方法の詳細については、AWS ホワイトペーパーの「タグ付けのベストプラクティス」を参照してください。

タグには、Amazon EC2 に関連する意味はなく、完全に文字列として解釈されます。また、タグは自動的にリソースに割り当てられます。タグのキーと値は編集でき、タグはリソースからいつでも削除できます。タグの値を空の文字列に設定することはできますが、タグの値を null に設定することはできません。特定のリソースについて既存のタグと同じキーを持つタグを追加した場合、以前の値は新しい値によって上書きされます。リソースを削除すると、リソースのタグも削除されます。

注記

リソースを削除した後も、そのタグがコンソール、API、および CLI の出力にしばらく表示されたままになる場合があります。これらのタグは徐々にリソースから切り離され、完全に削除されます。

リソースのタグ付け

アカウントにすでに存在するほとんどの Amazon EC2 リソースにタグ付けできます。以下のに、タグ付けをサポートするリソースを示します。

Amazon EC2 コンソールを使用している場合は、関連するリソース画面で [タグ] タブを使用してリソースにタグを適用するか、または AWS Resource Groups コンソールで [タグエディタ] を使用できます。一部のリソースの画面では、リソースの作成時にリソースのタグを指定できます。例えば、Name のキーと指定した値をタグ付けします。ほとんどの場合、リソースの作成後すぐに (リソースの作成時ではなく) コンソールによりタグが適用されます。コンソールは Name タグに従ってリソースを整理する場合がありますが、このタグには Amazon EC2 サービスに対する意味論的意味はありません。

Amazon EC2 API、AWS CLI、または AWS SDK を使用している場合、CreateTags EC2 API アクションを使用してタグを既存のリソースに適用できます。さらに、リソース作成アクションによっては、リソースの作成時にリソースのタグを指定できます。リソースの作成時にタグを適用できない場合は、リソース作成プロセスがロールバックされます。これにより、リソースがタグ付きで作成されるか、まったく作成されないようになるため、タグ付けされていないリソースが存在することがなくなります。作成時にリソースにタグ付けすることで、リソース作成後にカスタムタグ付けスクリプティングを実行する必要がなくなります。作成時にユーザーがリソースにタグ付けできるようにする方法については、「リソース作成時にタグ付けするアクセス許可の付与」を参照してください。

次の表では、タグ付け可能な Amazon EC2 リソースと、Amazon EC2 API、AWS CLI、または AWS SDK を使用した作成時にタグ付け可能なリソースについて説明します。

Amazon EC2 リソースのタグ付けのサポート
リソース タグをサポート 作成時のタグ付けをサポート

AFI

はい

はい

AMI

はい

はい

バンドルタスク

いいえ

いいえ

Capacity Reservation

はい

はい

キャリアゲートウェイ はい はい

クライアント VPN エンドポイント

はい

はい

クライアント VPN ルート

いいえ

いいえ

カスタマーゲートウェイ

はい

はい

Dedicated Host

はい

はい

Dedicated Host 予約

はい

はい

DHCP オプション

はい

はい

EBS スナップショット

はい

はい

EBS ボリューム

はい

はい

EC2 Fleet

はい

はい

Egress-only インターネットゲートウェイ

はい

はい

Elastic IP アドレス

はい

はい

Elastic Graphics アクセラレーター

はい

いいえ
インスタンス はい はい
インスタンスイベントウィンドウ はい はい

インスタンスストアボリューム

該当なし

該当なし

インターネットゲートウェイ

はい

はい

IP アドレスプール (BYOIP)

はい

はい

キーペア

はい

はい

起動テンプレート

はい

はい

起動テンプレートのバージョン

いいえ

いいえ

ローカルゲートウェイ

はい

いいえ

ローカルゲートウェイルートテーブル

はい

いいえ

ローカルゲートウェイ仮想インターフェイス

はい

いいえ

ローカルゲートウェイ仮想インターフェイスグループ

はい

いいえ

ローカルゲートウェイルートテーブル VPC の関連付け

はい

はい

ローカルゲートウェイルートテーブル仮想インターフェイスグループの関連付け

はい

いいえ

NAT ゲートウェイ

はい

はい

ネットワーク ACL

はい

はい

ネットワークインターフェイス

はい

はい

配置グループ

はい

はい

プレフィックスリスト

はい

はい

Reserved Instance

はい

いいえ

リザーブドインスタンス出品

いいえ

いいえ
ルートテーブル

はい

はい

スポットフリートのリクエスト

はい

はい

スポットインスタンスリクエスト

はい

はい
セキュリティグループ はい はい
セキュリティグループルール はい いいえ
サブネット はい はい
Traffic Mirror フィルタ はい はい
Traffic Mirror セッション はい はい
Traffic Mirror ターゲット はい はい

トランジットゲートウェイ

はい

はい

Transit Gateway のマルチキャストドメイン

はい

はい

トランジットゲートウェイルートテーブル

はい

はい

トランジットゲートウェイ VPC アタッチメント

はい

はい

仮想プライベートゲートウェイ

はい

はい

VPC

はい

はい

VPC エンドポイント

はい

はい

VPC エンドポイントサービス

はい

はい

VPC エンドポイントサービス設定

はい

はい

VPC フローログ

はい

はい

VPC ピア接続

はい

はい

VPN 接続

はい

はい

作成時に、Amazon EC2 コンソールの Amazon EC2 インスタンス起動ウィザードを使用して、インスタンス、ボリューム、Elastic Graphics、ネットワークインターフェイス、スポットインスタンスリクエストにタグを付けることができます。[ボリューム] 画面を使用して作成時に EBS ボリュームにタグを付けたり、[スナップショット] 画面を使用して EBS スナップショットにタグを付けたりすることができます。または、リソースを作成するときに、リソース作成 Amazon EC2 API (RunInstances など) を使用してタグを適用することもできます。

IAM ポリシーでタグベースのリソースレベルアクセス許可を、作成時のタグ付けをサポートする Amazon EC2 API アクションに適用し、作成時にリソースにタグ付けできるユーザーとグループを細かく制御できます。リソースは、作成時から適切に保護されます。タグはリソースに即座に適用されるため、リソースの使用を制御するタグベースのリソースレベルアクセス権限がただちに有効になります。リソースは、より正確に追跡および報告されます。新しいリソースにタグ付けの使用を適用し、リソースで設定されるタグキーと値を制御できます。

さらに、リソースレベルのアクセス許可を IAM ポリシーの CreateTags および DeleteTags Amazon EC2 API アクションに適用し、既存のリソースで設定されるタグキーと値を制御することもできます。詳細については、「例: リソースのタグ付け」を参照してください。

請求用リソースへのタグ付けの詳細については、AWS Billing ユーザーガイドの「コスト配分タグの使用」を参照してください。

タグの制限

タグには以下のような基本制限があります。

  • リソースあたりのタグの最大数 - 50 件

  • タグキーは、リソースごとにそれぞれ一意である必要があります。また、各タグキーに設定できる値は 1 つのみです。

  • キーの最大長 - UTF-8 の 128 Unicode 文字

  • 値の最大長 - UTF-8 の 256 Unicode 文字

  • 使用できる文字

    • EC2 ではタグ内に任意の文字を使用できますが、他の AWS のサービスでは制限があります。すべての AWS のサービスで使用できる文字は、UTF-8 で表現できる英字 (a-zA-Z)、数字 (0-9)、スペース、および + - = . _ : / @ です。

    • インスタンスメタデータでインスタンスタグを有効にすると、インスタンスタグキーは文字 (a-zA-Z)、数字 (0-9)、および次の文字のみを使用できます: + - = . , _ : @。インスタンスタグキーは、スペースまたは / を含めることはできず、. (1 つのピリオド)、.. (2 つのピリオド)、または _index のみを含めることはできません。詳細については、インスタンスメタデータ内のインスタンスタグの使用を参照してください。

  • タグのキーと値は大文字と小文字が区別されます。

  • aws: プレフィックスは AWS 用に限定されています。タグにこのプレフィックスが付いたタグキーがある場合、タグのキーまたは値を編集、削除することはできません。aws: プレフィックスを持つタグは、リソースあたりのタグ数の制限時には計算されません。

タグのみに基づいてリソースを終了、停止、終了することはできません。リソース識別子を指定する必要があります。例えば、DeleteMe というタグキーを使用してタグ付けしたスナップショットを削除するには、DeleteSnapshots のようなスナップショットのリソース識別子を指定して snap-1234567890abcdef0 アクションを使用する必要があります。

パブリックリソースまたは共有リソースにタグを付けると、割り当てたタグは、タグ付けを行った AWS アカウントだけが使用できます。他の AWS アカウントはそれらのタグにアクセスできません。共有リソースへのタグベースのアクセス制御では、リソースへのアクセスを制御するために、各 AWS アカウントに独自のタグセットを割り当てる必要があります。

すべてのリソースにタグ付けすることはできません。詳細については、「Amazon EC2 リソースのタグ付けのサポート」を参照してください。

タグとアクセス管理

AWS Identity and Access Management (IAM) を使用している場合は、タグを作成、編集、削除する許可を持つ AWS アカウントのユーザーを制御できます。詳細については、「リソース作成時にタグ付けするアクセス許可の付与」を参照してください。

リソースタグを使用して、属性ベースの制御 (ABAC) を実装することもできます。リソースのタグに基づいてオペレーションを許可する IAM ポリシーを作成できます。詳細については、「リソースタグを使用した EC2 リソースへのアクセスの制御」を参照してください。

請求用のリソースのタグ付け

タグを使用して AWS 請求書を整理し、自分のコスト構造を反映できます。そのためには、サインアップして、タグキー値が含まれた AWS アカウントの請求書を取得する必要があります。タグによるコスト配分レポートの設定の詳細については、『AWS Billing ユーザーガイド』の「コスト配分月次レポート」を参照してください。リソースを組み合わせたコストを確認するには、同じタグキー値を持つリソースに基づいて、請求情報を整理します。例えば、複数のリソースに特定のアプリケーション名のタグを付け、請求情報を整理することで、複数のサービスを利用しているアプリケーションの合計コストを確認することができます。詳細については、AWS Billing ユーザーガイド の「コスト配分タグの使用」を参照してください。

注記

レポートを有効にすると、約 24 時間後に、今月のデータを表示できるようになります。

コスト割り当てタグは、どのリソースがコストに貢献しているかを示すことができますが、リソースを削除または非アクティブ化にしてもコストは必ずしも削減されるわけではありません。例えば、元のデータを含むスナップショットが削除された場合でも、別のスナップショットによって参照されるスナップショットデータは維持されます。詳細については、AWS Billing ユーザーガイドの「Amazon Elastic Block Store のボリュームとスナップショット」を参照してください。

注記

タグされている Elastic IP アドレスは、コスト配分レポートには表示されません。

コンソールでのタグの使用

Amazon EC2 コンソールを使用して、個々のリソースのタグを表示し、一度に 1 つのリソースに対してタグを適用または削除できます。

AWS Resource Groups コンソールでタグエディタを使用すると、すべてのリージョンにおけるすべての Amazon EC2 リソースのタグを表示できます。リソース別およびリソースタイプ別にタグを表示でき、指定したタグにどのリソースタイプが関連付けられているかを確認できます。複数のリソースおよび複数のリソースタイプに対して一度にタグを適用または削除できます。タグエディタでは、統一された方法で一元的にタグを作成および管理できます。詳細については、「AWS リソースのタグ付けのユーザーガイド」を参照してください。

タグの表示

Amazon EC2 コンソールで個々のリソースのタグを表示できます。すべてのリソースのタグを表示するには、AWS Resource Groups コンソールのタグエディタを使用します。

個々のリソースのタグを表示する

Amazon EC2 コンソールでリソース固有のページを選択すると、リソースリストが表示されます。例えば、ナビゲーションペインの [Instances (インスタンス)] を選択すると、コンソールに Amazon EC2 インスタンスが表示されます。このようなリスト (インスタンスなど) からリソースを選択し、リソースがタグをサポートしている場合、タグを表示し、管理することができます。ほとんどのリソースページでは、[Tags] (タグ) タブを選択してタグを表示できます。

リソースリストに列を追加して、同じキーを持つタグのすべての値を表示できます。この列を使用して、タグによるリソースリストの並べ替えやフィルタリングを行うことができます。

New console
リソースリストに列を追加してタグを表示するには
  1. EC2 コンソールで、画面右上にある歯車の形をした [詳細設定] アイコンを選択します。

  2. [詳細設定] ダイアログボックスの [タグ] 列 (左下) で、1 つ以上のタグキーを選択し、[確認] を選択します。

Old console

新しい列をリソースリストに追加してタグを表示するには、2 つの方法があります。

  • [Tags] タブで、[Show Column] を選択します。新しい列がコンソールに追加されます。

  • [Show/Hide Columns] (歯車型のアイコン) を選択し、[Show/Hide Columns] ダイアログボックスの [Your Tag Keys] のタグキーを選択します。

複数のリソースのタグを表示する

AWS Resource Groups コンソールタグエディタを使用すると、複数のリソースのタグを表示できます。詳細については、「AWS リソースのタグ付けのユーザーガイド」を参照してください。

個々のリソースのタグの追加および削除

リソースのページから、個々のリソースのタグを直接管理できます。

個々のリソースにタグを追加するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションバーから、タグ付けするリソースがあるリージョンを選択します。詳細については、「リソースの場所」を参照してください。

  3. ナビゲーションペインで、リソースタイプを選択します ([Instances] など)。

  4. リソースリストからリソースを選択し、[Tags (タグ)] タブを選択します。

  5. [タグを管理] を選択し、[新しいタグを追加] を選択します。タグのキーと値を入力します。追加するタグごとに [新しいタグを追加] を選択します。タグの追加を完了したら、[Save (保存)] を選択します。

個々のリソースからタグを削除するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションバーから、タグ付けを解除するリソースがあるリージョンを選択します。詳細については、「リソースの場所」を参照してください。

  3. ナビゲーションペインで、リソースタイプを選択します ([Instances] など)。

  4. リソースリストからリソースを選択し、[Tags (タグ)] タブを選択します。

  5. [Manage tags (タグの管理)] を選択します。削除する各タグについて、[削除] を選択します。タグの削除を完了したら、[Save (保存)] を選択します。

複数のリソースのタグを追加および削除する

複数のリソースにタグを追加するには
  1. AWS リソースグループコンソール (https://console.aws.amazon.com/resource-groups/tag-editor) でタグエディタを開きます。

  2. [リージョン] で、タグ付けするリソースが存在する 1 つ以上のリージョンを選択します。

  3. [リソースタイプ] で、タグ付けするリソースのタイプを選択します (AWS::EC2::Instance など)。

  4. [リソースを検索] を選択します。

  5. [リソースの検索結果] で、タグ付けする各リソースの横にあるチェックボックスをオンにします。

  6. [選択したリソースのタグの管理] を選択します。

  7. [選択したすべてのリソースのタグを編集] で、[タグを追加] を選択し、新しいタグのキーと値を入力します。追加するタグごとに [Add tag] (タグを追加) を選択します。

    注記

    既存のタグとタグキーが同じ新しいタグを追加すると、既存のタグは新しいタグで上書きされます。

  8. [タグの変更を確認して適用] を選択します。

  9. [Apply changes to all selected (選択したすべてに変更を適用)] を選択します。

複数のリソースからタグを削除するには
  1. AWS リソースグループコンソール (https://console.aws.amazon.com/resource-groups/tag-editor) でタグエディタを開きます。

  2. [リージョン] で、タグを解除するリソースが存在するリージョンを選択します。

  3. [リソースタイプ] で、タグを解除するリソースのタイプを選択します (AWS::EC2::Instance など)。

  4. [リソースを検索] を選択します。

  5. [リソースの検索結果] で、タグを解除する各リソースの横にあるチェックボックスをオンにします。

  6. [選択したリソースのタグの管理] を選択します。

  7. [選択したすべてのリソースのタグを編集] で、削除するタグの横にある [タグを削除] を選択します。

  8. [タグの変更を確認して適用] を選択します。

  9. [Apply changes to all selected (選択したすべてに変更を適用)] を選択します。

インスタンスを起動するときのタグの追加

New console
インスタンスの起動ウィザードを使用してタグを追加するには
  1. ナビゲーションバーで、インスタンスを起動するリージョンを選択します。一部の Amazon EC2 リソースはリージョン間で共有できるため、この選択は重要です。ニーズに合ったリージョンを選択します。詳細については、「リソースの場所」を参照してください。

  2. [インスタンスの起動] を選択します。

  3. [Names and tags] (名前とタグ) で、インスタンス用にわかりやすい名前を入力し、タグを指定します。

    インスタンス名はタグで、キーは [Name] (名前)、値は指定した名前です。インスタンス、ボリューム、Elastic Graphics、ネットワークインターフェイスにタグ付けできます。スポットインスタンスの場合、スポットインスタンスリクエストにのみタグを付けることができます。

    インスタンス名と追加のタグを指定することはオプションです。

    • [Name] (名前) に、インスタンスのわかりやすい名前を入力します。名前を指定しない場合は、インスタンスをその ID で識別できます。ID は、インスタンスの起動時に自動的に生成されます。

    • タグを追加するには、[Add additional tag] (追加のタグを追加) を選択します。[Add tag] (タグを追加) を選択し、キーと値を入力し、タグ付けするリソースタイプを選択します。追加するタグごとに [Add tag] (タグを追加) を選択します。

  4. [Application and OS Images (Amazon Machine Image)] (アプリケーションおよび OS イメージ (Amazon マシンイメージ)) で、インスタンスと AMI 用のオペレーティングシステム (OS) を選択します。詳細については、「アプリケーションと OS イメージ (Amazon マシンイメージ)」を参照してください。

  5. [Key pair (login)] (キーペア (ログイン)) の [Key pair name] (キーペア名) で、既存のキーペアを選択するか、新しいキーペアを作成します。

  6. その他のフィールドはすべてデフォルト値のままにするか、希望するインスタンス設定に合わせて特定の値を選択します。各フィールドの詳細については、「定義済みのパラメータを使用したインスタンスの起動」を参照してください。

  7. [Summary] (概要) パネルで設定を確認し、[Launch instance] (インスタンスを起動) を選択します。

Old console
インスタンスの起動ウィザードを使用してタグを追加するには
  1. ナビゲーションバーで、インスタンスを起動するリージョンを選択します。一部の Amazon EC2 リソースはリージョン間で共有できるため、この選択は重要です。ニーズに合ったリージョンを選択します。詳細については、「リソースの場所」を参照してください。

  2. [インスタンスの作成] を選択します。

  3. [Choose an Amazon Machine Image (AMI)] ページには、Amazon マシンイメージ (AMI) と呼ばれる基本設定リストが表示されます。使用する AMI を選択し、[Select] を選択します。詳細については、「Linux AMI の検索」を参照してください。

  4. [Configure Instance Details] ページで、必要に応じてインスタンスの設定を行い、[Next: Add Storage] を選択します。

  5. [Add Storage] ページで、インスタンスに追加のストレージボリュームを指定できます。完了したら、[Next: Add Tags] を選択します。

  6. [Add Tags] ページで、インスタンス、ボリューム、またはその両方のタグを指定します。インスタンスに複数のタグを追加するには、[Add another tag] を選択します。完了したら、[次の手順: セキュリティグループの設定] を選択します。

  7. [Configure Security Group] ページで、所有する既存のセキュリティグループから選択するか、ウィザードで新しいセキュリティグループを作成します。完了したら、[Review and Launch] を選択します。

  8. 設定を確認します。選択した内容でよければ、[Launch] を選択します。既存のキーペアを選択するか、新しいキーペアを作成し、確認のチェックボックスを選択して、[Launch Instances] を選択します。

タグによるリソースリストのフィルタリング

1 つまたは複数のタグキーとタグ値に基づいて、リソースリストをフィルタリングできます。

Amazon EC2 コンソールでリソースのリストをタグでフィルタリングするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、リソースタイプを選択します ([Instances] など)。

  3. 検索フィールドを選択します。

  4. リストの [タグ] で、タグキーを選択します。

  5. リストから対応するタグ値を選択します。

  6. 完了したら、フィルターを削除します。

Amazon EC2 コンソールでのフィルターの使用の詳細については、「リソースの一覧表示およびフィルタリング」を参照してください。

タグエディタを使用して、複数のリージョンにわたって複数のリソースをタグでフィルタリングするには

AWS リソースグループコンソールのタグエディタを使用して、複のリージョンにわたって複数のリソースをタグでフィルタリングできます。詳細については、「AWS リソースのタグ付けユーザーガイド」の「タグ付けするリソースの検索」を参照してください。

コマンドラインによるタグの使用

作成時に、create コマンドのタグ仕様パラメータを使用して、多くの EC2 リソースにタグを追加できます。リソースの describe コマンドを使用して、リソースのタグを表示できます。次のコマンドを使用して、既存のリソースのタグを追加、更新、または削除することもできます。

タスク AWS CLI AWS Tools for Windows PowerShell

1 つ以上のタグを追加、または上書きします

create-tags

New-EC2Tag

1 つ以上のタグを削除します

delete-tags

Remove-EC2Tag

1 つ以上のタグを記述します

describe-tags

Get-EC2Tag

リソース作成時のタグの追加

次の例は、リソースの作成時にタグを適用する方法を示しています。

注記

コマンドラインで JSON 形式のパラメータを入力する方法はオペレーティングシステムによって異なります。

  • Linux、macOS、または Unix と Windows PowerShell - 一重引用符 (') を使用して JSON データ構造を囲みます。

  • Windows - Windows コマンドラインでコマンドを使用するときは一重引用符を省略します。

詳細については、「AWS CLI のパラメータ値の指定」を参照してください。

例: インスタンスを起動し、インスタンスおよびボリュームにタグを適用する

次の run-instances コマンドは、インスタンスを起動し、キー webserver と値 production を含むタグをインスタンスに適用します。さらに、cost-center キーと cc123 の値を持つタグを、作成された EBS ボリューム (この場合はルートボリューム) に適用します。

aws ec2 run-instances \ --image-id ami-abc12345 \ --count 1 \ --instance-type t2.micro \ --key-name MyKeyPair \ --subnet-id subnet-6e7f829e \ --tag-specifications 'ResourceType=instance,Tags=[{Key=webserver,Value=production}]' 'ResourceType=volume,Tags=[{Key=cost-center,Value=cc123}]'

起動時にインスタンスとボリュームの両方に同じタグキーと値を適用できます。次のコマンドは、インスタンスを起動し、cost-center のキーと cc123 の値を持つタグを、作成されたインスタンスとすべての EBS ボリュームに適用します。

aws ec2 run-instances \ --image-id ami-abc12345 \ --count 1 \ --instance-type t2.micro \ --key-name MyKeyPair \ --subnet-id subnet-6e7f829e \ --tag-specifications 'ResourceType=instance,Tags=[{Key=cost-center,Value=cc123}]' 'ResourceType=volume,Tags=[{Key=cost-center,Value=cc123}]'
例: ボリュームを作成してタグを適用する

次の create-volume コマンドは、ボリュームを作成し、2 つのタグ purpose=production および cost-center=cc123 を適用します。

aws ec2 create-volume \ --availability-zone us-east-1a \ --volume-type gp2 \ --size 80 \ --tag-specifications 'ResourceType=volume,Tags=[{Key=purpose,Value=production},{Key=cost-center,Value=cc123}]'

既存のリソースへのタグの追加

次の例は、create-tags コマンドを使用して既存のリソースにタグを追加する方法を示しています。

例: リソースにタグを追加する

次のコマンドでは、タグ (Stack=production) を指定されたイメージに追加するか、タグキーが Stack の AMI 用に既存のタグを上書きします。コマンドが成功した場合、出力は返りません。

aws ec2 create-tags \ --resources ami-78a54011 \ --tags Key=Stack,Value=production
例: タグを複数のリソースに追加する

この例では、2 つのタグを AMI とインスタンス用に追加 (または上書き) します。一方のタグにはキー (webserver) のみ含まれており、値は設定されていません (値を空の文字列に設定)。もう 1 つのタグはキー (stack) と値 (Production) で構成されます。コマンドが成功した場合、出力は返りません。

aws ec2 create-tags \ --resources ami-1a2b3c4d i-1234567890abcdef0 \ --tags Key=webserver,Value= Key=stack,Value=Production
例: 特殊文字のタグを追加する

この例では、タグ ([Group]=test) をインスタンスに追加します。角括弧 ([ および ]) は特殊文字であり、エスケープする必要があります。

Linux または OS X を使用している場合、特殊文字をエスケープするには、特殊文字を含む要素を二重引用符 (") で囲んでから、キーと値の構造全体を一重引用符 (') で囲みます。

aws ec2 create-tags \ --resources i-1234567890abcdef0 \ --tags 'Key="[Group]",Value=test'

Windows を使用している場合、特殊文字をエスケープするには、特殊文字を含む要素を二重引用符 (") で囲み、各二重引用符の前にバックスラッシュ (\) を付けます。

aws ec2 create-tags ^ --resources i-1234567890abcdef0 ^ --tags Key=\"[Group]\",Value=test

Windows PowerShell を使用している場合、特殊文字をエスケープするには、次のように特殊文字を含む値を二重引用符 (") で囲み、各二重引用符の前にバックスラッシュ (\) を付けてから、キーと値の構造全体を一重引用符 (') で囲みます。

aws ec2 create-tags ` --resources i-1234567890abcdef0 ` --tags 'Key=\"[Group]\",Value=test'

タグ付きリソースの説明

次の例は、describe-instances でフィルターを使用して、特定のタグを持つインスタンスを表示する方法を示しています。すべての EC2 describe コマンドは、この構文を使用して、1 つのリソースタイプ全体でタグに基づいてフィルタリングします。または、describe-tags コマンドを使用して、EC2 リソースタイプ間でタグに基づいてフィルタリングすることもできます。

例: 特定のタグキーでインスタンスの詳細を示します。

次のコマンドは、タグの値にかかわらず Stack タグでインスタンスの詳細を示します。

aws ec2 describe-instances \ --filters Name=tag-key,Values=Stack
例: 特定のタグでインスタンスの詳細を示します。

次のコマンドは、Stack=production タグでインスタンスの詳細を示します。

aws ec2 describe-instances \ --filters Name=tag:Stack,Values=production
例: 特定のタグの値でインスタンスの詳細を示します。

次のコマンドは、タグキーにかかわらず値 production を持つタグでインスタンスの詳細を示します。

aws ec2 describe-instances \ --filters Name=tag-value,Values=production
例: 指定したタグを持つすべての EC2 リソースの詳細を示す

次のコマンドは、タグ Stack=Test を持つすべての EC2 リソースの詳細を示します。

aws ec2 describe-tags \ --filters Name=key,Values=Stack Name=value,Values=Test

インスタンスメタデータ内のインスタンスタグの使用

インスタンスのメタデータからインスタンスのタグにアクセスできます。インスタンスメタデータからタグにアクセスすると、DescribeInstances または DescribeTags API コールを使用してタグ情報を取得する必要がなくなります。これにより、1 秒あたりの API トランザクションが削減され、制御するインスタンスの数に応じてタグ取得をスケーリングできるようになります。さらに、インスタンスで実行されているローカルプロセスは、インスタンスのメタデータからインスタンスのタグ情報を直接表示できます。

デフォルトでは、インスタンスメタデータからタグは使用できません。アクセスを明示的に許可する必要があります。インスタンスの起動時、または実行中または停止したインスタンスでの起動後にアクセスを許可できます。起動テンプレートでこれを指定することで、タグへのアクセスを許可することもできます。テンプレートを使用してインスタンスが起動されると、インスタンスメタデータ内のタグへのアクセスが許可されます。

インスタンスタグを追加または削除すると、インスタンスの実行中にインスタンスのメタデータが更新されます。インスタンスを停止して起動したりする必要はありません。

インスタンスメタデータのタグへのアクセスを許可する

デフォルトでは、インスタンスメタデータ内のインスタンスタグへのアクセス権はありません。インスタンスごとに、次のいずれかの方法を使用してアクセスを明示的に許可する必要があります。

コンソールを使用してインスタンスメタデータのタグへのアクセスを許可するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択し、[Actions] (アクション)、[Instance settings] (インスタンス設定)、[Allow tags in instance metadata] (インスタンスメタデータ内のタグを許可する) の順に選択します。

  4. インスタンスメタデータ内のタグへのアクセスを許可するには、[Allow] (許可) チェックボックスをオンにします。

  5. [Save] を選択します。

AWS CLI を使用して起動時にインスタンスメタデータのタグへのアクセスを許可するには

run-instances コマンドを使用して、InstanceMetadataTagsenabled に設定します。

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c3.large \ ... --metadata-options "InstanceMetadataTags=enabled"
AWS CLI を使用して実行中または停止中のインスタンス上のインスタンスメタデータ内のタグへのアクセスを許可するには

modify-instance-metadata-options コマンドを使用して、--instance-metadata-tagsenabled に設定します。

aws ec2 modify-instance-metadata-options \ --instance-id i-123456789example \ --instance-metadata-tags enabled

インスタンスメタデータのタグへのアクセスを無効にする

インスタンスメタデータ内のインスタンスタグへのアクセスを無効にするには、次のいずれかの方法を使用します。インスタンスメタデータのインスタンスタグへのアクセスは、デフォルトでオフになっているため、起動時にインスタンスタグへのアクセスをオフにする必要はありません。

コンソールを使用してインスタンスメタデータのタグへのアクセスを無効にするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択し、[Actions] (アクション)、[Instance settings] (インスタンス設定)、[Allow tags in instance metadata] (インスタンスメタデータ内のタグを許可する) の順に選択します。

  4. インスタンスメタデータ内のタグへのアクセスを無効にするには、[Allow] (許可) チェックボックスをオフにします。

  5. [Save] を選択します。

AWS CLI を使用してインスタンスメタデータのタグへのアクセスを無効にするには

modify-instance-metadata-options コマンドを使用して、--instance-metadata-tagsdisabled に設定します。

aws ec2 modify-instance-metadata-options \ --instance-id i-123456789example \ --instance-metadata-tags disabled

インスタンスメタデータでのタグへのアクセスが許可されるか確認する

インスタンスごとに、Amazon EC2 コンソールまたは AWS CLI を使用し、インスタンスメタデータからのインスタンスタグへのアクセスが許可されているかどうかを確認できます。

コンソールを使用してインスタンスメタデータのタグへのアクセスが許可されているかを確認するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで [Instances] を選択してから、インスタンスを選択します。

  3. [Detail] (詳細) タブで、[Allow tags in instance metadata] (インスタンスメタデータのタグを許可) フィールドをチェックします。値が [Enabled] (有効) の場合、インスタンスメタデータのタグを使用できます。値が [Disabled] (無効) の場合、インスタンスメタデータのタグを使用できません。

AWS CLI を使用してインスタンスメタデータのタグへのアクセスが許可されるか確認するには

describe-instances コマンドを使用して、インスタンス ID を指定します。

aws ec2 describe-instances \ --instance-ids i-1234567890abcdef0

次の例では、出力はスペースの都合上、表示されていません。"InstanceMetadataTags" パラメータは、インスタンスメタデータのタグを許可するかどうかを示します。値が enabled の場合、インスタンスメタデータのタグを使用できます。値が disabled の場合、インスタンスメタデータのタグを使用できません。

{ "Reservations": [ { "Groups": [], "Instances": [ { "AmiLaunchIndex": 0, "ImageId": "ami-0abcdef1234567890", "InstanceId": "i-1234567890abcdef0", ... "MetadataOptions": { "State": "applied", "HttpTokens": "optional", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled", "HttpProtocolIpv6": "disabled", "InstanceMetadataTags": "enabled" }, ...

インスタンスメタデータからタグを取得する

インスタンスメタデータでインスタンスタグが許可されている場合、tags/instance カテゴリはインスタンスのメタデータからアクセスできます。インスタンスメタデータからタグを取得する方法の例については、インスタンスのインスタンスタグを取得するを参照してください。

CloudFormation を使用したリソースへのタグの追加

Amazon EC2 リソースタイプでは、Tags または TagSpecifications プロパティを使用してタグを指定します。

次の例では、Stack=Production プロパティを使用して AWS::EC2::Instance にタグ Tags を追加します。

例: YAML のタグ
Tags: - Key: "Stack" Value: "Production"
例: JSON のタグ
"Tags": [ { "Key": "Stack", "Value": "Production" } ]

次の例では、Stack=Production プロパティを使用して AWS::EC2::LaunchTemplate LaunchTemplateData にタグ TagSpecifications を追加します。

例: YAML のタグ仕様
TagSpecifications: - ResourceType: "instance" Tags: - Key: "Stack" Value: "Production"
例: JSON のタグ仕様
"TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "Stack", "Value": "Production" } ] } ]