スキップしてコンテンツを表示

Amazon ECS タスクのタグ付けに関する問題をトラブルシューティングする方法を教えてください。

所要時間3分
0

Amazon Elastic Container Service (Amazon ECS) でのタスクタグの問題をトラブルシューティングしたいです。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

タスクタグを Amazon ECS で設定する際に、次の問題が発生する可能性があります。

  • タグがサービスやタスク定義からタスクに伝播されない。
  • タグの ARN とリソース ID の形式が古くなっている。
  • AWS Identity and Access Management (IAM) アクセス許可またはタグ制限が欠けているため、Amazon ECS リソースを新規作成したり、タグをリソースに追加したりすることができない。
  • AWS Billing and Cost Management コンソールの [請求] ページに Amazon ECS タグが表示されない。

PropagateTags パラメータを使用してサービスまたはタスク定義からタスクに伝播する

PropagateTags パラメータは、デフォルトでは有効になっていません。タスク定義またはサービスからタスクにタグをコピーするには、PropagateTags を有効にします。タグは、タスクの実行、サービスの作成、サービスの更新の際にコピーできます。

注: 次のコマンドで、実際のものでそれぞれ servicename をサービス名に、clustername をクラスター名に、region AWS リージョンに置き換えます。さらに、taskdefinitionname を実際のタスク定義名に、taskdefinitionversion をタスク定義のバージョンに置き換えます。

特定のサービスで PropagateTags が有効になっているかどうかを確認するには、次の describe-services コマンドを実行します。

aws ecs describe-services --services servicename --cluster clustername --region region --query 'services[*].propagateTags' --output text

新しいスタンドアロンタスクでタグの伝播を有効にするには、次の run-task コマンドを実行します。

aws ecs run-task --cluster clustername --task-definition taskdefinitionname:taskdefinitionversion --launch-type FARGATE/EC2 --propagate-tags TASK_DEFINITION/SERVICE

新しいサービスでタグの伝播を有効にするには、次の create-service コマンドを実行します。

aws ecs create-service --cluster clustername --service-name servicename --task-definition taskdefinitionname:taskdefinitionversion --desired-count 2 --launch-type FARGATE --platform-version LATEST --network-configuration "awsvpcConfiguration={subnets=[subnet-abcdef123],securityGroups=[sg-pqrst5678]}" --propagateTags TASK_DEFINITION/SERVICE

既存のサービスでタグの伝播を有効にするには、次の update-service コマンドを実行します。

aws ecs update-service --cluster clustername --service servicename --propagate-tags SERVICE/TASK_DEFINITION --force-new-deployment

Amazon ECS コンソールを使用してタグの伝播を有効にすることもできます。

次の手順を実行します。

  1. Amazon ECS コンソールを開きます。
  2. Amazon ECS リソースのリージョンを選択します。
  3. ナビゲーションペインで [タスク定義] を選択します。
  4. タスク定義をリソースリストから選択し、[アクション] を選択します。
  5. [サービスの作成] または [タスクの実行] を選択します。
  6. [タスクのタグ付け設定][サービス] または [タスク定義] を選択します。
    注: デフォルトのオプションは、[伝播しない] です。

AWS CloudFormation を使用して Amazon ECS のタグを構成するには、AWS::ECS::Service リソースを宣言する必要があります。AWS::ECS::Service を宣言するには、EnableECSManagedTags プロパティと PropagateTags プロパティに SERVICE 値または TASK_DEFINITION 値を使用します。

注:

正しい ARN 形式を使用する

Amazon ECS リソースにタグ付けするには、新しい ARN と ID 形式を使用する必要があります。Amazon ECS デプロイを新しい形式に移行するには、「Amazon ECS デプロイを新しい ARN とリソース ID 形式に移行する」を参照してください。

注: 既存のリソースは、リソースを再作成した後にのみ新しい ARN 形式を受け付けます。

必要なアクセス許可が IAM エンティティにあることおよび、タグの制限を確認する

