前編では、Splunkのビジネスの現状とソリューションの方向性、そして「デジタルレジリエンス」の実現に向けた取り組みについて紹介しました。後編では、数あるブレイクアウトセッションの中から、株式会社ZOZO(以下、ZOZO)の技術本部 SRE部 ディレクター 渡邉 宣彦氏をお迎えした事例発表をお届けします。渡邉氏は、ミッションクリティカルなソフトウェア開発やECサイト構築の経験が豊富で、現在はZOZOのインフラ構築および運用を担当されています。
ZOZOの運営するファッションEC「ZOZOTOWN」は、2000年にスタート。以来、急速な成長を遂げましたが、そのインフラ部分は長く変更していませんでした。Windows ServerおよびIIS上にVBScriptとClassic ASPで開発したアプリケーションを稼働させ、データベースはSQL Serverを基盤に、SPを活用しデータに近い場所で処理するという当時のオーソドックスな手法です。マイクロソフト製品で固めてフロンドエンドからバックエンドまでの連動性を高め、高速に処理できることが大きなメリットでした。
ビジネスが大きく成長する過程で、ハードウェアのスケールアップを繰り返すことで対応してきましたが、いくつかの問題点も顕在化してきました。最大の問題は、ニーズに合わせてスケールしづらいこと。セール時期などアクセスが増える時期にマシンを物理的に増設する必要があったのです。
渡邉氏は、「セールのピークを予測するのは担当者の勘と経験に頼る部分が大きく、至難の業でした。ハードウェアのライフサイクルは一般的に5年程度のため、5年間のビジネスの成長を加味して調達するのですが、リソースの維持コストは大きな負担でした」と話します。「古い技術を使っているため、人材採用の観点でも難航していた課題もありました」
2017年4月、ZOZOはサイト開設以来のシステムをリプレイスすることを決断しました。これら2つの課題を解決すると同時に、エンジニアの開発生産性を高めることができ、最新のテクノロジーを利用できるインフラを構想したのです。
システムの移行は、段階的に進めることになりました。まずは、参照系ワークロードをパブリッククラウド上に移行し、既存システムを生かして並存させる状態へ持っていくことに成功。ただし、ここで3つの問題が発生します。
まず、システム全体に対してアプリケーションパフォーマンスモニタリングをかけられないこと。次に、従来の監視手法をそのまま踏襲してしまったことです。具体的には、CPU、メモリ、ネットワークなどさまざまな監視対象のリアルタイムデータを1つの画面に並べて表示し、目視確認していました。最後に、既存システムを運用するオンプレミスチームと、リプレイスを担当し、クラウド側を運用していたチームが、個別に監視業務に当たっていたことです。この仕組みでは開発面は良かったものの、運用の観点では非効率といえる状況になってしまっていました。
運用業務を円滑に回すために、チームを分けた運用体制を確立することは避けて通れません。問題が発生した際に両者が共通の情報を参照し、セクショナリズムにとらわれず根本的な原因の特定を急ぐ体制を取るために、ZOZOはSplunkを採用することにしました。監視をモダナイズして網羅的な可視化を実現し、運用面を改善することに加え、2つのチームが強固な協力体制を築くことにも寄与すると判断しました。
2019年10月、日々400GBのデータを可視化するスケールでSplunk Cloudが稼働。リモートのリソースから安全にデータを収集するUniversal Forwarderを使ってIISのログとメトリクスをSplunk Cloudに転送することで、網羅的な可視化が実現しました。
「Splunkでは監視サーバを確認すればすべてがわかります。オンプレミスとクラウド間のレスポンス状況も一目瞭然になりました」(渡邉氏)
Splunk Cloudをより良く活用するために、追加サービスも利用しています。Splunkでは、データの収集をサポートし、特定データの取り組みとフィールドの定義を提供するものを「Splunk Add-on」、取り込んだデータを可視化するダッシュボードなどのツールを「Splunk Apps」と呼んでいます。これらはSplunkbaseを通して提供されており、ZOZOは3つのAdd-onを利用しています。
サーバのログだけでなく、パフォーマンス状況も合わせてUniversal Forwarder経由でSplunk Cloudに転送することができます。サーチが軽い点もこのAdd-onを高く評価したポイントです。
サーバからAPIへの内部通信の状況を可視化できます。クラウド側APIのレスポンス状況がわかるため、オンプレミスチームとクラウドチームが問題の原因を切り分けて対処する際に役立っています。データのインゲスト量が大きく増えるため注意は必要ですが、それ以上の価値があります。
データベースのパフォーマンスをSplunk上で可視化できます。このAdd-onから直接クエリを発行してSplunkに結果をIngestすることもできるため、運用担当者はデータベースにログインすることなく細部まで監視することができます。
こうして、ZOZOはSplunkで監視業務をまとめ、さらにだれもが扱いやすい画面も作り上げました。ダッシュボードには、リアルタイムな状況をビジュアルに映し出します。たとえば、「メトリクスとレスポンス」や「アクセス数とレスポンス」など、同時にチェックしたい情報は同じ画面に描画するようにしました。担当者は、複数の画面を遷移したり、別のグラフを見比べたりする必要はなくなり、状況を直感的に把握できるようになりました。
CPUの負荷状況は色分け表示して全体を一目でわかるようにし、エラー状況の表現のやり方にも工夫してわかりやすい画面を提供しました。また、サービスレベル目標の達成状況を月次で確認できる仕組みもSplunk上で運用しています。データは一気に取り込まず、日次で集計ジョブを回すことで低負荷な仕組みとして実現できました。
2019年のスタート時点では5~6人だったSplunk利用者数は、現在40人を超える規模に拡大し、1日当たりの取り込みデータ量は10倍以上の4500GB。契約体系は、データ取り込み容量ベースのIngest PricingからCPUベースのWorkload Pricingへと切り替えました。ZOZOTOWNの可観測性は大きく進歩し、SRE部のスタッフだけでなく、開発者もSplunkでサービスの稼働状況を把握できるようになりました。
渡邉氏は、「SRE部だけでなく、開発組織全体のコミュニケーション改善にSplunkは大きく寄与してくれました」とプロジェクトを総括してくれました。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。