こんにちは、技術1課の加藤です。
2019年にプレビューが発表されていた Amazon CloudWatch Synthetics が GA されました。
Synthetics という字面を見るとなぜか SAO っていう言葉が頭に思い浮かぶんですがそれはさておき。 (あっちは Synthesis ですけど)
CloudWatch Sythetics が担う合成監視という概念についても軽く説明しつつ、何ができるのか確認していきます。
CloudWatch Synthetics
さて先ほども言った通り、 Synthetics = 合成という言葉がサービス名についているのは、このサービスが「合成監視 = Synthetics Monitoring」を行うサービスだからです。
合成監視について調べてみると「ユーザーとして対象の Web サイトにアクセスして監視・計測をする」といった内容が出てきます。
簡単に言ってしまえば「プログラムを用いて実際のユーザーアクセスを模した Web アクセスを行い監視を行うこと」を合成監視と呼ぶみたいですね。
パフォーマンスデータを取得しようにも実測値を手に入れられない時代に、実測に近い値を得るために作ったシステムが発祥のようです。
合成と聞くとどうしても化学実験的なことをイメージしてしまって分かりにくいかもしれません。ここでは合成を「生成」や「人工」くらいの意味で捉えてください。
実際のユーザーの Web アクセスを 「天然」のアクセスとしたら、プログラムを用いたアクセスは「人工」 = 合成である、と。これを使った監視なので合成監視と呼ばれる、と。そんな感じですね。
(合成皮革の合成と近いニュアンスで捉えるといいんじゃないでしょうか)
Synthetics でできること
Synthetics が何をできるサービスか、というのは、何を組み合わせたサービスなのか、を考えると分かりやすいです。
主な要素はこの辺り。
- CloudWatch Event (定期実行)
- Lambda (Node.js)
- Puppeteer
- Chromium
- S3
- CloudWatch Alarms
これらを組み合わせてできることを、簡単設定でマネージドに行えるようにしたのが Synthetics です。
言葉で説明するなら、 CloudWatch Events で定期的に発火される Lambda 上で Chromium + Puppeteer を動かし Web アクセスを模す。ログは S3 に吐かれ、Alarm をあげることも可能。といった感じ。
定期実行やログ出力、アラーム設定あたりは設定値入れるだけで OK ですが、Puppeteer を用いる Lambda 関数の開発はどうしても必要になります。
とはいえこれを一からやるのは大変なので、テンプレートを用意してくれています。
現時点で使えるテンプレートは以下の 4つ。
- ハートビートのモニタリング
- API Canary
- リンク切れチェッカー
- GUI ワークフロービルダー
これらについては、必要な値を2, 3入力するだけで Lambda 関数を生成してくれます。とっても便利ですね。
具体的な使い方は画面のイメージについては、下に貼ったブログを参照してください。
おわりに
テンプレートを用いてできることやアラートの設定方法について弊社ブログで紹介してますのでぜひご覧ください。
- CloudWatch SyntheticsでHTTP監視をする
- CloudWatch Syntheticsのアラートをメール通知する
- CloudWatch Syntheticsのリンク切れチェッカーを使ってみた
また、この内容は 2020/4/30(木) 12:00 よりYouTube Liveで配信する「30分でわかる AWS UPDATE!」で取り上げます!
是非ご覧ください!