はじめに
以前の記事で、EC2 インスタンスに CloudWatch Agent をインストールする方法を記載しました。今回は、もう少し踏み込んで、EC2 にアタッチしている EBS の使用率を使ってアラームを設定する方法を確認します。
EBS の使用率は、CloudWatch Agent を導入すると確認できるようになるので、もし気になる方がいれば導入の検討をおすすめします。
CloudWatch Metrics の確認
以前導入した CloudWatch Agent によって、CloudWatch Metrics の Custom namespaces として CWAgent
が作成されています。この記事の環境では、ネームスペースに 51 個のカスタムメトリクスが登録されている状況になっています。このネームスペースの中身を見ていきましょう。
device が含まれる メトリクスを選択します。
disk_usage_percent
という名称のメトリクスがあり、Device 単位で利用率がわかります。このメトリクスを使って CloudWatch Alarm の設定を進めていきます。
CloudWatch Alarm
CloudWatch Alarm の画面に移動し、Create を押します。
Select metric を選択します
disk_used_percent
を利用します。監視したい Device を正しく選びましょう。
今回の記事では、70% を超えたらアラームとします。
アラームで利用する SNS Topic を選択します。この記事の環境では、既に登録しているメールアドレスに通知する Topic があるので、これを選んでいます。もし存在しない場合は、SNS Topic を作成します。
Next で進みます。
適当に名前と説明をいれて Next を押します。
Create を押します。
動作確認
ここまで設定して、70% の閾値ではエラーのメール確認が出来ないことに気が付いたので、一時的に 10% に変更します。
変更後、エラーを検知してメールが届きました。
検証を通じてわかったこと
- EBS のディスク使用率を取得するには、EC2 Instance に CloudWatch Agent をインストールする必要がある
-
disk_used_percent
が楽に利用できる - CloudWatch Agent で取得したメトリクスは、カスタムメトリクスの扱いとなる。費用の考え方は、CloudWatch の料金ページの下の方に、カスタムメトリクスの試算例が書いており、これを参照するとわかる
- 「メトリクスの数」と「メトリクスに関する API の呼び出し」がざっくり掛かってくる項目となる
- https://aws.amazon.com/jp/cloudwatch/pricing/
- CloudWatch Agent を何も考えずインストールすると、カスタムメトリクスの数が比較的多い。よりコスト最適化のために取得する項目を少なくしたい場合は、設定変更が可能
参考URL