Amazon CloudWatch Synthetics でグループ機能が使えるようになっていました

2022.08.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

Amazon CloudWatch Synthetics でグループ機能が使えるようになるアップデート案内が来ていました。

全く気づいてませんでしたが、AWS CLI のアップデート履歴からすると v1.25.24 の 2022 年 7 月 7 日ごろから利用可能になっていたようです。

1.25.24
=======

* api-change:``synthetics``: This release introduces Group feature, which enables users to group cross-region canaries.

Release 1.25.24 · aws/aws-cli

グループ機能がどういうものなのか少し触ってみましたのでご紹介します。

グループ機能で複数の Canary をまとめることが出来る

以下のようにグループ関係の操作を行うための UI コンポーネントが追加されています。

ここでは、適当な API Gateway に対してハートビートを送信する Synthetics Canary を 2つ作成しました。
同一 API の異なるパスにリクエストを送信しています。

グループに含める Canary を選択するだけ

使い方としては、グループを作成しグループに対象 Canary を追加するだけです。

注意点としては、Canary 名の検索は出来ないので完全一致で対象 Canary 名を入力する必要があります。

前方一致はダメでした。

完全に一致していれば選択対象として表示されました。

そして、以下のように複数の Canary を選択することが出来ます。
公式ドキュメントによると、1つのグループに追加出来る Canary は最大 10 まで、1 つのアカウントに作成出来るグループは20個までのようです。

また、このように Canary は複数のグループに所属させることが出来るので、目的に応じたグループを作成し Canary を組み合わせることが出来ます。

一覧画面に表示方法ですが、Show groupsを選択すると子 Canary はグループに包括された状態で表示されます。
グループに属していない Canary はそのまま表示されます。

Canary 単体のステータスやパフォーマンスに加えて、グループ内の平均値も確認出来るようになりました。

ただし、本日時点ではグループごとのメトリクスやアラーム機能は備わっていないようでした。
このあたりは今後欲しくなるかもしれない。

クロスリージョン

Canary はリージョンごとに作成することが出来ますが、グループはリージョンを跨って Canary を管理することが出来ます。
これは大きな特徴かもしれません。
以下は東京リージョンとバージニア北部リージョンの Canary を複合したグループです。

色々なユースケースで利用できそうなグループ機能ですが、クロスリージョンで管理出来るということなので、ためしに先程の API Gateway に対して日本からのアクセスのみを許可するようにしてみましょう。
API に AWS WAF の WebACL を関連付けし、カスタムルールで日本以外からのアクセスをブロックさせてみます。

少し待つと、バージニア北部で失敗するようになりました。

グループのステータスとしては、いくつの Canary が失敗しているのかが確認出来る形ですね。
アラートは個別の Canary で構成が必要ではありますが、グループの失敗を確認した上で各 Canary がどういう状態なのかという点が見やすいかもしれません。

さいごに

本日は、Amazon CloudWatch Synthetics でグループ機能が使えるようになっていたので試してみました。

Canary の中で複数のエンドポイントへアクセスすることも出来ますが、個別に分けてグループ化しておくと失敗したグループの中でどの Canary がどういう状態なのか分析出来るので便利ですね。
グループ自体の追加利用料金は発生しませんが、グループ数の上限や Canary 自体の実行料金に注意した上で活用してみたいですね。