View a markdown version of this page

Amazon ECS アクションログの導入 - Amazon Elastic Container Service

Amazon ECS アクションログの導入

Amazon ECS アクションログは、Amazon CloudWatch Logs が提供するログ配信メカニズムを使用して、サービスアクションの詳細なレコードを任意の送信先に発行します。アクションログを有効にすると、インフラストラクチャのプロビジョニング、リソース登録、障害の詳細など、Amazon ECS がデプロイおよびデーモンオペレーション中に実行するすべての手順を確認できます。この可視性により、AWS サポートに連絡せずに問題をトラブルシューティングし、根本原因の特定にかかる時間を短縮できます。Amazon ECS コンソールまたは CloudWatch Logs APIs を使用して、クラスターのアクションログを有効にできます。

前提条件

アクションログを有効にする前に、IAM ID に必要なアクセス許可があることを確認してください。

必要な IAM 許可

アクションログを有効化および管理するには、IAM ID に次のアクセス許可が必要です。

{ "Effect": "Allow", "Action": [ "logs:PutDeliverySource", "logs:PutDeliveryDestination", "logs:CreateDelivery", "logs:GetDelivery", "ecs:AllowVendedLogDeliveryForResource" ], "Resource": "*" }

送信先リソースポリシー

送信先の CloudWatch Logs ロググループには、delivery.logs.amazonaws.com サービスがログを書き込むことを許可するリソースポリシーが必要です。ロググループリソースポリシーに次のステートメントを追加します。

{ "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" }

Amazon ECS コンソールを使用してアクションログを有効にする

アクションログは、Amazon ECS コンソールのクラスターの詳細ページから直接有効にできます。

コンソールを使用してアクションログを有効にするには
  1. コンソールをhttps://console.aws.amazon.com/ecs/v2で開きます。

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

  3. [設定] タブを選択します。

  4. [アクションログ] セクションで、[追加] を選択します。

  5. [Destination] で、以下のいずれかのオプションを選択します。

    • [CloudWatch Logs] (デフォルト)

    • Amazon S3

    • Amazon Data Firehose

    CloudWatch Logs の場合、Amazon ECS は 7 日間の保持期間を持つ /aws/vendedlogs/ecs/action-logs/cluster-name という名前のデフォルトのロググループを作成します。

  6. [保存] を選択します。

CloudWatch Logs API を使用してアクションログを有効にする

アクションログは、CloudWatch Logs が提供するログ配信 API を使用してプログラムで有効にできます。このアプローチには、配信ソースの登録、送信先の設定、配信の作成の 3 つの手順が必要です。

AWS CLI を使用してアクションログを有効にするには
  1. 次のコマンドを実行して、配信ソースを登録します。

    aws logs put-delivery-source \ --name my-ecs-action-logs \ --resource-arn arn:aws:ecs:region:account-id:cluster/cluster-name \ --log-type EcsActionLogs
  2. 次のコマンドを実行して、配信先を設定します。

    aws logs put-delivery-destination \ --name my-ecs-logs-destination \ --output-format json \ --delivery-destination-configuration '{"destinationResourceArn": "arn:aws:logs:region:account-id:log-group:/aws/vendedlogs/ecs/action-logs/cluster-name"}'
  3. 次のコマンドを実行して、送信元を送信先にリンクする配信を作成します。

    aws logs create-delivery \ --delivery-source-name my-ecs-action-logs \ --delivery-destination-arn arn:aws:logs:region:account-id:delivery-destination:my-ecs-logs-destination

ログ配信を確認する

アクションログを有効にしたら、ログが送信先に配信されていることを確認します。

ログ配信を確認するには
  1. クラスターでアクションをトリガーします。たとえば、デーモンサービスを作成または更新します。

  2. CloudWatch コンソールの https://console.aws.amazon.com/cloudwatch/ を開いてください。

  3. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  4. アクションログロググループを選択し、新しいログストリームが表示されることを確認します。

アクションログの削除

アクションログは、AWS CLI または Amazon ECS コンソールを使用して削除できます。

アクションログを削除するには、IAM ID に次の追加のアクセス許可が必要です。

{ "Effect": "Allow", "Action": [ "logs:DeleteDelivery", "logs:DeleteDeliverySource", "logs:DeleteDeliveryDestination" ], "Resource": "*" }
AWS CLI を使用してアクションログを削除するには
  1. 次のコマンドを実行して、配信を削除します。

    aws logs delete-delivery \ --delivery-id delivery-id
  2. 次のコマンドを実行して、配信ソースを削除します。

    aws logs delete-delivery-source \ --name my-ecs-action-logs
  3. 次のコマンドを実行して、配信先を削除します。

    aws logs delete-delivery-destination \ --name my-ecs-logs-destination

コンソールを使用してアクションログを削除するには、クラスターの詳細ページに移動し、[設定] タブを選択し、[アクションログ] セクションで [削除] を選択します。

次のステップ

アクションログを有効にしたら、次のリソースを使用して Amazon ECS クラスターをモニタリングおよびトラブルシューティングします。