Fargate で Amazon ECS タスクの高いメモリ使用率をモニタリングする方法を教えてください。
最終更新日: 2020 年 11 月 12 日
AWS Fargate で実行されている Amazon Elastic コンテナサービス (Amazon ECS) タスクの高いメモリ使用率をモニタリングしたいと考えています。
解決方法
Fargate の Amazon ECS タスクで高いメモリ使用率をモニタリングするには、以下のオプションをお試しください。
Amazon CloudWatch メトリクスを表示
Amazon CloudWatch メトリクスは、Amazon ECS コンソールまたは CloudWatch コンソールのいずれかで表示できます。
注意: Fargate 起動タイプを使用する Amazon ECS サービスは、Amazon CloudWatch のメモリと CPU 使用率のメトリクスに対して自動的に有効になります。
Fargate タスクの CloudWatch Logs を有効にする
3. AWS Identity and Access Management (IAM) ロールの Amazon ECS タスク実行に、ログを Amazon CloudWatch Logs に送信するアクセス許可を与えます。
注意: ログを表示するには、タスクが [実行中] の状態になる必要があります。
Container Insights を使用してメモリ使用率をモニタリングする
CloudWatch Container Insights を使用して、Fargate タスクの各コンテナのメモリ使用率をモニタリングできます。
1. CloudWatch コンソールを開きます。
2. ナビゲーションウィンドウの [Container Insights] セクションで、[リソース] を選択します。
3. リソースの詳細情報を取得するには、リソースの名前を選択します。
注: タスクは、各クラスターのタスク定義によってグループ化されます。
4. 詳細情報が必要なタスク定義の名前を選択します。
5. [コンテナのパフォーマンス] セクションで、[アクション] を選択し、[パフォーマンスログを表示] を選択します。これにより、ECS クラスターの 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. [通知の送信先:] に、アラーム通知を送信する E メール ID を入力します。
11. [次へ] を選択します。
12. [名前と説明を追加] ページの [アラーム名] に、アラームの名前を入力します。
13. (オプション) [アラームの説明] に、アラームの説明を入力します。
14. [次へ] をクリックしてから、[アラームの作成] を選択します。
15. AWS から受信した確認メールに記載されている手順に従って、サブスクリプションを確認します。
注意: CloudWatch では、Container Insights のコストの管理に役立つすべてのメトリクスがログデータから自動的に作成されるわけではありません。CloudWatch Logs Insights を使って生のパフォーマンスログイベントを分析すると、メトリクスと粒度レベルの詳細を確認できます。