株式会社DegicaのDatadog導入事例
株式会社Degica / showwin
SRE / 従業員規模: 101名〜300名 / エンジニア組織: 51名〜100名
利用プラン | 利用機能 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
オンデマンド + コミット | パフォーマンス監視、ログ監視、サービス死活監視、セキュリティ監視 | 2022年 | B to B |
利用プラン | オンデマンド + コミット |
---|---|
利用機能 | パフォーマンス監視、ログ監視、サービス死活監視、セキュリティ監視 |
ツールの利用開始時期 | 2022年 |
事業形態 | B to B |
アーキテクチャ
アーキテクチャの意図・工夫
Datadog Agentを各サーバーにインストールしたり、アプリケーションからStatsDを送ってDatadogにメトリクスを送る以外にも、独自のツールを使ってアプリケーションのDBに保存されているようなアプリケーションの内部情報をDatadogに送信している。
これによりアプリケーションの内部状態に対するアラートの実装も可能になっている。
このアーキテクチャでは、RedashがアプリケーションのDBに接続されており、Redash上でDatadogに流し込みたい情報をSQLで記述する。そこに対してRedash PullerというRubyで書かれたマイクロサービスが情報を取得しにいき、OpenMetricsのフォーマットに変形してHTTPのAPIとしてデータを公開している。DD Agentの薄いラッパーであるKumongaというサービスがそのOpenMetricsを読み取りDatadogにデータを同期するという流れになっている。
下半分も同様でWebアプリケーションがJob Queueとして使っているRedisも含めて情報を収集し、そこにビジネスロジックを適用したものを特定のエンドポイントにおいてOpenMetricsのフォーマットで返すようにしている。こちらもKumonga経由でDatadogにデータを挿入している。
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
Datadogを本格的に導入する前は、New Relicを使用してRailsアプリケーションのパフォーマンス監視をして、ログはDatadogでインデクスするという複数サービス使用してサービス全体を監視する形になっており、問題が起きた時の原因調査に手間取ることが多かった。
どのような状態を目指していたか
インフラのリソース監視やログ監視、セキュリティ脆弱性の検知など、すべてを1つのサービスに統合して、このサービスを見れば全部必要な情報が集まるという状態を目指しDatadogへの完全移行をすることにした。
比較検討したサービス
- AWS内で完結させる (クラウドプロバイダはAWSを使っているため)
- Prometheus
選定理由
AWSにはパフォーマンス監視(APM)の機能以外はだいたいマネージドサービスが提供されているが、Datadogと比べるとUIの作り込みが弱く、直感的に操作しづらいという問題がある。
Prometheusはリソース監視やログ監視には強みがあるが、セキュリティ周りのソリューションは提供していない。また当時この領域を担当していたチームメンバーが2,3人しかいないということで、Prometheusを自前で管理する手間を考えるとSaaSであるDatadogに分があった。
導入の成果
改善したかった課題はどれくらい解決されたか
すべてのデータがDatadog内に集まり、ロードバランサーのログから、APM、インフラリソースのメトリクスまで一気通貫してトレースすることができ、対象のメトリクスから関連するログへのジャンプなども一瞬でできるようになったので、トラブルシューティングがとても効率よくできるようになった。
導入に向けた社内への説明
上長・チームへの説明
New Relicで見ていたAPMのデータと同等のものがDatadogで見れることが大前提であったため、まずはPoCとしてDatadogのAPMを入れてみて問題なく移行ができることを確認した。
費用に関してはDatadogに移行することで増加することが分かっていたが、Datadogに移行することで得られるメリット(情報を一元化することによる、End-to-Endのトレース、トラブルシューティングの効率化等)が十分にあることも分かっていたので、コストが増加する分以上に価値があることを説明した。
活用方法
よく使う機能
- APM
- アプリケーションのエラーレート、レイテンシーの監視
- デプロイの前後で大きくエラーレートが上昇していないかなどを確認
- 外部サービスとの連携部分もAPMを使って、外部サービスからのレスポンスのHTTP Status Codeなどを確認
- ログ
- DNS, CDN, ロードバランサー, アプリケーション, ネットワークのFlow log, GitHubの監査ログ等をインデクスして異常検知
- アプリケーションのログは開発者が直接見てデバッグにも活用
- モニター
- インフラの各種メトリクスに対するモニターを作成
- 最初で説明した社内ツールを使用することでアプリケーションの内部状態をRDBなどのミドルウェアから引っ張ってDatadogに同期しているので、アプリケーションの内部状態に対するモニターも作成可能
- ダッシュボード
- インフラやアプリケーションのメトリクスを目的毎にまとめるために作成
- チームや機能ごとにダッシュボードを作成することでオーナーシップを明確にしている
ツールの良い点
- セットアップが簡単で、少人数のチームでも大規模なインフラを容易に監視が可能
- メトリクスから関連するログへのジャンプが簡単にできるので、問題の原因調査が効率よくできる
ツールの課題点
- 監視対象を絞らないと費用が高額になりがち
- ログやメトリクスの量に料金が依存するので、DDoS攻撃を受けるとそれに伴って料金も高くなることもあり、費用の見積もりが難しい
ツールを検討されている方へ
インフラを見ているエンジニアが少人数の場合、低い運用コストで広範囲の監視ができるのでオススメです。 一方で十分な数のエンジニアがいる場合はPrometheusなどのOSSを使用する方が、運用コスト(人件費)を考慮してもトータルのコストは節約できるかもしれません。
株式会社Degica / showwin
SRE / 従業員規模: 101名〜300名 / エンジニア組織: 51名〜100名
よく見られているレビュー
株式会社Degica / showwin
SRE / 従業員規模: 101名〜300名 / エンジニア組織: 51名〜100名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法