見出し画像

AWS:【QA】2023年2月追記~ECS-fargateのエフェメラルストレージのモニタリングについて

みなさん、こんにちは。ちゃみみです。

今回もPJで疑問に思った点をサポートに問い合わせさせて頂いて確認した結果を残しておこうと思います。
本日は、ECS-fargateのエフェメラルストレージ(デフォルトで付与されているストレージ)の監視についてどうやればよいのか?ということなんですが、問い合わせ前の私の認識ですとContainer Insightを使えばいい具合にそのあたりのリソースも監視してくれんちゃう?と思っていたのですが、実際はそうではなくといったところでこちらの問い合わせになります。

【質問】
ECS-fargateのエフェメラルストレージのモニタリングを行うことは可能か?
このリソースをモニタリングするうえでのメトリクスなどはあるか?

【回答】
fargateやContainer Insightの標準機能では、タスクのストレージの使用量の記録をすることはできないです。
そのため、どうしてもリソース枯渇が懸念される場合はサイドカーコンテナを使用してストレージの使用量をモニタリングする方法を検討する必要があります。
まぁ簡単にいうと本業を行うコンテナの横にそれらをモニタリングするための別コンテナを構築してそこからdfコマンドなりを定期的に実行して出力結果をカスタムメトリクスとして送信するやり方やCloudwatch Logsで監視する方法があります。
一応メトリクスとしては、disk_usedまたはdisk_used_precentを収集する形になります。

※これが知らなかったんですが、このエフェメラルストレージですが、最大で200GiBまで拡張することが可能でタスク定義のephemeralStorageパラメータを設定すれば拡張できるようになります。


※2023年2月2日追記~~
どうやら昨年のどこかでエフェメラルストレージのモニタリングがついにできるようになったようです。
具体的なメトリクスは以下となります。
Task metadata endpoint
→コンテナ内からタスクメタデータのエンドポイントv4のtaskにアクセスしてメトリクスを収集する感じのようです。単位は、【MiB】 

Container Insights
→こちらはContainer Insightsの有効を前提にインサイトで確認ができるようになります。ディメンションは、Task Definition Familiy、Cluster Name、Service Nameとなります。単位は【GiB】

ただし、前提として、FargateのLinux1.4.0以降にのみ対応しているのが残念。。。


となります。






カスタムメトリクスを作成
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/publishingMetrics.html

awslogsドライバーを使用する
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/using_awslogs.html

Cloudwatchエージェントを使用した埋め込みメトリクスフォーマットログの送信
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Generation_CloudWatch_Agent.html

fargateタスクストレージ
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/fargate-task-storage.html


タスク定義パラメータ


2022年03月02日

以下、宣伝です。
仲間も募集中なので、気になる方は↓の記事を覗いてみてくださいませ。
いい会社だと思いますよ。


いいなと思ったら応援しよう!