AWS

オブザーバビリティが強化されたContainer Insights on ECSを試してみた

hosso

こんにちは、DWSに入社して早くも1年が経ちました、ほっそーです。
今回は、AWS re:Invent 2024で発表された 「オブザーバビリティが強化されたContainer Insights on ECS」 を試してみました。本記事では、設定手順と実際に使ってみた所感をまとめています。

オブザーバビリティが強化されたContainer Insight とは?

今回のアップデートにより、ECSのメトリクスが クラスター・サービスレベルだけでなく、タスク・コンテナレベルまで詳細に可視化 できるようになりました。

CloudWatch Container Insightsのダッシュボードで、CPUやメモリ使用率などのメトリクスを一元管理 できるだけでなく、ECS環境の状態を直感的に把握できる ビジュアライゼーション機能 も提供されています。

ちなみに、EKS向けには 2023年に同様の機能が提供 されており、今回のアップデートでECSにも追加された形です。

公式ブログ:
Container Insights with Enhanced Observability now available in Amazon ECS

実際に試してみる

ECS Faragteのサンプルアプリケーションを構築する

AWSが提供する以下のリポジトリを活用してみます。
CloudFormationを利用して、シンプルなREST APIのアプリケーションをデプロイします。

GitHub: sample-application-ecs-and-efs

強化されたContainer Insightを有効化する

クラスター単位で有効化
  1. Amazon ECSコンソールクラスター対象のクラスターを選択
  2. クラスター設定を更新Container InsightsをON にする
  3. 更新 or クラスター作成 で適用完了

新規・既存どちらのクラスターにも適用可能

アカウント単位で有効化
  1. Amazon ECSコンソールアカウント設定
  2. Container InsightsをON にして適用
AWS CLIで設定
aws ecs update-cluster-settings \
  --cluster ${CLUSTER_NAME} \
  --settings '[{"name": "containerInsights","value": "enhanced"}]'
CloudFormationで設定
ClusterSettings:
  - Name: containerInsights
    Value: enhanced

適用後、ECSクラスターの設定画面で 「オブザーバビリティが強化されたContainer Insights」 の表示を確認できます。

Container Insightsのダッシュボードを確認

CloudWatch Logs → Container Insights にアクセスすると、ECSクラスターの詳細情報を確認できます。さらに、クラスター・サービス・タスク・コンテナごとに切り替えながらメトリクスを表示 できます。

クラスター単位のメトリクス

クラスター全体のCPU・メモリ使用率やタスクの稼働状況を確認可能。

サービス単位のメトリクス

ECSサービスごとのリソース使用率やスケーリングの状態を可視化。

タスク単位のメトリクス

個々のタスクごとのCPU・メモリ・ネットワーク使用状況を詳細に把握。

コンテナ単位のメトリクス

各コンテナのリソース消費状況や異常を細かく監視可能。

フィルター機能を活用

ダッシュボードの左側にある フィルター機能 を使うと、特定のクラスター・サービス・タスク・コンテナに絞り込んでメトリクスを表示 できます。
ピンポイントで調査したい場合に便利ですね。

他のAWSサービスとの連携

CloudWatch Logs InsightsやX-Rayとシームレスに連携可能。
以下の情報へ ワンクリックでアクセス できます。

アプリの挙動や異常を素早く分析できるのが便利ですね。今回、X-Rayは構築していませんが、試してみたいです。

どんなシーンで役立つのか?

ECS運用の経験から、どういったシーンで活用できそうか考えみました。

1. 問題が発生したときの原因を素早く特定したいとき

ECSのパフォーマンス低下やデプロイ後の不具合が発生しても、どのタスクやコンテナが原因なのか特定しにくい ことがあります。従来はログやイベントを手動で追いかける必要がありました。Container Insightsを活用すれば、
タスク・コンテナごとのCPUやメモリ使用率をリアルタイムで可視化
異常のあるリソースを素早くフィルタリングし、問題を特定
できるため、トラブルシューティングの時間短縮が可能になります。

2. リソース不足を未然に防ぎたいとき

クラスター・サービスレベルの監視だけでは、タスク・コンテナ単位での細かいリソース使用傾向 が分かりませんでした。Container Insightsを活用すれば、
タスク・コンテナごとのCPU・メモリ使用率を長期的に分析
リソース不足の兆候を事前に察知し、適切なスケーリングを実施
できるため、予防的な運用が可能になります。

3. ECSサービス間の影響を素早く確認したいとき

マイクロサービス環境では、1つのサービスの異常が他のタスク・コンテナに影響を与える ことがあります。Container Insightsを活用すれば、
影響範囲をサービス・タスク・コンテナ単位で細かく特定
CloudWatch Logs InsightsやX-Rayと連携し、問題の根本原因を素早く分析
できるため、トラブルシューティングの効率が向上します。

まとめ: ECS運用の効率化が期待できる!

今回試した 「オブザーバビリティが強化されたContainer Insights」 は、ECS監視の課題改善につながる機能でした。

特に良かったポイント

タスク・コンテナ単位での詳細なメトリクス表示
直感的なダッシュボード & フィルター機能で素早く分析
CloudWatch Logs Insights・X-Rayとの連携でトラブルシューティングがスムーズ

「原因の特定が難しい」「詳細なリソース使用状況が見えない」 という悩みに期待できそうです!
ECSの監視・運用に課題を感じている方は、ぜひ試してみる価値があると思いました!

AUTHOR
hosso
hosso
記事URLをコピーしました