AWS Fargateを使っている会社規模の小さな会社がDatadogを導入に至った理由
Recustomer株式会社 / 眞鍋秀悟
CTO・VPoE / CTO / 従業員規模: 11名〜50名 / エンジニア組織: 10名以下
利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
APM・RUM・Dashboard・Monitor・Watchdog・Dynamic Instrumentation | 10名以下 | 2025年1月 | B to B B to C |
利用機能 | APM・RUM・Dashboard・Monitor・Watchdog・Dynamic Instrumentation |
---|---|
ツールの利用規模 | 10名以下 |
ツールの利用開始時期 | 2025年1月 |
事業形態 | B to B B to C |
アーキテクチャ
アーキテクチャの意図・工夫
弊社は基本的にECS Fargateを利用しています。 Datadogの料金の一つの要因にECSの台数があるのですが、Datadog Agentをサイドカーにせずに分離して、それ専用のAgent ECSをつくり、その間をECS Connectで通信する方式としました。 AgentがインストールされているECS課金になっているようにみえており、 実際に運用しているECS Task数よりも圧倒的に台数が少なくすることができ、結果的にDatadog費用がとても安くなっております。 そのため、ECS Fargateを使われている方は、こうした方式をとることで、 Datadogから見えているECS Task数を減らすことができ、安く利用できる可能性が高いです。
Workerサービスを外部ライブラリに頼らずに、 自社ライブラリーで作っているのですが、 SQSから取得して成功してdeleteするまでの区間をAPMとして統合して、 Datadogと親和性のよい調査が行えるようできた点もよかったように思います。
また、Pythonについてログライブラリをstructlogに統一しており、 JsonLoggerを出すようにしており、それをDatadogに取り入れております。
導入の背景・解決したかった問題
導入背景
Datadogのようなツールを、今まで一切導入されていない会社が、なぜ導入したのかについてわかる内容を記載しています。
ツール導入前の課題
- CloudWatchLogsに集約されたログを解析するのに時間がかかっていました
- マイクロサービスになっていることもあり、どこのサービスからのリクエストを通して問題が発生しているのかがわかりませんでした
- デプロイの前後でレイテンシーやエラーの悪化が見られているのかがわかりませんでした
- Systemの状態を表すDashboardがありませんでした
- Python・Rust・Reactを使っており、これらを統一的に扱うモニタリングツールを探していました
比較検討したサービス
- CloudWatch
- New Relic
- Sentry
比較した軸
- コスト
- 課題がどの程度解決できるか
- サポートがどの程度充実していたか
- そのSaaS機能を提供している企業経営が、安定していて将来に渡っても存続しそうか (海外を含めた評判や導入実績も含む)
選定理由
コストに対する解決できる課題の数
導入の成果
Datadog側のサポート体制
導入時に苦労した点や悩みに書いたのですが導入前はここを心配していました。 結果的にはきちんとサポートされており、本当にかなりの質問の数を送ったものの、 きちんと回答して伴走していただき問題なく導入まで至りました。 また、導入後もサポートに問い合わせてもきちんと回答が返ってくるので、 昔導入された人がもっていたサポートへの不満は私は感じられませんでした。
加えて、Datadogを活用するイベントもいくつか招待いただいており、 習熟度や新機能などのキャッチアップもスムーズに行えている点がよかったです。 また、資格取得まわりも整備されているのが良い点だと感じています。
Datadogのコスト面について
導入する前は、ここについて周りから気をつけるよう言われることが多かったです。 しかしながら、結果としてではあるが、アーキテクチャの工夫によって費用を抑える体制ができていると思います。 また、不要なログ・APMを取り込まないように工夫したりと、そのあたりを適切に行うことで、 最初に予想していたコストに比べて1/3程の値段で使うことができているのは良かったです。
改善したかった課題はどれくらい解決されたか
ツール導入前の課題であったこれらのこと:
- CloudWatchLogsに集約されたログを解析するのに時間がかかっていた
- マイクロサービスになっていることもあり、どこのサービスからのリクエストを通して問題が発生しているのかがわからなかった
- デプロイの前後でレイテンシーやエラーの悪化が見られているのかがわからなかった
- Systemの状態を表すDashboardがなかったこと
- Python・Rust・Reactを使っており、これらを統一的に扱うことができるか
はすべて解決された。 また、SendGridのような機能も使っていたのですが、こうした外部のメトリクスも取り込めたのは知らず、 一元的に管理できモニタリングできたのは非常によかったです。
結果的に導入を辞めた機能・縮小した機能
Database Monitoringについて。 現段階では、AWSのPerformance insightsで十分なのではないかという結論に自分の中では落ち着きました。そのため試したのですが導入を辞めました。
Cloud Cost Managementについて。 期待する動作としてはAWSとのインテグレーションが終わっているので、 その権限を使って自動的に引っ張ってくれるところだったのですが、 AWSにおいてCost異常検知なども入れたあとだったこともあり別段入れるモチベーションがなくなってしまいました。
導入時の苦労・悩み
実は、Datadogのサポートに不満があるという声を、エンジニア界隈で聞いていたので、 サポートに対して不安がありました。 しかしながら、Datadog Japan 2024でサポートが日本にかなり力をいれる体制になったと聞き、 そのあたりが不安がないかも含めてトライアルで検証しました。 結果的には評判に比べてちゃんとサポートされており、かなりの質問の数を送ったがきちんと回答して伴走していただき、問題なく導入まで至ることができました。
豊富な機能があるためそれをすべて検証していると、時間が取られすぎてしまう点が気がかりではありました。 しかしながら、便利な機能も多く、時間をみつけてどこまで検証するのかというところが苦労した点でもありました。 また、プランが複雑であることもあり、プランとコスト構造を理解することで結果的に導入した当時に比べて1/3程度の値段に抑えることができたのは苦労のしがいがありました。
導入に向けた社内への説明
上長・チームへの説明
もともと不具合があった際にLogの調査をするのに非常に時間がかかっておりました。 SentryとCloudWatchLogsだけでは解析時間がとてもかかっているため、積極的にバグや予兆を見つけて直すという施策が取りづらかったように思います。 Datadogを入れることで、専任の30万/月程度の人、一人分を代替する労力になると経営判断しました。 また、人からシステム化することで、属人化を防げるメリットもあることを説明し、 このコストより低くできるかをポイントにこれらの課題解決ができるかを、 トライアルで確認し、問題なければ導入する方針としました。
活用方法
よく使う機能
- APM・Log
基本的に不具合があったらAPMをみるとわかるような仕組みが整えられています。 ここにいくことで、DBへのアクセス回数でN+1が発生しているかや、 外部通信がとても長くなっているのではないかなどそういったことを視覚的に理解することができるようになっています。 また、弊社はマイクロサービス間の通信が多くあるのだが、 それがどこから来たかなども理解できるのが良い点だと思います。
同じようなエラーログが吐かれていないかなどを確認するときに、APMとの連携から見るようにしています。
- Dashboard・Monitoring・Watchdog
- 機械学習によって予見されたエラー (Watchdog)
- ALBの通信件数が予測どおりの推移か
- 5xx/4xxなどのエラーが発生している件数
- CPU・Memoryなどのメトリクス状態
- エラーログの件数状態
- SQSのQueueの数や滞在時間数
などなど、たくさんあるのですが、 例えばこうしたものをDashboardに登録している。 また、マイクロサービスごとにいろいろ管理できるようにTerraformでMonitoringからslackへのつなぎ込みを行っております。
- Dynamic Instrumentation
現在(2025/04現在)はJava、Python、.NETしかGAしていない機能。しかしながら強力なツール。
デプロイされている機能について、Logを埋め込んでいなかったところに、 Logを動的に埋め込む事ができる機能。 再現をすることはわかっているが、なぜ失敗するのかわからないものに対して向いていると思っています。 解析をするためにLogを入れてデプロイをするのは時間がかかるのですが、 動的にログを入れて解析をして、その後OFFにするという運用をすることで、解析時間を短縮できています。
ツールの良い点
- アーキテクチャを工夫すると料金が安くなる
- 不要な機能を削ぎ落としてコストを安くすることもできるので、事業成長とともに課金することができる
- 海外の導入実績が豊富にある点
ツールの課題点
- 新しい機能を試す場合のプランが複雑
- 豊富な機能を試すための評価時間の捻出
ツールを検討されている方へ
NewRelicは安いと聞いたのですが、人に応じて権限付与を変えないと高価になってしまうものになり、人を絞る運用をしてしまうと皆が運用に積極的に取り組む動きができず、結局のところ属人的な解析を生むことにしかならないと感じました。 また、結果的にNewRelicの見積もりとDatadogの価格では1/4程度となり、Datadogのほうが安くついたため、こちらを継続することにしました。
弊社は、DatadogとSentryの2段構えで現在は運用しています。 外部通信とのエラーが起こったときに、Sentryは自動でそのURLやbody requestの情報も記録してくれているので、それが解析としては役立っています。 ただ、Datadogのログとしてそういうのを出せばできるのですが、今はSentryのコストがそんなにかかっていないこともあり、両方使っている形で運用しています。
今後の展望
本来の予算よりもだいぶ安く済んだこともありまして、 時間ができ次第、セキュリティ周りや、CI高速化、Error Trackingに着手していきたいと思います。 Datadogの導入で、運用に慣れができてから機能を増やしていけるという点は、小さい体力がない会社には向いたツールだとも思っています。
Recustomer株式会社 / 眞鍋秀悟
CTO・VPoE / CTO / 従業員規模: 11名〜50名 / エンジニア組織: 10名以下
京都大学理学部に首席で合格し京都大学大学院を経てエンジニアの道へ。新卒のFixstarsではExecutive Engineerとして組織リードし上場を経験。その後Mujinではアーキテクト。続くPreferred NetworksではEMを務めるとともに、物流部門の立ち上げを主導。HacobuではCTO室室長・研究開発部部長として着任。2024年5月よりRecustomerにCTOとして参画。これまで一貫してスタートアップ企業での経験を重ね、技術と事業の両面で組織の成長に寄与しています。
よく見られているレビュー
Recustomer株式会社 / 眞鍋秀悟
CTO・VPoE / CTO / 従業員規模: 11名〜50名 / エンジニア組織: 10名以下
京都大学理学部に首席で合格し京都大学大学...
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法