目次
全体構成
メトリクス監視、イベント監視、ログ監視を組み合わせた監視設定の全体構成は以下のようになります。
【メトリクス監視】
AWS/EC2 標準メトリクス
CWAgent カスタムメトリクス
↓
CloudWatch Alarm
↓
共通SNS
↓
Amazon Q Developer
↓
Slack
【イベント監視】
AWS Healthイベント
EC2インスタンス状態変更イベント
↓
EventBridge
↓
共通SNS
↓
Amazon Q Developer
↓
Slack
【ログ監視】
EC2上のログ
↓
CloudWatch Agent
↓
CloudWatch Logs
↓
メトリクスフィルター
↓
カスタムメトリクス
↓
CloudWatch Alarm
↓
共通SNS
↓
Amazon Q Developer
↓
Slack
特徴としては以下になります。
- メトリクス監視とログ監視は、CloudWatch Alarm が判定・発報
- イベント監視は、EventBridge がイベントを検出して直接 SNS へ送信
- SNS は監視や判定をせず、通知を配送するだけ
CloudWatch については以下でも詳しく解説しています。
想定する EC2 インスタンス
以下の EC2 インスタンスを監視する想定です。
| リソース | Name | インスタンスID例 |
|---|---|---|
| EC2 | prod-app-01 | i-0123456789abcdef |
| EC2 | prod-app-02 | i-abcdef1234567890 |
メトリクス監視
EC2のメトリクス監視は、大きく2種類あります。
EC2標準メトリクス
エージェントなしで取得できます。
CPUUtilization
StatusCheckFailed_System
StatusCheckFailed_Instance
StatusCheckFailed_AttachedEBS
NetworkIn
NetworkOut
DiskReadBytes
DiskWriteBytes
CloudWatch Agent メトリクス
CloudWatch Agent を EC2 に導入すると取得できます。このメトリクスは標準ではないので「カスタムメトリクス」になります。
mem_used_percent
disk_used_percent
swap_used_percent
processes_running
CloudWatch Agentは、EC2標準監視では取得できないOS内部のメモリ、ディスク使用率などを追加収集できます。ログ収集にも同じ統合CloudWatch Agentを使用できます。
今回は、各EC2について次の6個を監視する構成にします。
| メトリクス | 目的 | カテゴリ |
|---|---|---|
| CPUUtilization | CPU高騰 | 標準メトリクス |
| StatusCheckFailed_System | AWS基盤側の障害 | 標準メトリクス |
| StatusCheckFailed_Instance | OS・ネットワーク設定などインスタンス内部の異常 | 標準メトリクス |
| StatusCheckFailed_AttachedEBS | アタッチされたEBSの異常 | 標準メトリクス |
| mem_used_percent | メモリ不足 | カスタムメトリクス |
| disk_used_percent | ディスク容量不足 | カスタムメトリクス |
