DX開発事業部の田村です。
Google Cloud Next Tokyo ’24より、1日目に拝聴したセッションの様子をご紹介いたします。
セッション情報
セッションタイトル:Sansan x Splunk:Cloud Run 環境のオブザーバビリティを高める方法
スピーカー:Splunk Services Japan合同会社 大谷 和紀 氏、Sansan 株式会社 前田 英司 氏
セッション概要
Sansan株式会社が提供する「インボイス管理サービス」Bill Oneは、コンテナ実行環境としてCloud Runを利用し、10を超えるマイクロサービスで稼働しています。
毎月数億件のトラフィックをトラブルなく運用するために「どこで何が起こっているか」の把握が不可欠です。
Splunk Observabilityを使ってどのように状況を可視化し、プロアクティブな障害対応を実現したかをご紹介します。
セッション内容
このセッションでは請求書業務を管理するアプリであるBill Oneの運用に関して、インフラの選定理由やSREを進める上での課題などについて質問に答える形でお話しされていました。
- Cloud Runを選んだ理由は?
- SREを進める上での課題は何?
- オブザーバビリティに着目した理由は?
- 導入した結果、どうなりましたか?
Cloud Runを選んだ理由は?
当初はApp Engineを使う運用とCloud Runを使う運用の2パターンが想定されていたが、Cloud Runを選んだ理由は「安いから」
App Engineでは稼働していると課金が発生するが、Cloud Runは稼働していた時間のみに課金されるため料金も安くなる。
また、コンテナを立ち上げれば動くため検証が簡単という点があり、マイクロサービスで構成していく上で都合が良かったようです。
リクエストのタイミングが日中や平日など偏る場合や、今回の請求書業務のように月末月初にピークがあるシステムの場合はコンテナを最適にスケーリングさせていけるCloud Runがベストな選択になってくる。当初は3つほどのコンテナ構成だったが、現在は数十を超えるコンテナ構成となっているようで、マイクロサービスアーキテクチャのメリットを享受しつつシステムを拡張していける点はCloud Runならではだと思います。
SREを進める上での課題は何?
SREを進める上で課題となる点は「マイクロサービスアーキテクチャは運用が難しくなる」とのことでした。
マイクロサービスアーキテクチャとして拡張が容易にはできるもののその数が増えれば増えるほど、全容を把握したうえでの運用が困難で不可能になってくる。現在は数十を超えるコンテナ構成となるなか、スピーカーの方も自身の担当範囲を超えるサービスの細かな仕様はどうしても把握しきれないと話されていました。
肥大化するサービス構成の中では、各サービスにおけるレイテンシを把握することは重要で、マイクロサービスがどのくらいのレイテンシかCloud LoggingやCloud Monitoringを使って見えるようにしており、ほぼ全てのエラーを検知しているとのことでした。
オブザーバビリティに着目した理由は?
Google CloudのMonitoringやError Reportingを使ってエラーが出た際のトレース自体は可能だったが、ピーク時の月初にレイテンシが発生してエラーが出た際に、大量のエラーの中からエラー原因を探し出すことが難しいことやエラーしか見えないためトレースが大変という課題があるようでした。これらの解決のためにSplunk社のオブザーバビリティに着目したようです。
エラーを探してトレースする作業は良くも悪くもエンジニアの技量に依存してしまう部分があり、これは運用の観点からは不健全と言わざるを得ないうえ、特定の人に依存してしまうことになってしまう。また、月初にリクエストが跳ねる現象は再現しづらく、デバッグがしづらいということで、原因分析をどこまでできるかがポイントととなってくるようですね。
導入した結果、どうなりましたか?
今回はオブザーバビリティを導入することで、レイテンシが遅くなる理由が特定の機能に依存しているからといった原因特定を行えるようになったり、システム構成の把握を行いやすくなるという点に着目したと話されていました。
またオブザーバビリティを使っていないと仕様に関してはドキュメントを参照する必要がありました。ドキュメント自体は重要だが、変化するシステムにおいては正確性にかける部分もありました。
システムの仕様を担当エンジニアが属人的に握っているケースは多いと思いますし、これをチーム全体にうまく回していくことはシステム運用の観点では非常に重要なポイントだと思います。
さいごに
今回はCloud Runにデプロイしたマイクロサービスアーキテクチャのシステムについて、運用で抱える課題とオブザーバビリティの導入によるメリットがわかるセッションでした。
私も最近はCloud Runを使った開発をすることが増えてきていたため、実際にCloud Runでサービスを運用するなかで発生した課題やアプローチ方法という内容はかなり興味深かったです。
最後までご覧いただきありがとうございました。