AWSのNetwork Load Balancer (NLB) において、バックエンドの異常を検知し、自動的にアクションを実行する仕組みは、以下のような構成で実現可能です。
🔍 バックエンド異常の検知
NLB のヘルスチェック
NLBはターゲット(EC2やIPアドレス)に対してTCP/TLS/HTTPヘルスチェックを行い、異常なターゲットを自動でルーティング対象から外します。
ただし、NLB自体にCloudWatchアラームや自動通知機能はありません。
⚙ 自動アクションの実装(構成例)
異常検知 → 通知・自動処理までを自動化するには、以下のAWSサービスの連携が必要です。
構成イメージ:
-
CloudWatch Logs / Metrics
- ヘルスチェックの失敗数(
UnHealthyHostCount
)を監視
- ヘルスチェックの失敗数(
-
CloudWatch Alarm
- 上記メトリクスにしきい値を設定(例:UnHealthyHostCount >= 1)
-
SNS or EventBridge
- CloudWatchアラームの状態遷移で通知を送る or イベントをトリガー
-
Lambda(自動アクション)
- 例:対象インスタンスの再起動、Auto Scalingグループのインスタンス置き換え、Slack通知など
🛠 自動アクションのユースケース例
ケース | トリガー | アクション |
---|---|---|
EC2が不健康 |
UnHealthyHostCount 増加 |
LambdaでEC2再起動 |
IPベースのターゲットが不健康 |
UnHealthyHostCount 増加 |
Lambdaでバックエンドシステム通知 |
特定AZで全ターゲット異常 | AZ別 UnHealthyHostCount モニタリング | Route 53 のトラフィックルール変更 |
🧩 補足:ターゲットがIPの場合
IPベースのターゲットはEC2ではないため、EC2ステータスのCloudWatchメトリクスは使えません。ヘルスチェックと連携した異常検知はNLBのヘルスチェックメトリクスを利用する必要があります。
まとめ
必要な要素 | 説明 |
---|---|
CloudWatch | NLBのUnHealthyHostCountを監視 |
CloudWatch Alarm | 異常検知のトリガー |
Lambda or SSM Automation | 自動アクションを実行 |
SNS / EventBridge | 通知やフロー制御に活用 |