Amazon CloudWatchにて、最小限の労力でもそれっぽく監視したいんだよな〜という……。
- そもそも動くことすらできていない「スロットル」は要監視である。動かなければお話にならないので
- レスポンス
5XX
、4XX
、3XX
、2XX
については一部だけ記載してある。状況に合わせて適宜監視するとよい - 最小限にしつつもおすすめは、「いわゆるERROR」(≒障害)用のアラームと、「いわゆるWARN」(障害ではないが気になる挙動)用のアラームを作ってみること。そうすると、構築したサービスの挙動傾向が掴みやすく、結果として安寧が得られる
ALB
- ロードバランサー5XX系エラー回数
HTTPCode_ELB_5XX_Count Sum
- クライアントにサーバーエラーを返しているようだ
- ターゲット5XX系エラー回数
HTTPCode_Target_5XX_Count Sum
- ターゲットがサーバーエラーを返しているようだ
- ターゲットのヘルシー率(レート)
UnHealthyHostCount / (HealthyHostCount + UnHealthyHostCount)
- オートヒールする作りにしてあるとはいえ、意外とダウンしている?
- ターゲットの単純な起動エラーによる無限立ち上げループの危険性も
API Gateway
- レイテンシー
Latency p99
- 対クライアントがなにやら重い?
- インテグレーションレイテンシー
IntegrationLatency p99
- バックエンドがなにやら重い?
- 5XX系エラー率(レート)
5XXError Average
- サーバー側でなにやらあったようだ
- AWSサービス自体の内部エラーという場合もある。その場合はAWS Healthに通知が来たりもする
- 5XX系エラー回数
5XXError Sum
- 単純な回数も把握しておこう
- 4XX系エラー率(レート)
4XXError Average
- あまりに高まってきているなら不穏…
- アタックにより発生している危険性も
- サーバー側コードのバグにより発生している危険性も
- クライアントが自アプリなら、アプリコードのバグにより発生している危険性も
- 429エラー回数
(MetricFilter) 429Error Sum
- スロットルされている!
- 自前でメトリクスを生成しておくと分かり易い
Cognito
- サインインスロットル回数
SignInThrottles Sum
- スロットルされている!
ECS
- CPU利用率
CPUUtilization Average
- 意外とぶん回している?
- メモリー利用率
MemoryUtilization Average
- 意外と食っている?
Lambda
- 実行時間
Duration p99
- なにやら重い?
- 最大並列実行数
ConcurrentExecutions Maximum
- 並列実行数が想定より増えている?
- 実行回数
Invocations Sum
- 定期的に動かしているつもりが…動いていない説?
- エラー率(レート)
Errors / Invocations
- リトライで解消する作りにしてあるとはいえ、意外とエラーになっている?
- エラー回数
Errors Sum
- 単純な回数も把握しておこう
- スロットル回数
Throttles Sum
- スロットルされている!
SQS
- DLQメッセージ数
ApproximateNumberOfMessagesVisible Maximum
- DLQ落ちが発生しておりいと悲し
- DLQメッセージ数増減差分
RATE(ApproximateNumberOfMessagesVisible) * PERIOD(ApproximateNumberOfMessagesVisible)
- DLQメッセージ数がどんどん増えているぞ……!
Step Functions
- 実行時間
ExecutionTime p99
- なにやら重い?
- ステートマシン実行失敗数
ExecutionsFailed Sum
- リトライもなんのその、完敗している
- スロットル回数
ExecutionThrottled Sum
- スロットルされている!
WAF
- ブロック率(レート)
BlockedRequests / (AllowedRequests + BlockedRequests)
- 意外とブロックされているようだ。ルールがよろしくないのかも?