CloudWatchアラームの動作テストがしたい

記事タイトルとURLをコピーする

クラウドインテグレーション部の村上です。

今回は色々なところでよく登場するCloudWatchアラームの動作テストについて書きます。

どんなときに使うか

絵にするとこんな感じです。 f:id:swx-murakami:20201014221644p:plain CloudWatchアラームを使う場合、主に以下のことを検証すると思います。

  1. 前処理をきっかけにCloudWatchアラームがちゃんと動作するか

  2. CloudWatchアラームが動作した後、ちゃんと後続処理が動作するか

今回の動作テストは、意図的にアラーム状態をつくりだすものなので、2番を検証したいときに使用します。

意図的にアラーム状態にする方法

AWS CLIのaws cloudwatch set-alarm-stateを使用します。 主なオプションは以下のとおりで、詳細はドキュメントを参照してください。

  • --alarm-name <value>
    • アラームの名前
  • --state-value <value>
    • アラームの状態を指定。OKALARMINSUFFICIENT_DATAのいずれか。
  • --state-reason(文字列)
    • アラームがその状態になった理由

docs.aws.amazon.com

実際にやってみた

CloudWatchアラームの作成

余談ですが、少し前までAmazon Connectを触っていたので、エージェントが電話をとれなかったらアラーム状態にする、ということをやってみます。

Amazon Connectのメトリクスのひとつである、MissedCallsメトリクスはエージェントが20秒以内に電話に出られなかった通話が対象なので、このメトリクスを基にCloudWatchアラームを作成します。

適当なアラームの条件を決め、後処理としてSNSを使ってメール送信をします。

f:id:swx-murakami:20201015095656p:plain

※またまたAmazon Connectの余談ですが、例えば空いているエージェントがいれば電話を繋ぎ、いなければ自動音声を流すみたいな、エージェントの空き状況によって処理を変えるのはConnect自体の機能で設定可能です。

ですので、今回想定する場面としては、「電話に出られるエージェントがいるのに20秒以上電話に出ない」というものになります。

意図的にアラーム状態にする

手元のPCで以下のコマンドを実行するだけです。

aws cloudwatch set-alarm-state --alarm-name "ConnectMissedCall" --state-value ALARM --state-reason "テスト目的"

ConnectMissedCallの部分はご自身のアラーム名に変更してください。

テスト目的の部分も適宜、変更してください。

コマンドを実行すると以下のようにアラーム状態に変わりました(しばらくすると元に戻ります)! f:id:swx-murakami:20201015180313p:plain

後続処理のSNSも動いています。 f:id:swx-murakami:20201015185826p:plain

後続処理のテストをしたいとき、このコマンドを使えば、すごく手っ取り早くアラーム状態にできるので便利です。

村上博哉 (執筆記事の一覧)

2020年4月入社。機械学習が好きです。記事へのご意見など:hiroya.murakami@serverworks.co.jp