本セッションの登壇者
セッション動画
株式会社MIXIの清水勲と申します。 2011年に株式会社MIXIに入社し、現在は家族アルバム みてねのSREをしています。
オブザーバビリティとは?
オブザーバビリティはSREにとって非常に重要なテーマです。GoogleのSREに関する書籍「Site Reliability Engineering」にはサービスの信頼性の階層を説明した図(Service Reliability Hierarchy)が掲載されています。その最下層にはモニタリングが定義されており、モニタリングからサービスの信頼性のすべてがはじまると言っても過言ではありません。今回は、そのモニタリングと関連が深いオブザーバビリティの基本をご紹介します。
モニタリングとの違いは?
別の書籍「オブザーバビリティ・エンジニアリング」の第1章には、「モニタリングは既知の未知を扱いますが、オブザーバビリティは未知の未知を扱うのです」とあります。この1文だけでは違いがわかりにくいのですが、もう少し噛み砕いて解説します。
モニタリングとオブザーバビリティを並べて比較すると、下記のように整理できます。
- モニタリング … 既知の未知 (すでにわかっている対象を監視する)
- 局所的な監視(CPU/メモリなどの旧来からある監視)
- システムが正常かどうかを確認する
- あらかじめ設定したメトリクスやログの収集
- オブザーバビリティ … 未知の未知 (予期しない問題を調査/解決する)
- システム全体の可視化/理解
- 予期しない問題の調査/解決 … 今後発生するかわからないが、オブザーバビリティにより、問題が発生したときの調査/解決につながるようにする
- メトリクス、トレーシング、ログなどの収集/分析
オブザーバビリティのほうがモニタリングより優れているというわけではなく、それぞれ異なる目的をもつ手法であるということが重要です。
トラブルが起きたとき、スピーディーに原因調査と解決をしたいという目的には、モニタリングだけでは足りず、オブザーバビリティを強化する必要があります。
オブザーバビリティの導入
オブザーバビリティを導入する際の基本のステップは、次の2点です。
- メトリクス、トレース、ログなどの情報を収集して保管する
- 保管した情報を分析しやすいように集約/加工し、分析してグラフ、テーブル、リストなどに可視化する
世の中にはオブザーバビリティのためのさまざまなツールがあり、代表的な製品は次のとおりです。
- AWS向け … Amazon CloudWatch / X-Ray / Managed Service for Grafana / Managed Service for Prometheus
- Google Cloud向け … Cloud Logging / Cloud Monitoring / Cloud Trace / Cloud Profiler
- New Relic
- Dynatrace
- AppDynamics
- Splunk
ほかにもオープンソースのものなどさまざまな選択肢がありますので、それらを比較して使用するのがよいでしょう。
導入のポイント
これらのオブザーバビリティのためのツールを比較/検討して導入する際には、次の点を考慮します。
- 使用しているアプリケーション(言語/フレームワーク)、クラウド、インフラ(VM/コンテナ/オーケストレーションツール)に適したものを選ぶ
- データ量、ユーザー数、サーバ数などによってコストは変動する(料金体系は製品によって異なる)
- メトリクス、トレース、ログそれぞれが連携できると非常に効率的である(別々のツールで収集する場合は、連携できるようにしておく)
- 運用者/SREだけではなく、開発者が使って問題を調査できるものを選ぶ
まとめ - オブザーバビリティによってスピーディな課題解決を
前半にお伝えしたように、オブザーバビリティはスピーディな課題解決につながります。まだ導入していない、または検討していない方は、この機会にオブザーバビリティとは何かを理解し、今後の課題解決がスピーディになるように、オブザーバビリティとそのためのツールの導入を検討してみてはいかがでしょうか。
ご清聴ありがとうございました。