こんにちは!広告事業本部でユニットマネージャーをやっている上森です。
本記事では、Datadog から CloudWatch への移行によって、月額$300から$40に、約87%のコスト削減に成功した話をご紹介します。
また、外形監視の手段選定に悩んでいる方、現在の監視コストを抑えたい方に向けて、CloudWatch Synthetics というコスパに優れた選択肢をお伝えしようと思います。
背景
私のチームでは直近でサービス運用コストの削減に注力しており、EC2, RDS のスペック適正化や Staging 環境の起動時間の見直しなど、多岐にわたる施策を実施してきました。
詳しい内容は同じチームの花田が執筆しましたので、そちらも合わせてぜひご覧ください。
そこで、これらの取り組みの一環として、普段あまり注目されない、監視ツールである Datadog の見直しを実施することになりました。
監視ツールの選定
Datadog はAPM(Application Performance Monitoring)や豊富な分析機能など、非常にリッチな機能を持つ素晴らしい監視プラットフォームではあります。
しかし、多機能な Datadog を導入したものの、利用状況は EC2 サーバーの簡易的な外形監視(ログイン/ログアウト処理などのブラウザテスト)に留まっていることが分析の結果判明しました。
そこで、より安価な代替サービスの検討を開始し最終的には CloudWatch Synthetics を選定しました。
CloudWatch Synthetics の紹介
CloudWatch Synthetics とは Canary(中身はLambda)というリソースを作成して、
対象の Web アプリケーションや API に対して監視ができるサービスです。

画像引用元:【AWS Black Belt Online Seminar】 Amazon CloudWatch Synthetics
Canary の作成では、設計図が用意されており、基本的なユースケースにおいてはノーコードでの作成もできます。
そして先述した通り、外形監視(Canary)の実行基盤が Lambda であるため、監視対象を含めた全てのインフラが AWS 内に完結できます。これにより、以下のようなメリットが得られます。
- Datadog など他の SaaS に対して EC2 との接続設定が複雑になるのを解消できる
- アプリケーションと監視サービスが AWS 上に集約されることで IaC による管理が容易になる
また、ダッシュボードのカスタマイズ性などは他のサービスには劣りますが、コスト面ではかなり価格を抑えられるといった魅力があります。
(補足)去年 GA された、CloudWatch Application Signals の他の機能を使えば SLO のダッシュボードなども作成できます。
実装
CloudWatch Synthetics で作成する Canary は、AWS Lambda 関数として実行され、コードの実行環境には Node.js / Python を選択できます。
Node.js ではブラウザ操作ライブラリとして Puppeteer / Playwright が用意されており、Python で Selenium が選択できます。
今回はチームのスキルセットなどを鑑みて Playwright を選択しました。
以下が今回実装した Canary のスクリプトの例です。
Step ごとにブラウザ上の操作を区切り、ユーザー行動を模倣し監視しています。

また、監視のスケジュール設定なども以下のように最短1分間隔から、細かく cron での指定も可能です。

また、今回は AI を活用してテストコードを作成しましたが、公式から提供されている CloudWatch Synthetics Recorder という Chrome の拡張機能もあります。
この機能を使えば、実際の Web サイト上での操作を記録し、その操作を CloudWatch Synthetics の Canary で実行するように設定できます。

監視結果
Canary の実行結果は全て以下のようにコンソール上で確認できます。
他の AWS リソースと同じ場所で結果をチェックできるのが大きな利点だと思います。

応答時間、成功率などのメトリクスも自動で CloudWatch に蓄積されるので、そこからアラームを設定して Slack 通知なども簡単に設定できます。
また、実行ログやキャプチャされたスクリーンショットも自動で保存されるので、失敗した場合の原因調査も可能です。
振り返り
Datadog から CloudWatch に移行した結果、月額$300から$40、年間で$3,120という大きな削減効果を得られました。
コスト面だけでなく、リソースを AWS に集約できたことによる管理コストが改善しました。
皆さんも EC2 や RDS などのスペック削減に注力しがちだと思いますが、監視サービスのような縁の下の力持ち的な領域 にも、大きなコスト削減の余地があることを実感しました。
外形監視のコストや手段に迷われている方は、CloudWatch Synthetics Canary を是非選択肢の1つとして検討してみてください。