Amazon ECS リソースのタグ付け - Amazon ECS

Amazon ECS リソースのタグ付け

Amazon ECS リソースを管理しやすくするために、タグを使用してオプションで各リソースに独自のメタデータを割り当てることができます。このトピックでは、Amazon ECS のタグの概要と、タグの作成方法について説明します。

重要

この機能を使用するには、新形式の Amazon リソースネーム (ARN) とリソース識別子 (ID) をオプトインする必要があります。詳細については、「Amazon リソースネーム (ARN) と ID」を参照してください。

タグの基本

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

タグを使用すると、AWS リソースを用途、所有者、環境などのさまざまな方法で分類できます。これは、同じ種類のリソースが多い場合に役立ちます。リソースに割り当てたタグに基づいて、特定のリソースをすばやく識別できます。たとえば、各インスタンスの所有者とスタックレベルを追跡しやすくするため、アカウントの Amazon ECS コンテナインスタンスに対して一連のタグを定義できます。

ニーズを満たす一連のタグキーをリソースタイプごとに考案されることをお勧めします。一貫性のあるタグキーセットを使用することで、リソースの管理が容易になります。追加したタグに基づいてリソースを検索およびフィルタリングできます。

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

AWS マネジメントコンソール、AWS CLI、および Amazon ECS API を使用してタグを操作できます。

AWS Identity and Access Management (IAM) を使用すると、AWS アカウント内のどのユーザーがタグを管理するアクセス許可を持っているかを制御できます。

リソースのタグ付け

Amazon ECS の新規または既存のタスク、サービス、タスク定義、およびクラスターにタグ付けできます。

Amazon ECS コンソールを使用している場合、関連するリソースページの [Tags (タグ)] タブを使用して新規または既存のリソースにいつでもタグを適用できます。[Propagate tags from (タグの伝播元)] オプションを使用して、タスク定義またはサービスからタスクにタグをコピーできます。これは、タスクを実行中またはサービスを作成しているときに実行できます。

Amazon ECS API、AWS CLI、または AWS SDK を使用している場合は、関連する API アクションの tags パラメータを使用して、新しいリソースにタグを適用できます。または、TagResource API アクションを使用して既存のリソースにタグを適用することもできます。詳細については、「TagResource」を参照してください。PropagateTags パラメータを使用して、タスク定義またはサービスからタスクにタグをコピーできます。これは、タスクを実行中またはサービスを作成しているときに実行できます。詳細については、「RunTask」および「CreateService」を参照してください。

さらに、リソース作成アクションによっては、リソースの作成時にリソースのタグを指定できます。リソースの作成中にタグを適用できない場合は、リソースの作成プロセスをロールバックします。これにより、リソースがタグ付きで作成されるか、まったく作成されないようになるため、タグ付けされていないリソースが存在することがなくなります。作成時にリソースにタグ付けすることで、リソース作成後にカスタムタグ付けスクリプトを実行する必要がなくなります。

次の表では、タグ付け可能な Amazon ECS リソースと、作成時にタグ付け可能なリソースについて説明します。

Amazon ECS リソースのタグ付けのサポート

リソース

タグをサポート

タグの伝播をサポート

作成時のタグ付けをサポート (Amazon ECS API、AWS CLI、AWS SDK)

Amazon ECS タスク

はい

はい、タスク定義からサポートします。

はい

Amazon ECS サービス

はい

はい、タスク定義またはサービス内のタスクへのサービスのいずれかからサポートします。

はい

Amazon ECS タスクセット

はい

いいえ

はい

Amazon ECS タスク定義

はい

いいえ

はい

Amazon ECS クラスター

はい

いいえ

はい

タグの制限

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

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

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

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

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

  • 複数のサービス間およびリソース間でタグ付けスキーマを使用する場合、他のサービスでも許可される文字に制限が適用されることがあるのでご注意ください。一般的に使用が許可される文字は、UTF-8 で表現できる文字、数字、スペース、および +、-、=、.、_、:、/、@。

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

  • aws:AWS:、またはその大文字または小文字の組み合わせを、キーまたは値のプレフィックスとして使用しないでください。これらは AWS 使用のためにのみ予約されています。このプレフィックスが含まれるタグのキーや値を編集したり削除することはできません。このプレフィックスを持つタグは、リソースあたりのタグ数の制限時には計算されません。

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

Amazon ECS マネージドタグを有効にすると、Amazon ECS により、クラスター名を使用して新しく起動されたすべてのタスクが自動的にタグ付けされます。サービスに属するタスクにも、サービス名を使用してタグ付けされます。これらのマネージドタグは、コスト配分を有効にした後にコストと使用状況レポートでコスト配分を確認するときに便利です。詳細については、「Amazon ECS の使用状況レポート」を参照してください。

リソースを組み合わせたコストを確認するには、同じタグキー値を持つリソースに基づいて、請求情報を整理します。たとえば、複数のリソースに特定のアプリケーション名のタグを付け、請求情報を整理することで、複数のサービスを利用しているアプリケーションの合計コストを確認することができます。タグによるコスト配分レポートの設定の詳細については、AWS Billing and Cost Management ユーザーガイド の「毎月のコスト配分レポート」を参照してください。

