Amazon CloudWatch で Amazon RDS(Relational Database Service)のリソースを監視する設定方法について解説します。
リソースを監視し、しきい値を超えた場合、Amazon SNS でアラートメールを送信します。
以下の記事は、監視対象のメトリクスを CloudWatch ダッシュボードで監視する方法です。
【AWS】CloudWatch でカスタマイズした CloudWatch ダッシュボードを作成する【RDS】
【事前準備】Amazon RDS 構築手順
今回の監視対象は RDS となりますが、RDS の構築手順は以下を参照してください。
【AWS】【RDS】SQL Server 作成手順
【事前準備】Amazon SNS でのトピックの作成手順
リソース監視でしきい値を超えた場合、Amazon SNS(Simple Notification Service)でメールを送信します。
メール送信は Amazon SNS のトピックを利用します。
チュートリアル: Amazon SNS トピックを作成する
https://docs.aws.amazon.com/ja_jp/sns/latest/dg/sns-tutorial-create-topic.html
Amazon SNS トピックは、通信チャネルとして機能する論理アクセスポイントです。トピックを使用すると、複数のエンドポイント (AWS Lambda、Amazon SQS、HTTP/S、E メールアドレスなど) をグループにまとめることができます。
以下の記事で Amazon SNS でトピックを作成しメールを送信する設定を参考にしてください。
【AWS】SNS(Simple Notification Service)でメールを送信する設定手順
RDS リソース監視の設定
最初から複雑で込み入ったリソース監視を実施しようと考えても、結局設定ができなくて途中で諦める、または導入しても監視することもないといったことが起こるので、まずは基本的な設定だけ導入し運用しながら必要な監視項目が出たら都度設定するという手順で行きます。
その場合、AWS 公式サイトでも記述がありますが、以下の監視項目にまとまるかと思います。
- CPU 使用率
- メモリ使用率
- ディスクス使用率
- ネットワークトラフィック
- データベース接続数
- IOPS
監視対象の RDS
今回利用した RDS は以下となります。
デフォルトでも基本的な監視項目を確認できる
デフォルトでも(何も設定していなくても)「サービスダッシュボード」で RDS の基本的な監視項目を確認できます。
CloudWatch ダッシュボードより、「AWS サービスによるアラーム」の「RDS」をクリックします。
デフォルトで以下の監視が入っています。
- CPU 使用率(CPU Utilization Avarage)
- データベース接続数(Database Connection Sum)
- ディスクフリースペース量(Free Storage Space Avarage)
- フリーメモリ量(Freeable Memory Average)
- Read Latency Average
- Read Throughput Average
- Read IOPS Average
- Write Latency Average
- Write Throughput Average
- Write IOPS Average
アラームの設定
実際にアラームの設定をします。
例として CPU 使用率が 80% 以上になった場合にアラームを送信する設定をします。
CPU 使用率
CPU 使用率 80% でアラームを発報します。
「CloudWatch ダッシュボード」より左型ペインより「アラーム」をクリックします。
「アラームの作成」ボタンをクリックします。
「メトリクスと条件の指定」画面で「メトリクスの選択」ボタンをクリックします。
下図のようにメトリクスが表示されるので「RDS」をクリックします。
監視対象の RDS を選択したいので「データベース別メトリクス」をクリックします。
※対象の RDS のメトリクスが見つけやすいか見つけにくいかだけなので、どこからでも目的のメトリクスにはたどり着けると思います。
監視対象の RDS(例では sqlservertest01)の「CPUUtilization」にチェックを入れて「メトリクスの選択」ボタンをクリックします。
「メトリクスと条件の指定」画面で以下のように設定します。
- メトリクス名 ← CPUUtilization
- DBInstanceIdentifier ← sqlservertest01
- 統計 ← 平均値
- 期間 ← 5分
設定したら下にスクロールします。
「条件」で以下のように設定します。
- しきい値の種類 ← 静的
- CPUUtilization が次の時… ← 以上
- …よりも ← 80(CPU 使用率 80% 以上を監視するので 80 と入力します。)
- アラームを実行するデータポイント ← 2 / 2(瞬間的なバーストを外すために、2回連続で 80% 以上になった場合のみアラームを実行する設定にします。)
- 欠落データの処理 ← 欠落データを見つかりませんとして処理
設定したら「次へ」ボタンをクリックします。
「アクションの設定」画面で以下のように設定します。
- このアラーム状態が以下のとき ← アラーム状態
- SNS トピックの選択 ← 既存の SNS トピックを選択
- 通知の送信先 ← CloudWatch で利用するための既に作成している SNS トピック(例では MailforCloudWatchAgent)を選択します。
- E メール(エンドポイント) ← SNS トピックで設定した E メールアドレスになっていることを確認します。
設定したら下にスクロールします。
「Auto Scaling アクション」で必要な場合は設定し、「次へ」ボタンをクリックします。
「説明の追加」画面で「アラーム名」を定義し「次へ」ボタンをクリックします。
「プレビューと作成」画面で設定を確認し「アラームの作成」ボタンをクリックします。
下図のようにアラームがエラーなく作成されることを確認します。
他にも同じような手順で以下のメトリクスを監視できます。
- メモリ使用率
- ディスクス使用率
- ネットワークトラフィック
- データベース接続数
- IOPS
動作確認
ツールを使用して故意に RDS に負荷を掛けると AWS から攻撃と認識される可能性があります。
負荷試験をする際は AWS に申請が必要のようですが、今回は CloudWatch でアラームが出来るかどうかを確認したいだけなので、しきい値を下げてアラートが発砲されるかどうかを確認します。
「CPUUtilization」のしきい値を「80%」から「5%」に下げます。
しばらく待ち、条件に当てはまると「アラーム状態」に表示が変更します。
アラートメールの受信確認
下図のようにアラートメールの受信を確認します。
メールの全文は以下のようになります。
ALARM: “sqlservertest01-CPU-Utilization-Alert” in Asia Pacific (Tokyo) |
参考サイト
公式サイト
Amazon RDS のモニタリングの概要
コメント