アラームの設定

問題にいち早く気づくことは、サービスの可用性向上において重要です。

  • ここでは、いくつかアラームを設定し通知までを行ってみましょう。

アラームの項目検討

最初に、どのような時に異常と見なすかを決める必要があります。 ワークロードによりますが、次のような項目が考えられます。

  • CPU使用率が50%を超えている
  • メモリ使用量が80%を超えている
  • フェイルオーバーした
  • ストレージ使用量がxxGBを超えた

このセクションでは、簡単な例として「スロークエリが発生した」ことを検出します。

アラームの作成

  • アラームを設定するには、CloudWatchで「メトリクス」として通知されている必要があります。
  • 多くのイベントは最初からメトリクスとして定義されているため、これを利用しましょう。

スロークエリの確認

  • 現在の設定では、スロークエリが出るとCloudWatchのログに記録されます。
  • メトリクスとしては、「対象のロググループの IncomingLogEvents が増加」します。

以下の手順で実際に確認します。

  1. AWSコンソールのサービスからCloudWatchを開き、左メニューの「メトリクス」を開きます。
  2. 様々なメトリクスが出ていますが、「ログ」「ロググループメトリクス」を選択し、rdsで検索をすると次のように対象のメトリクスが発見できます。

  • IncomingLogEventsを確認すると、slowqueryが発生した時点で0以外の値が記録されています。

メトリクスが確認できたら、次はアラームの作成を行います。

  1. 左メニューから「アラーム」を選択
  2. 「アラームの作成」をクリックし、以下ように設定を行います。
  • メトリクス: 先ほどと同様に、対象のロググループの IncomingLogEvents を選択
    • 統計: 合計
    • 期間: 1分
  • 条件: 「静的」「より大きい」となっていることを確認し、閾値として 0 を入力します
  • 「次へ」をクリック
  • 通知: 「アラーム状態」
    • SNSトピック
      • 「新しいトピックの作成」
      • トピック名: handson-topic-user1
      • Eメールエンドポイント: ご自身のメールアドレス (これは実際にメールが発信する宛先です。実際に受信可能なメールアドレスを指定して下さい)
      • 「トピックの作成」
  • 「次へ」をクリック
  • アラーム名: handson-alarm-user1
  • 「次へ」をクリック
  • 「アラームの作成」をクリック

これでアラームが設定できました!

この手順ではメールを送信していますが、AWS Lambda と 組み合わせて Slackへ通知を送信したり、チケット管理システムに登録するなど様々な使い方が可能です。

メールアドレスの確認

  • 実際に通知メールを有効にするためには、そのメールアドレスを確認してアクティブにする必要があります。
  • 入力したメールアドレスのメールボックスにAWS Notifications <no-reply@sns.amazonaws.com>からメールが数分後に届きます。
  • そのメール文面内のConfirm subscriptionをクリックします。

これでメールが受け取れるようになりました。

アラームイベントの発生確認

  • 実際にアラームを発行させる状況を作り出します。
  • 以前の手法と同様に、1秒以上かかるクエリを実行してください。
MySQL [wordpress]> select * from data group by value limit 5;
+------+---------------------+-------+
| id   | ts                  | value |
+------+---------------------+-------+
| 4143 | 1991-02-09 11:46:51 |    11 |
| 9391 | 1988-05-08 13:06:55 |    15 |
| 7584 | 2013-12-24 15:47:05 |    25 |
| 9240 | 1986-09-21 15:20:32 |    32 |
| 3724 | 1981-08-02 11:33:55 |    35 |
+------+---------------------+-------+
5 rows in set (8.70 sec)
  • スロークエリが記録されたかどうかは、CloudWatchのログ、メトリクス、アラームの順に早く確認できます。
  • メトリクスやアラームは一定期間での集計なので、遅れが発生します。
  • アラーム作成直後は「データ不足(INSUFFICIENT_DATA)」状態になるため、数分待ってもアラームが発動しない場合は、もう一度スロークエリを発生させてください。

  • アラームイベントが発生すると、次の画面のように左メニューおよび対象のアラームが変化します。

また、アラート状態に変わったというメールが飛んできています。(無事アラートの確認ができました)

アラートにおける工夫

  • アラートに設定するメトリクスは、「式」を利用することができます。
  • そのため、「5分以上80%を超えるCPU使用率であればアラームイベントを発生」といったような設定も可能です。また、コンポジットアラーム(複数のアラームをANDやOR条件で組み合わせたアラーム)を作成することも可能です。

モニタリング全般についてはドキュメントを参照ください。

Amazon RDS DB インスタンスのモニタリング

参考資料