株式会社ギックス:フロントエンドを Cloud Firestore、バックエンドを GKE で、ビッグデータ活用サービス『トチカチ』を構築
Google Cloud Japan Team
株式会社ギックスが提供する『トチカチ』は、ドコモ・インサイトマーケティング社の提供するモバイル空間統計®をもとに、指定したエリアの人の動きをレポート化するサービス。これまでは主に不動産価値の算出や飲食店の出店戦略などに使われていましたが、COVID-19 流行を受けて報道機関からの引き合いが増えるなど、さらなる利用の拡大が進んでいます。ここではそんな『トチカチ』が Google Cloud をどのように駆使しているのかをフロントエンド、バックエンド双方の視点から語っていただきます。
利用している Google Cloud ソリューション : データベース モダナイゼーション、アプリケーション モダナイゼーション
利用している Google Cloud サービス:Cloud Firestore、Google Kubernetes Engine(GKE)、BigQuery、Cloud Pub/Sub、Firebase など
BigQuery と Google Kubernetes Engine の活用で高速なレポート出力を実現
ギックスが設立された 2012 年は、Google Cloud Platform(GCP)を始めとする各社クラウド プラットフォームが出揃い、劇的に勢いを加速させていた時期。そうした背景のもと、同社では当初からクラウド ファーストな事業展開を進めていました。
「実は創業当初は他社のプラットフォームを使っていたのですが、2017 年ごろにクライアントからの要望で BigQuery を使う案件があり、そこでその圧倒的な速さに驚いて、以降、BigQuery を社内標準にしたという経緯があります。」(花谷さん)
これをきっかけにギックスでは Google Cloud の本格的な利用が加速。現在は自社プロダクトでは原則として Google Cloud を標準活用、2019 年末にスタートした新サービス『トチカチ』にも、Google Cloud が使われており、それによってわずか 2 人のエンジニアによる開発と運用が実現できたと言います。
『トチカチ』のアドバンテージは、Web アプリ上に表示される地図の中からユーザーが任意のエリアを選択して購買処理を行うと、わずか数分でレポートが上がってくること。従来の人口動態データ提供サービスは依頼からレポートの提出まで 1 週間程度かかるものが主で、スピーディな事業検討の妨げになっていました。
「『トチカチ』では、購買処理が行われると Cloud Pub/Sub 経由でバックエンドにリクエストが走り、BigQuery に保存されているモバイル空間統計®から必要なテーブルを書き出して、そこに天候データなどを統合して機械学習を回します。出力されたデータは、レポートに出せる形にしてフロントエンドの Cloud Firestore に格納。その基盤を GKE 上に構築しました。機械学習に関しては、1 つのレポートを表示する際に、数十のモデルで学習と推論を実行しています。GKE で並列で効率良く回していくことで、大量の購買処理が来た場合でも上手く処理できるようにしました。」(廣津さん)
なお、分析の要であるモバイル空間統計®は、大きなもので 1 つのテーブルあたり 3TB もの大きさがあるとのこと。『トチカチ』では、2015 年 1 月以降のデータを保持しており、そのデータは今も 1 時間単位で追加され続けています。こうした膨大なデータを高速に処理するためにも、BigQuery と GKE の採用は必須でした。
「実は、設計当初は GKE を使わず、Compute Engine で普通にインスタンスを立てて回していたのですが、それだとリアルタイムにはほど遠い 10 分以上もの時間が掛かっていたんです。それを GKE に置き換えたところ、モデルがスピーディに回って結果的に約 2 分程度にまで高速化できました。」(堀越さん)
こうした並列処理はもともと Kubernetes の得意とするところで、特に難しいことはやっていないという廣津さん。とは言え、コスト削減のためにいくつかの工夫はしていると、現在の運用について次のように語ってくれました。
「1 件のレポートを約 2 分程度で完了できるため、ノードを常に確保しておく必要がありません。そこで基本的にはプリエンプティブル VM インスタンスで最小限のノードだけ確保しておき、リクエストに応じてノードを増減させて費用を削減しています。こうしたニーズにあった構成を自分で考えて組めるというもの GKE の良さではないでしょうか。」(廣津さん)
そのほか、Web UI がリッチでコマンドを叩かずとも必要な情報を一通り確認できること、Cloud Logging でリアルタイムにログを確認できることなどが便利だと廣津さんは評価します。
「とにかくマネージドなので、私が面倒を見なくて良いというのが大きいですね。1 人でバックエンドをやれているのは GKE のおかげですし、本来やるべき本質的なところに取り組めていると思います。」(廣津さん)
Cloud Firestore / Firebase のおかげでフロントエンド開発もスピーディに
バックエンドで BigQuery や GKE がフル活用されている『トチカチ』ですが、フロントエンドにも Google Cloud を採用。ユーザー情報やレポート情報を Cloud Firestore で管理しているほか、ログイン認証に Firebase Authentication (Identity Platform)を利用するなど、ユーザーが直接アクセスする Web アプリのほとんどの部分が Cloud Firestore と Firebase に依拠しています。
「Cloud Firestore / Firebase の良いところは Cloud Firestore のサブ コレクションなど、柔軟にデータ モデリングできる機能を用意してくれていること。Cloud Firestore を使っていなければ、裏に RDB を置いて、そこでユーザーやレポートの情報を管理し、それをフロントで受け取って見られる状態にする手順を踏む必要がありますが、Cloud Firestore なら、必要な情報をツリーの状態で JSON のようにつなぎ合わせた 1 つのデータモデルを作ることができ、フロント側で管理したいデータの取り扱いを Cloud Firestore 内で完結できます。その反面、柔軟性があるぶん、アンチパターンを踏んでしまったことも何度かあるのですが、使いこなせばやりたいことを一通りできてしまうというのは、考えてみればすごいことだなと思っています。」(堀越さん)
また、フロントエンドに Cloud Firestore を採用したことは、開発の効率化にも貢献していると堀越さんは言います。
「たとえば Web UI の表示について試行錯誤する際には、これまでバックエンド側に API を立ててもらって必要なデータをフロント側で取れるようにしてもらうなど、きちんとコミュニケーションを取りながら進める必要がありました。その点、Cloud Firestore なら自分で Cloud Firestore にダミーデータを入れて、UI のイメージを固めていくことができます。そのおかげで、フロントエンドも自分 1 人でスピーディに開発を進められました。」(堀越さん)
さて、こうしてサービス開始された『トチカチ』ですが、現在は、アフター COVID-19 の世界を想定した機能追加に取り組んでいるとのことです。
「COVID-19 によって、世界があまりにも変わってしまいました。そこで『トチカチ』では、COVID-19 がもしなかったらこうなっていたであろう“パラレル ワールド”の人口動態を機械学習によって導きだし、COVID-19 禍となった現実世界の人の動きと比べられるような新機能を開発中です。これによって時間経過と共に世界が COVID-19 前の世界に戻っていくのか、離れていくのか、それとも違う形に変わっていくのかをよりビビッドな形で確認できるようになります。これが、インフラ、飲食チェーン、そしてメディアなど新しい行動を模索する人たちにとって、何らか価値あるデータになるのではないか、また、”パラレル ワールド”と”現実世界”との比較が見えることで何か新しいアクションを起こすきっかけとなるのではないかと考えました。そして、これらの機能を実現していくにあたって Google Cloud を選んだのは、その時一番良いものを使っていきたいという姿勢を追求していったから。Google Cloud には今後もこれまで通り、尖った、良いサービスを出し続けていっていってほしいと思っています。」(花谷さん)
『トチカチ』のレポート画面イメージ。直近の人口推移、年代別前週比などに加え、パラレルワールド比の提供も。
(写真左から)
・取締役 事業推進担当 花谷 慎太郎 氏
・MLOps Div. マネージャー 廣津 雅章 氏
・MLOps Div. ディビジョン・リード 堀越 豪 氏
2012 年に創業されたコンサルティング カンパニー。データを活用した各種コンサルティング業務を中心に、データ分析に関わるツールの研究・開発および、それを利用した各種サービスの提供などを行う。2019 年12 月にはドコモ・インサイトマーケティング社の提供するモバイル空間統計®️を利用した、土地の価値を可視化するサービス『トチカチ』の提供を開始した。従業員数は 19 名(2020 年 6 月末時点)。
その他の導入事例はこちらをご覧ください。