重要

この機能を使用するには、新形式の Amazon リソースネーム (ARN) とリソース識別子 (ID) をオプトインする必要があります。詳細については、「Amazon リソースネーム (ARN) と ID」を参照してください。

注記

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

コンソールでのタグの処理

Amazon ECS コンソールを使用して、新規または既存のタスク、サービス、タスク定義、クラスター、またはコンテナインスタンスに関連付けられているタグを管理できます。

Amazon ECS コンソールでリソース固有のページを選択すると、リソースリストが表示されます。たとえば、ナビゲーションペインで [Clusters (クラスター)] を選択すると、Amazon ECS クラスターのリストがコンソールに表示されます。そのリスト (特定のクラスターなど)からリソースを 1 つ選択すると、そのリソースでタグがサポートされている場合は、[Tags (タグ)] タブでタグを表示および管理できます。

個々のリソースでの起動時のタグの追加

以下のリソースでは、リソースの作成時にタグを指定できます。

タスク

コンソール

1 つまたは複数のタスクを実行する

タスクの実行

サービスを作成する

サービスの作成

タスクセットを作成します。

外部デプロイ

タスク定義を登録する

タスク定義の作成

クラスターを作成する

クラスターの作成

個々のリソースでのタグの追加と削除

Amazon ECS では、クラスター、サービス、タスク定義に関連付けられているタグを、そのリソースのページから直接追加または削除できます。

個々のリソースにタグを追加するには

  1. Amazon ECS コンソール (https://console.aws.amazon.com/ecs) を開きます。

  2. ナビゲーションバーから、使用するリージョンを選択します。

  3. ナビゲーションペインでリソースタイプ (例: [Clusters (クラスター)]) を選択します。

  4. リソースリストからリソースを選択して [Tags (タグ)]、[Edit (編集)] の順に選択します。

  5. [Edit Tags (タグの編集)] ダイアログボックスで、各タグのキーと値を指定してから [Save (保存)] を選択します。

個々のリソースからタグを削除するには

  1. Amazon ECS コンソール (https://console.aws.amazon.com/ecs) を開きます。

  2. ナビゲーションバーから、使用するリージョンを選択します。

  3. ナビゲーションペインでリソースタイプ (例: [Clusters (クラスター)]) を選択します。

  4. リソースリストからリソースを選択して [Tags (タグ)]、[Edit (編集)] の順に選択します。

  5. [Edit Tags (タグの編集)] ページで、削除する各タグの [Delete (削除)] アイコンを選択してから [Save (保存)] を選択します。

CLI または API でのタグの操作

リソースのタグの追加、更新、リスト表示、および削除には、次を使用します。対応するドキュメントに例が記載されています。

Amazon ECS リソースのタグ付けのサポート

タスク

AWS CLI

API アクション

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

tag-resource

TagResource

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

untag-resource

UntagResource

以下の例では、AWS CLI を使用して、リソースに対してタグ付けまたはタグ削除する方法を示しています。

例 1: 既存のクラスターへのタグ付け

次のコマンドは既存のクラスターにタグ付けします。

aws ecs tag-resource --resource-arn resource_ARN --tags key=stack,value=dev

例 2: 既存のクラスターでのタグ削除

次のコマンドは既存のクラスターからタグを削除します。

aws ecs untag-resource --resource-arn resource_ARN --tag-keys tag_key

例 3: リソースのタグのリスト取得

次のコマンドは、既存のリソースに関連付けられているタグのリストを取得します。

aws ecs list-tags-for-resource --resource-arn resource_ARN

一部のリソース作成アクションでは、リソースの作成時にタグを指定できます。以下のアクションでは、作成時のタグ付けがサポートされます。

タスク

AWS CLI

AWS Tools for Windows PowerShell

API アクション

1 つまたは複数のタスクを実行する

run-task

Start-ECSTask

RunTask

サービスを作成する

create-service

New-ECSService

CreateService

タスクセットを作成します。

create-task-set

New-ECSTaskSet

CreateTaskSet

タスク定義を登録する

register-task-definition

Register-ECSTaskDefinition

RegisterTaskDefinition

クラスターを作成する

create-cluster

New-ECSCluster

CreateCluster

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

例 1: クラスターを作成してタグを適用する

次のコマンドは、devcluster という名前のクラスターを作成し、キーが team で値が devs のタグを追加します。

aws ecs create-cluster --cluster-name devcluster --tags key=team,value=devs

例 2: サービスを作成してタグを適用する

次のコマンドは、application という名前のサービスを作成し、キーが stack で値が dev のタグを追加します。

aws ecs create-service --service-name application --task-definition task-def-app --tags key=stack,value=dev

例 3: タグを含むサービスを作成し、タグを伝播する

--propagateTags パラメータを使用すると、タスク定義またはサービスからサービス内のタスクにタグをコピーできます。次のコマンドは、タグ付きのサービスを作成し、そのタグをそのサービス内のタスクに伝達します。

aws ecs create-service --service-name application --task-definition task-def-app --tags key=stack,value=dev --propagateTags Service