なぜかくのか
Auto ScaleするAWS EC2インスタンスの監視運用をするにあたって
気になることが多々あるかと思います。
- スケールアウトするたびに増えたサーバーの監視設定はしたくない
- スケールインするたびに死活監視のアラートが飛んできたらつらい
- スケールアウトしたホストの数全部課金されるようだときびしい
Datadogでは上記の問題たちを特に気にしなくて済んでとてもよかったです。
という覚書です。
かいつまんで、Datadogのいいところ
スケールアウト都度の監視設定追加は不要
Dataodogの監視アラート設定はホスト単位ではなく
監視対象のサーバに付与したタグを使ってグルーピングした単位で行うので、
監視対象のインスタンスに適切なタグの設定さえされていれば
サーバが増えようとも都度の監視設定は不要です。
スケールインで消えたサーバのアラートは自動ミュート
Integrationを設定したAWSアカウント内のスケールイベント発生状況を検知し、
スケールインにより削除されたサーバは自動でアラートをミュートしてくれます。
なので、いちいち死活監視のアラートを気にすることはありません。
(そして一定時間経過後、それまでのモニタリングデータは残したまま管理ホスト一覧から退場もしてくれてお掃除要らず)
課金について
サーバが停止し、メトリクスの送信がなくなった時点で課金対象からは除外されるようです。
また、スケールアウト→スケールインを繰り返してサーバの延べ台数が増えてしまった場合も
課金対象は起動したサーバ台数の合計ではなく、月内で監視対象サーバ数が最大だったタイミングの台数です。
課金の判定基準は、メトリクスデータをDatadog側で受信しているかどうかです。
The billable count of hosts and containers is calculated at the end of the month using the maximum count (high-water mark) of the lower 99 percent of usage for those hours.
作業概要メモ
各項目、具体的な実装手順は説明せず公式ドキュメントを貼るのみにとどめます。
AutoScalingグループを作成
-
あらかじめAMIにはDatadogのAgentを仕込んでおく
AWS Integration設定
AutoScaleイベントの発生を検知するため、
以下手順でDatadogにAWS Integrationを設定します。
https://docs.datadoghq.com/integrations/amazon_web_services/#installation
Monitoring(監視アラート)設定
DatadogのMonitoring設定は、ホストごとではなくタグを使ってグルーピングします。
ここで指定したタグと同じタグさえついていれば、
スケールアウトでLaunchされた新規ホストも自動で監視対象に組み込まれます。
例えば死活監視の設定画面は以下のような感じです。
(赤枠部分が対象ホストの指定)
オートスケールイベントを起こしてみる
ここまで設定したら、動作確認をします。
サーバに負荷をかけてスケールアウトさせてみます。
(初期状態のスクショを撮り忘れました…)
スケールアウトした結果
スケールインした結果
今度は負荷をかけるのをやめて、サーバ台数を縮小させます。
-
対象サーバがアラート状態になりますが、自動でミュートされるので通知は飛びません
まとめ
この辺りの自動化は何かしら工夫すればできるだろうとは思っていましたが、
デフォルトでここまでやってくれると思いませんでした。Datadog好き!!