Fargate で Amazon ECS タスクのメモリ使用率が高くなるのを監視する方法を教えてください。

所要時間2分
0

AWS Fargate で実行している、Amazon Elastic Container Service (Amazon ECS) タスクのメモリ使用率が高くなるのを監視したいです。

解決方法

Fargate の Amazon ECS タスクの高メモリ使用率を監視するには、以下の方法をとります。

Amazon CloudWatch メトリクスを使用する

Amazon ECS コンソールまたは CloudWatch コンソールのいずれかで CloudWatch メトリクスを確認できます。

注: Fargate 起動タイプを使用する Amazon ECS サービスでは、CloudWatch のメモリと CPU 使用率のメトリクスが自動的に有効になります。

Fargate タスクで CloudWatch Logs を有効にする

次の手順を実行します。

  1. awslogs ログドライバーを有効にします。
  2. 必要なログ設定パラメータをタスク定義に追加します
  3. タスクの AWS Identity and Access Management (IAM) ロールに CloudWatch Logs にログを送信するためのアクセス許可を付与します。
  4. CloudWatch コンソールでログを確認します

注: ログを表示するには、タスクが Running 状態になっている必要があります。

Container Insights を使用してメモリ使用率を監視する

Fargate タスクの各コンテナのメモリ使用率を監視するには、CloudWatch Container Insights を使用します。

次の手順を実行します。

  1. CloudWatch コンソールを開きます。
  2. ナビゲーションペインの Container Insights で、[リソース] を選択します。
  3. リソースの詳細情報を表示するには、リソースの名前を選択します。
    注: タスクは、各クラスターのタスク定義によってグループ化されます。
  4. タスク定義の詳細情報を表示するには、タスク定義の名前を選択します。
  5. [コンテナのパフォーマンス] セクションで [アクション] を選択し、[パフォーマンスログを表示] を選択すると、CloudWatch Logs Insights が開きます。
  6. [クエリ] に、次のクエリを入力し、[クエリの実行] を選択します。
    stats avg(MemoryUtilized) by bin (30m) as period, TaskDefinitionFamily, TaskDefinitionRevision                | filter Type = "Task" | sort period desc, TaskDefinitionFamily |  limit 10

Container Insights を使用して、メモリ使用率が高い場合にアラームが起動するよう設定する

次の手順を実行します。

  1. CloudWatch コンソールを開きます。
  2. ナビゲーションペインの [Container Insights] で、[パフォーマンス監視] を選択します。
  3. メニューで、[ECS タスク] または [ECS サービス] を選択します。
  4. [メモリ使用率] カードでカードを展開し、[メトリクスで表示] を選択します。
  5. [グラフ化されたメトリクス] タブを選択し、タスクの**[アクション]** 列でベルのアイコンを選択します。
  6. [メトリクスと条件の指定] ページで、値を選択するか、デフォルト値をそのまま使用します。
  7. [条件] セクションの [しきい値の定義]70 と入力すると、アラームのメモリ使用率しきい値が 70% に設定されます。
  8. [次へ] を選択します。
  9. [アクションの設定] ページの [SNS トピックを選択] セクションで、[新しいトピックを作成] を選択します。
  10. [通知の送信先] に、アラーム通知の送信先となる電子メール ID を入力します。
  11. [次へ] を選択します。
  12. [名前と説明を追加] ページの [アラーム名] に、アラームの名前を入力します。
  13. (オプション) [アラームの説明] に、アラームの説明を入力します。
  14. [次へ] を選択し、[アラームの作成] を選択します。
  15. サブスクリプションを確認するには、確認メールの指示に従ってください。
    注: CloudWatch は、ログデータから考えられるすべてのメトリクスを自動的に作成するわけではありません。その他のメトリクスや詳細を表示するには、CloudWatch Logs Insights を使用してログデータを分析します。

関連情報

AWS Fargate for Amazon ECS

Amazon CloudWatch Container Insights for Amazon ECS を導入する

Amazon ECS が CPU とメモリリソースを管理するしくみ

AWS公式
AWS公式更新しました 10ヶ月前