👁️
【監視】AWS ECS メトリクスみてみたよ
AWSのECSの負荷問題ないかな〜とメトリクスを見てみました。細かいメトリクスは色々あると思うのですが、主要な以下3つを確認しました。
CPU使用率(CPU Utilization)
CPUは処理を動かす張本人なので、とても大事ですね。
サービス単位でのCPUの使用率を確認しました。CPUとかメモリって、タスクごとに設定してなかったけ?と思いましたが、サービスで動いている全コンテナの平均を算出してくれているらしいです。
イメージこんな感じ↓↓
| コンテナ | CPUUtilization | MemoryUtilization |
|---|---|---|
| Task1 | 50% | 60% |
| Task2 | 30% | 50% |
| Task3 | 40% | 70% |
| サービス単位での使用率 | (50+30+40)/3 = 40% | (60+50+70)/3 = 60% |
CPUのリソース割当が少なすぎたり、多すぎたりする場合は、調整しましょう!
メモリ使用率(Memory Utilization)
CPUが処理を実行するときに、メモリを利用します。プログラム実行の際に、メモリにロードして実行されるので、メモリが不足すると、処理が止まってしまったりします!大事ですね!
こちらも同じくサービス単位でのメモリ使用率を確認しました。
タスク数
リクエストに応じて、オートスケールが適切に動いているかの確認です。また、適切なタスク数のMin/Maxを設定できているかの確認。
タスク数のMinが大きすぎて、リソースが余っている状態だと、お金が余計にかかるので、もったいないです!逆にタスク数のMaxが少なすぎて、リソースがギリギリになっている場合、いきなりリクエストが増えたときに対応できないので、危険ですね!
今回は、リクエスト数が少なく、タスク数が余っている状態だったので、タスク数のMinを低くする事になりました。もっとたくさんのユーザーに使われるサービスにするぞ!
感想
緊急なときにメトリクス見ても、どこ見るんだっけ?なんだっけ?ってなるので、
日頃から見ておくといいかもって思いました!
見ておくべき値は、ダッシュボードに入れておくと良いですね。(入れてくれた人ありがとうございます。)

Discussion