株式会社ぐるなびについて
1996年6月の飲食店情報サイト「ぐるなび」開設以降、飲食店等の情報提供サービスを中心に、幅広い業務を展開し続ける株式会社ぐるなび (以下、ぐるなび)。この分野における“老舗”として業界をリードする同社は、総掲載店舗数約50万件、有料加盟店数58,951店*1、月間ユニークユーザー数6,100万人*2、会員数1,796万人*3という圧倒的な実績を誇るだけでなく、集客支援から店内ICT支援に至るまで一気通貫でのサービスの提供によって、店舗に来店するお客様とそれを迎える店舗の双方に対して高い付加価値を提供している。2018年からは、SNSと連携した送客サービスや楽天IDとの会員連携による送客強化、店舗でのキャッシュレス化に貢献する 「ぐるなびPay」といったサービスも提供を開始している。
一般ユーザーが意識するのは、スマホやPCから参照する店舗紹介情報などだが、これはぐるなびが提供するサービスのほんの一部に過ぎない。同社では店舗側の顧客管理を支援する台帳サービスや、マルチ決算を実現するぐるなびPayなどを提供することで、店舗運用のためのICT環境を包括的に支援している。そして言うまでもなく、これらを実現できる背景には膨大な量におよぶログデータの存在がある。
*1:2019年 9 月 末現在 *2:2018年 12 月現在 *3:2019年 10月 1 日現在
大量ログの解析に不可欠な高速検索の実現に向けElasticを採用
インターネットを介した飲食店等の情報提供サービスにおいて、国内での先駆け的な存在であるぐるなびは、以前からそのサービスを支援するための大規模なICT環境を運用してきた。当然のことながら、システムから出力されるログの量も膨大なものとなり、その分析作業には大きな作業負荷と共に多くの時間が費やされていた。
開発部 エンジニアリング セクションで副セクション長を務める岩本俊明氏は、当時の状況について次のように話す。
「2016年頃は、ぐるなびでは、既に数千台規模のサーバーを保有していました。この運用で障害が発生した場合やメンテナンスの際には、ログを確認するために対象となるサーバーに直接ログインしてgrepコマンドで内容を参照したり、scpコマンドで一旦ローカル環境へログをコピーしてから対処するという手順を取っていました。このため、調査完了までに少なくとも1時間以上かかり、リアルタイム性を欠くと共に多くの手作業が発生し、見落としなどのケアレスミスも目立つようになりました。システム規模やログの量が拡大し続ける中、何らかの対策が必要になりました」
ここで浮上してきたのが、ElasticsearchおよびKibanaというElastic Stack製品だった。
Elastic Stackでは、提供される幅広い製品コンポーネントによって、対象データをローカル環境へダウンロードすることなく、複数の情報源を横断する形でのリアルタイムな高速検索が可能だ。サービスの増加・高度化に伴って、アプリケーション間でのAPIコールが多発し、複数のログを対象にした分析が不可欠となった同社にとって、Elastic Stack製品は正に最適なソリューションであった。「当時、競合製品と呼べるようなものは一切存在せず、一択の形でElasticの選定を決定しました」(ぐるなび岩本氏) 。こうして2016年からElasticsearchおよびKibanaの実運用が開始された。
バージョンアップの負荷軽減に向けElastic Cloudを導入
実運用開始から数年が経過した2018年後半、同社ではAWS環境の利用を開始する。そして、
このタイミングに合わせる形で、同時期に切り替えのタイミングとなっていたElastic Stackのライセンスの一部をクラウド向けに切り替え、Elastic CloudのElasticsearch Serviceの利用を開始した。この狙いは、AWS環境のログの収集・解析の実現とElasticのバージョンアップに伴う運用負荷の軽減だ。
岩本氏は、「AWS Cloudwatch Logsのログについても、2018年時点で既に使用していたKibanaの高度で使い慣れた画面を通じて参照したいという要望がありました。ログデータ取集等の機能も含め他社比較を行いましたが、コスト面、性能面、そして、常に最新のものが利用できる点でもElastic Cloudが優位と考えました。実現にあたっては、および Elasticsearch を利用することにしました」と話す。
同様に重視したのがバージョンアップ等に伴う運用負荷の軽減だ。技術を持っている岩本氏に作業が集中するという“属人化”した状況の回避が不可欠だったのだ。「頻繁に行われるバージョンアップに際して、実際に対応できるのが自分だけであったため、作業負荷が非常に高くなっていました。Elastic Cloudを採用することで、このような課題も解決できると考えました」
(ぐるなび岩本氏)。
こうしてオンプレミスからクラウドに至るまで、ぐるなびにおける包括的なElastic環境が整備された。
全アプリとネットワーク機器からのログに対する高速検索を実現
ぐるなびの現在のシステムでは、全てのアプリケーション、ネットワーク機器等から取得されるログとして、50種類のデータソース、総データ量500億のドキュメントをハンドリングしている。
データの抽出については、オンプレミス環境の大容量クラスタからのログデータは、LogstashによりElasticsearchに引き渡され、また、クラウド環境(コンテナ含む)でのCloudwatch Logsデータについては、前述の通りFunctionbeatからIngestと引き渡される。S3データはLogstashを介してElasticsearchに引き渡される形で対応を行っている。全てのログを透過的、横断的に把握できることで、障害対応だけでなく、より戦略的な用途でも活用できるようになっている。
岩本氏は、「弊社のシステムは、サービスサイトの関係で言語も多岐にわたり、またアプリケーションの性質によっては取得するログデータの種類も異なり、様々なインデックスが存在するといった状態です。クラウドを含めてそれらを横断的に見たいというのが開発者側の希望でしたが、今回の包括的なElastic環境の導入により、これが可能となりました」と話す。
迅速な障害対応、運用負荷の低減、さらに新たな情報活用を実現
Elastic Stackの全般的な導入効果について、岩本氏は、最初に2つのポイントからその評価を語った。
「まず、以前の手作業によるログデータのコピーや内容確認に費やされていた1時間以上の対応時間が、わずか数秒に短縮された効果は絶大なものです。これにより、障害発生から調査結果把握までが迅速化され、その精度も各段に向上しました。提供されるAPIを活用することでログ発生時のアラートも、SlackやWebhookに送り、迅速な対応に繋げることができるようになりました。またElastic Cloudについては、無停止でバージョンアップができ、切り替えに伴う大きな作業負荷も発生することなく、常に最新の提供機能が利用できる点が大きな導入効果と言えるでしょう。以前、ほぼ自分1人で他の作業と並行して対応していた際には、調査も含めて5〜10日前後もかかったバージョンアップ対応が、今ではほとんど時間をかける必要がなくなりました」(ぐるなび岩本氏)。
さらに、新たなインバウンド戦略への貢献という導入効果も見逃せない。
たとえば、Elastic Stackを活用することで、Geolocationからアクセス元の情報を抽出して可視化することができる。岩本氏は、「AWS環境におけるCDNサービスであるAmazon Cloud Frontのログから、各国ごとにどのようなアクセスが発生しているかを可視化できます。なぜここはアクセスが多いのか? また逆にこちらのアクセスが少ない理由は?という問題提起が可能となり、さらに情報をドリルダウンすることで該当の配信先に問題が発生していたといった事実なども明らかになります。これらを基にして配信速度を上げるための施策や、キャンペーンなどを打つタイミングを想定するなど、今後のインバウンド戦略から考えても非常に大きな効果が得られると考えています」と強調する。
そして、この直感的な判断に貢献しているのが、Vegaを使用したビジュアルなデータの可視化だ。Kibana 6.2の新機能として、Elasticsearchデータを使用しVegaおよびVega-Liteでリッチなビジュアライゼーションを作成することが可能となった。これにより、膨大なデータから得られる情報をより俯瞰した形で把握し、直感的な判断が下せるようになる。ITのスペシャリストではないマーケティング担当者や経営層などにとっても有効な機能となる。
Elasticの導入メリットを総括する形で、最後に岩本氏は「現状の複雑なシステム環境とこれに伴う膨大なログデータとを考えた場合、Elastic Stackが存在しない状況はとても考えられません」と強調する。
ビジネス戦略用途での情報の活用を拡大
高速なログ情報の検索とクラウドの採用によるバージョンアップ時の負荷軽減を実現したぐるなびでは、既により戦略的な目的に向けElastic Stackの活用を検討している。
岩本氏は、「Elastic Cloudを含めたElastic環境が整い、運用上での属人的な制約からも解放されたことで、その用途が各段に広がってきます。たとえば、アプリケーション側の担当者が作ったダッシュボードでは、KPIに沿った形で見込み顧客のコンバージョンやその推移が表示されていました。障害対応などシステム管理側の用途だけでなく、このようなビジネス戦略上の用途でもログデータを最大限に活用することで、より高い付加価値の創造が可能となると考えています」と抱負を話す。
来店するお客様とそれを迎える店舗の双方に対し、高い付加価値サービスを提供し続けるぐるなび。
そのサービス実現の源泉となる総数500億ドキュメントにおよぶ膨大なログデータを最大限に活用するために、Elastic Stackは不可欠な存在となっている。