はじめに
Webアプリケーションのシステム基盤を作った時、基盤のリソースに対してはCloudWatchメトリクスの中から必要なものにアラートをセットします。
改めて1から監視を設定しようと思ってメトリクスを眺めてみると、アレも必要かこれも必要かと毎回微妙に迷いがちになるので, 何を見るのが良いかを一旦簡単にまとめました。
今後メトリクスが増減したりすることもあるかもしれないので、現時点(2024/09)でのものです
ALB
大体のケースで見るのは下記です。
| メトリクス |
利用する統計値 |
内容 |
アラート通知条件例 |
| HealthyHostCount |
Average, Minimum, Maximum |
正常とみなされたターゲットの数。 |
例えば3台ターゲットが動いている場合、正常なターゲットが2台未満になった場合 |
| UnHealthyHostCount |
Average, Minimum, Maximum |
異常とみなされたターゲットの数。 |
例えば3台ターゲットが動いている場合、異常なターゲットが1台発生した場合 |
| HTTPCode_ELB_5XX_Count |
Sum |
ALB 自体が返す 500 番台ステータスコードの数 |
システムによるが、1件でも発生した場合、X分の間にY回発生した場合、など |
| HTTPCode_Target_5XX_Count |
Sum |
ALB にぶら下がっているターゲットが返すステータスコード 5XX の数 |
システムによるが、1件でも発生した場合、X分の間にY回発生した場合、など |
| TargetConnectionErrorCount |
Sum |
ロードバランサーとターゲット間で正常に確立されなかった接続数。 |
1件でも発生した場合 |
| TargetResponseTime |
Average, pNN.NN |
リクエストがロードバランサーから送信され、ターゲットからの応答を受信するまでの時間。 |
システムによるが、3秒以内、など |
高トラフィックな環境だと以下も見ることもありますが小規模な環境だとあまり役に立たないことが多いです。
NewConnectionCount は、外部からの不正なリクエストを受けた場合などに新規接続として上昇することがあり、料金に影響するのでこれだけ確認することもあります。
ECS
| メトリクス |
利用する統計値 |
内容 |
アラート通知条件例 |
| CpuUtilized |
|
|
|
| MemoryUtilized |
|
|
|
CPU使用率
| メトリクス |
利用する統計値 |
内容 |
アラート通知条件例 |
| DatabaseConnections |
|
データベースの接続数 |
|
| CPUUtilization |
|
CPUの使用率 |
|
| FreeableMemory |
|
空きメモリの量 |
|
| FreeLocalStorage |
|
ローカルストレージの空き容量 |
|
Performance Insight を有効にすると以下のメトリクスが取得できるようになるため、これも見ます。
| メトリクス |
利用する統計値 |
内容 |
アラート通知条件例 |
| DBLoad |
|
|
|
以下のようなIOやネットワーク周りのメトリクスも場合によっては検討します
| メトリクス |
利用する統計値 |
内容 |
アラート通知条件例 |
| WriteIOPS |
|
|
|
| ReadIOPS |
|
|
|
| WriteLatency |
|
|
|
| ReadLatency |
|
|
|
| WriteThroughput |
|
|
|
| ReadThroughput |
|
|
|
| VolumeReadIOPs |
|
|
|
| VolumeWriteIOPs |
|
|
|
| メトリクス |
利用する統計値 |
内容 |
アラート通知条件例 |
| NetworkTransmitThroughput |
|
|
|
| NetworkReceiveThroughput |
|
|
|
| StorageNetworkTransmitThroughput |
|
|
|
| StorageNetworkReceiveThroughput |
|
|
|
| メトリクス |
利用する統計値 |
内容 |
アラート通知条件例 |
| AuroraReplicaLag |
|
|
|
参考