概要
タグで監視リソースを指定できるアップデートが入ったらしいので確認してみた。
前置き
事件は旅先の函館で起こった。
ホテルで夜更かしをしていると次のような衝撃的な記事が流れてきた。
通常、CloudWatch Alarmで監視リソースを指定するときはリソースIDやARNを指定する。
このリソースIDが厄介で、例えばEC2インスタンスに何かしらの問題が発生してリストアした場合には、リストアしたインスタンスIDのメトリクスを監視するように設定しなおす必要がある。
ただ、タグで指定することができればその問題は解消できる。
また、この設定にはCloudWatch Metrics Insightsを使用するのだが、これを使うと単一のアラームで複数のリソースを監視することができるらしい。
単一のアラームで複数リソースを監視することと、タグでリソースを指定すること。
設計・運用負荷の軽減が期待できると思い、設定方法を確認してみた。
内容
アップデート概要
冒頭で紹介した記事では、アップデートの時系列が紹介されていた。
- CloudWatch Metrics Insightsを使用することで、複数リソースに対してまとめてアラームを設定できるようになった
- リソースの絞り込みは可能だが、リソース毎のメトリクス確認はできない
- CloudWatch Metrics Insightsを使用したアラームでリソース毎のメトリクスを確認できるようになった
- リソース毎のメトリクス確認可能だが、リソースIDやARNで絞り込む必要がある
- (今回)CloudWatch Metrics Insightsでメトリクスをタグでグループ化できるようになった
CloudWatch Metrics Insightsという機能は知らなかった。
複数リソースを監視できるのも驚きだが、タグで指定できるのはとてもインパクトが大きい。
最初に必要な設定
紹介した記事にも記載があるが、まずCloudWatchの設定で「テレメトリでリソースタグを有効にする」を有効化する必要がある。

これを忘れていると、グループ化条件でtag.Name
といったタグの項目が出てこない。
また、コンソールにも表示がある通り認識までに少し時間がかかるらしい。
設定方法
SQSキューのメッセージ数を監視するアラームを作成してみた。
まず以下の2つのキューを用意した。
- queue1(Nameタグ: queue1)
- queue2(Nameタグ: queue2)
CloudWatch Alarmを作成する際、メトリクス選択画面で「マルチソースクエリ」を選択するとCloudWatch Metrics Insights Queryを使用できる。
「グラフクエリ」をクリックするとグラフが作成され、「メトリクスの選択」を選択すると監視対象のメトリクスとして設定できる。
今回はSQSのApproximateNumberOfMessagesVisible
を指定し、グループ化条件にtag.Name
を指定した。

メトリクスを選択した状態で次の画面に進もうとすると、「並べ替え条件」の指定が必要だと警告が出た。

リソース毎のメトリクスの監視に使用する統計(MAX
など)と合わせて、昇順(ASC
)での並べ替えを設定した。
アラームとして使用する分にはあまり気にしなくて良いと思う。
最終的に設定されたクエリは以下の通り。
SELECT MAX(ApproximateNumberOfMessagesVisible)
FROM SCHEMA("AWS/SQS", QueueName)
GROUP BY tag.Name
ORDER BY MAX()
ASC
複雑なクエリを書く必要はないので導入しやすいと思う。
コンソールでは以下のように「寄稿者」の欄でタグ毎のメトリクスの評価を監視することができる。

通知内容
通知メールでどのメトリクスが閾値を超えた(もしくは下回った)のかを確認できたらいいなと思いながらメールを見ていると、Contributor Attributes
の項目があった。
Contributor Attributes:
– tag.”Name” queue2
コンソールを見なくてもどのメトリクスがアラーム状態になったのか確認することができる。
タグでリソースメトリクスを追跡できる!
今回の嬉しいポイント。
リソースIDやARNが変わっても、同じタグを使用すれば同じように監視対象メトリクスに反映される。
「queue1」を削除して「queue3(Nameタグ: queue1)」を作り直した。

アラームの表示は次の通り。

SQSキューは同じARNで作成しなおすことが可能なので恩恵がないが、EC2インスタンスなど再作成で識別子が変わってしまうリソースにとってはとてもありがたい。
CloudFormationで作成
【後でCloudFormationで作成してみる】
まとめ
タグを使用したCloudWatch Alarmについて、自分の手でも試してみた。
感想
設計や運用が楽になる非常にうれしいアップデートだと思う。
今後はCloudWatch Metrics Insightsを使用するアラームを標準にしていきたい。
参考