すべての AWS アカウントはタグ付け認証を使用します。Amazon ECS リソースの作成時にタグを付けるには、IAM プリンシパルに ecs:TagResource アクセス許可が必要です。次の Amazon ECS API にもこのアクセス許可が必要です。

  • CreateCapacityProvider
  • CreateCluster
  • CreateService
  • CreateTaskSet
  • RegisterContainerInstance
  • RegisterTaskDefinition
  • RunTask
  • StartTask

Amazon ECS サービスにタグを追加したり、リソースを作成したりできない場合は、次の手順を実行してこの問題をトラブルシューティングします。

  1. AWS CloudTrail イベントTagResourceイベントを確認します。
  2. イベントをレビューし、次のいずれかのエラーメッセージがないか確認します。
    AccessDenied
    または、
    現在タグを更新できません。数分待ってから再試行してください
    上記のいずれかのエラーが発生した場合、IAM エンティティに ecs:TagResource アクセス許可が欠けています。
  3. IAM コンソールまたは AWS CLI を使用し、ecs:TagResource アクセス許可を IAM エンティティに追加します。
  4. リソースを再作成するか、Amazon ECS クラスターにタグを再度追加します。
  5. Amazon ECS タグがタグの制限に準拠していることを確認します。

Billing and Cost Management で問題が発生しているかどうかを確認する

Amazon ECS タスクをタグで絞り込んでもコストを確認できない場合は、必要なタグが Amazon ECS タスクにあることを確認してください。次の list-tags-for-resource コマンドを実行します。

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

注: value は、タスクの ARN に置き換えます。

Amazon ECS コンソールを使用して Amazon ECS タスクのタグを確認するには、次の手順を実行します。

  1. Amazon ECS コンソールを開きます。
  2. ECS リソースのリージョンを選択します。
  3. ナビゲーションペインで、リソースタイプを選択します ([クラスター] など)。
  4. リソースを選択し、[タグ] を選択すると、そのリソースに存在するすべてのタグが表示されます。

マネージドタグを確認するには、Amazon ECS マネージドタグを有効にする必要があります。Amazon ECS マネージドタグが有効になっているかどうかを確認するには、次の describe-services コマンドを実行します。

aws ecs describe-services --services servicename --cluster clustername --region region --query 'services[*].enableECSManagedTags' --output text

注: 実際のものでそれぞれ servicename をサービス名に、clustername をクラスター名に、region をリージョンに置き換えます。

コマンドの出力で、enableECSManagedTagstrue に設定されているかどうかを確認します。

コンソールを使用して Amazon ECS マネージドタグを有効にするには、次の手順を実行します。

  1. Amazon ECS コンソールを開きます。
  2. ECS リソースのリージョンを選択します。
  3. ナビゲーションペインで [タスク定義] を選択します。
  4. タスク定義をリソースリストから選択し、[アクション] を選択します。
  5. [サービスの作成] または [タスクの実行] を選択します。
  6. [タスクのタグ付け設定][ECS マネージドタグを有効にする] を選択します。

AWS CLI を使用して Amazon ECS マネージドタグを有効にするには、update-service コマンドを実行します。

aws ecs update-service --cluster clustername --service servicename --enable-ecs-managed-tags --force-new-deployment

注: お使いのものでそれぞれ、clustername をクラスター名に、servicename をサービス名に置き換えます。

AWS Cost Explorer では表示されていないタグであっても、請求用に使用するタグがリストに含まれる場合があります。この問題を解決するには、Billing and Cost Management コンソールでコスト配分タグをアクティブ化します。

注: タグがアクティブ化するまで最大 24 時間かかることがあります。

関連情報

Amazon ECS トラブルシューティング

Amazon ECS リソースのタグ付け

作成時にリソースにタグを付けるアクセス許可を付与する

AWS公式更新しました 10ヶ月前
コメントはありません

関連するコンテンツ