

# Amazon ECS リソースにタグ付けする
<a name="ecs-using-tags"></a>

Amazon ECS リソースを管理しやすくするために、*タグ*を使用してオプションで各リソースに独自のメタデータを割り当てることができます。各*タグ*は、*キー*および*値* (オプション) で構成されます。

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

コストと使用状況レポートでタグを使用できます。これらのレポートを使用して、Amazon ECS リソースのコストと使用状況を分析できます。詳細については、「[Amazon ECS 使用状況レポート](usage-reports.md)」を参照してください。

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

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

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

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

## リソースのタグ付け方法
<a name="tag-resources"></a>

Amazon ECS タスク、サービス、タスク定義、およびクラスターへのタグ付けには、次のような複数の方法が存在します。
+ AWS マネジメントコンソール、Amazon ECS API、AWS、または AWS CLI SDK を使用して、ユーザーが手動でリソースにタグ付けする。
+ ユーザーが Amazon ECS マネージドタグのオプションを選択して、サービスを作成する、あるいはスタンドアロンのタスクを実行する。

  新しく起動されたすべてのタスクに対し、Amazon ECS が自動的なタグ付けを行う。詳細については、「[Amazon ECS マネージドのタグ](#managed-tags)」を参照してください。
+ ユーザーがコンソールを使用してリソースを作成する。そのリソースに対し、コンソールが自動的にタグ付けを行います。

  これらのタグは、AWS CLI、および AWS SDK のレスポンスとして返され、コンソールに表示されます。これらのタグを、ユーザーが変更または削除することはできません。

  追加されたタグの詳細については、「**Amazon ECS リソースのタグ付けのサポート**」表内で、「**コンソールによって自動的に追加されるタグ**」列を参照してください。

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

以下の表に、タグ付けをサポートしている Amazon ECS リソースを示します。


|  リソース  |  タグをサポート  |  タグの伝播をサポート  | コンソールによって自動的に追加されたタグ | 
| --- | --- | --- | --- | 
| Amazon ECS タスク | はい | はい、タスク定義からサポートします。 | [Key] (キー): aws:ecs:clusterName*値*: `cluster-name` | 
| Amazon ECS サービス | はい | はい、タスク定義またはサービス内のタスクへのサービスのいずれかからサポートします。 | [Key] (キー): ecs:service:stackId値 `arn:aws:cloudformation:{{arn}}` | 
| Amazon ECSの タスクセット | はい | なし | 該当なし | 
| Amazon ECS のタスク定義 | はい | なし | [Key] (キー): ecs:taskDefinition:createdFrom*値*: `ecs-console-v2` | 
| Amazon ECS クラスター | はい | なし | [Key] (キー): aws:cloudformation:logical-id*値*: `ECSCluster` [Key] (キー): aws:cloudformation:stack-id<br />*値*: `arn:aws:cloudformation:{{arn}}`<br />[*Key*] (キー): `aws:cloudformation:stack-name`<br />*値*: `ECS-Console-V2-Cluster-{{EXAMPLE}}` | 
| Amazon ECS コンテナインスタンス | はい | はい、Amazon EC2 インスタンスからサポートします。詳細については、「[Amazon ECS の Amazon EC2 コンテナインスタンスにタグを追加する](instance-details-tags.md)」を参照してください。 | 該当なし | 
| Amazon ECS 外部インスタンス | はい | なし | 該当なし | 
| Amazon ECS キャパシティープロバイダー |  はい。事前定義された `FARGATE` および `FARGATE_SPOT` キャパシティープロバイダーに対し、タグ付けすることはできません。 | はい。Amazon ECS マネージドインスタンスのキャパシティプロバイダーからのみ可能です。Amazon ECS マネージドインスタンスのキャパシティプロバイダーから、Amazon EC2 インスタンス、起動テンプレート、Elastic Network Interface、ボリュームなど、プロバイダーが管理するすべてのリソースにタグを伝播できます。 | 該当なし | 

## 作成時のリソースのタグ付け
<a name="tags-on-creation"></a>

次のリソースは、Amazon ECS API、AWS CLI、または AWS SDK を使用した作成時のタグ付けをサポートしています。
+ Amazon ECS タスク
+ Amazon ECS サービス
+ Amazon ECS タスク定義
+ Amazon ECSの タスクセット
+ Amazon ECS クラスター
+ Amazon ECS コンテナインスタンス
+ Amazon ECS キャパシティープロバイダー

Amazon ECS には、リソースの作成にタグ付け認可を使用するオプションがあります。AWS アカウント がタグの承認用に設定されている場合、ユーザーには、リソースを作成するアクションの許可が必要です (`ecsCreateCluster` など)。リソース作成アクションでタグが指定されている場合、AWS は追加の認可を実行して、ユーザーまたはロールがタグを作成するための許可を持っているかどうかを確認します。したがって、`ecs:TagResource` アクションを使用するための明示的な許可を付与する必要があります。詳細については、「[リソース作成時にタグ付けするための許可を付与する](supported-iam-actions-tagging.md)」を参照してください。オプションを設定する方法については、「[タグ付け認可](ecs-account-settings.md#tag-resources-setting)」を参照してください。

## 制限事項
<a name="tag-restrictions"></a>

タグには以下の制限があります。
+ 1 つのリソースに対して最大 50 個のタグを関連付けることができます。
+ 1 つのリソースに対してタグキーを繰り返すことはできません。各タグキーは一意である必要があり、それぞれに使用できる値は 1 つのみです。
+ キーの値には最大 128 UTF-8 文字を使用できます。
+ 値の最大長は 256 UTF-8 文字です。
+ 複数の AWS のサービスおよびリソースがタグ付けスキーマを使用する場合、使用する文字の種類を制限します。一部のサービスでは、使用できる文字に制限がある場合があります。通常、使用できる文字は、英字、数字、スペース、および特殊文字 `+`、`-`、`=`、`.`、`_`、`:`、`/`、`@` です。
+ タグのキーと値では、大文字と小文字が区別されます。
+ キーまたは値のプレフィックスとして、`aws:`、`AWS:`、またはこれら大文字または小文字の任意の組み合わせを使用することはできません。これらは AWS でのみ使用するように予約されています。このプレフィックスを持つタグのキーや値を編集または削除することはできません。このプレフィックスを持つタグは、リソースあたりのタグ数の制限にはカウントされません。

## Amazon ECS マネージドのタグ
<a name="managed-tags"></a>

Amazon ECS マネージド タグを使用すると、Amazon ECS は、クラスター情報とユーザーが追加したタスク定義タグまたはサービスタグのいずれかを使用して、新しく起動されたすべてのタスクとタスクにアタッチされた Amazon EBS ボリュームに自動的にタグ付けします。以下は、追加されたタグについて説明しています。
+ スタンドアロンタスク – *キー*には `aws:ecs:clusterName` を、*値*にはクラスター名を設定したタグ。ユーザーによって追加されたすべてのタスク定義タグです。スタンドアロンタスクにアタッチされた Amazon EBS ボリュームは、*キー*を `aws:ecs:clusterName` として、*値*がクラスター名に設定されたタグを受け取ります。Amazon EBS ボリュームのタグ付けの詳細については、「[Amazon EBS ボリュームのタグ付け](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specify-ebs-config.html#ebs-volume-tagging)」を参照してください。
+ サービスの一部であるタスク – *キー*を `aws:ecs:clusterName` として、*値*をクラスター名として設定したタグ。*キー*に `aws:ecs:serviceName` を、*値*にサービス名を設定したタグです。以下のリソースのいずれかからのタグです。
  + タスク定義 – ユーザーによって追加されたすべてのタスク定義タグ。
  + サービス – ユーザーによって追加されたすべてのサービスタグ。

    サービスの一部であるタスクにアタッチされた Amazon EBS ボリュームは、*キー*を `aws:ecs:clusterName` として、*値*をクラスター名に設定されたタグと、*キー*を `aws:ecs:serviceName` として*値*をサービス名に設定されたタグを受け取ります。Amazon EBS ボリュームのタグ付けの詳細については、「[Amazon EBS ボリュームのタグ付け](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specify-ebs-config.html#ebs-volume-tagging)」を参照してください。

この機能には、以下のオプションが必要です。
+ 新しい Amazon リソースネーム (ARN) とリソース識別子 (ID) 形式にオプトインする必要があります。詳細については、「[Amazon リソースネーム (ARN) と ID](ecs-account-settings.md#ecs-resource-ids)」を参照してください。
+ API を使用してサービスを作成したり、タスクを実行したりするときは、`run-task` と `create-service` の `enableECSManagedTags` を `true` に設定する必要があります。詳細については、「*AWS Command Line Interface API リファレンス*」の「[create–service](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html)」および「[run–task](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html)」を参照してください。
+ Amazon ECS はマネージドタグを使用して、クラスターの Auto Scaling などの一部の機能をいつ有効にするかを判断します。Amazon ECS が機能を効果的に管理できるように、タグを手動で変更しないことをお勧めします。

## 請求にタグを使用する
<a name="tag-resources-for-billing"></a>

AWS は、Amazon ECS リソースのコストおよび使用量を分析するために使用できる、Cost Explorer と呼ばれるレポートツールを提供します。

Cost Explorer を使用して、使用状況とコストのグラフを表示できます。過去 13 か月からデータを表示でき、また次の 3 か月間にどのくらい使用する可能性があるかを予測します。Cost Explorer を使用すると、時間の経過とともに AWS リソースに費やす金額のパターンを確認できます。例えば、Cost Explorer を使用して、さらに調べる必要がある分野を特定し、コストを把握するために使用できる傾向を確認できます。データの時間範囲を指定したり、時間データを日または月ごとに表示することもできます。

コストと使用状況レポートには、Amazon ECS マネージドのタグ、またはユーザーにより追加されたタグを使用できます。詳細については、「[Amazon ECS 使用状況レポート](usage-reports.md)」を参照してください。

リソースを組み合わせたコストを確認するには同じタグキー値を持つリソースに基づいて、請求情報を整理します。例えば、複数のリソースに特定のアプリケーション名のタグを付け、請求情報を整理することで、複数のサービスを利用しているアプリケーションの合計コストを確認することができます。タグによるコスト配分レポートの設定の詳細については、*AWS Billing ユーザーガイド*の[コスト配分月次レポート](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/configurecostallocreport.html)を参照してください。

さらに、*[コスト配分データの分割]* をオンにして、コストと使用状況レポートでタスクレベルの CPU とメモリの使用状況データを取得できます。詳細については、「[タスクレベルのコストと使用状況レポート](usage-reports.md#task-cur)」を参照してください。

**注記**  
レポートをオンにしている場合、当月のデータを表示できるようになるまでに最大 24 時間かかることがあります。