株式会社 unerry:Beacon Bank に Google Kubernetes Engine を採用、急なアクセス数増加にも柔軟に拡張
Google Cloud Japan Team
「世界に“うねり”を起こすプラットフォームを創る」という理念に基づき、“オフライン行動”も含めた顧客理解を前提とし、マーケティング コミュニケーションの観点から新たなビジネス価値の創造に取り組む株式会社 unerry(以下、unerry)。日本最大級のビーコン ネットワークを利用したオフライン行動データ プラットフォーム「Beacon Bank」の開発について、CTO とエンジニア、2 人のキーパーソンに話を伺いました。
利用している Google Cloud Platform サービス:Google Kubernetes Engine、Cloud SQL、Cloud Memorystore、Cloud Pub/Sub、Cloud Storage、BigQuery、Cloud Scheduler、Stackdraiver、Cloud IoT Core
App Engine はスモールスタートに最適なサービス
Beacon Bank は、登録されている 約 150 万個(2019 年 12 月現在)のビーコンと GPS データから、消費者の日常の行動範囲や行動の特徴などを解析し、CRM や販促広告配信などのマーケティング活動に生かすことができるオフライン行動分析プラットフォームです。提携各社が保有するビーコンをシェアしネットワーク化することで、精度の高いオフライン行動ビッグデータを実現しています。
そしてそのデータをベースに、来店者数の地域内シェアを訪問ベースで可視化したり、同日の他店併用利用状況や来店前後に立ち寄る傾向が高い場所を把握したりすることが可能なため、店舗内外での消費者行動のコンテクストを理解し、それに基づいた施策を打つことができます。
例えば、店舗などに設置されているビーコンの電波を、スマートフォンにダウンロードされたアプリでキャッチしクラウドに送信することによりスマホアプリの利用者が来店したことを検知。消費者ごとにあわせた施策として、商品やサービスの情報、各種クーポンなどをその場で配信することもあれば、来店ポイントを自動でプレゼントすることもある、その場だけで見られるコンテンツを配信して新たな楽しみを提供することもある、といった具合です。
当初、Beacon Bank は、純国産のクラウドサービスを使って構築されていましたが、半年後には会員数が 10 倍以上になることが予測されていたことから、プラットフォームの再構築を計画、いくつかのクラウドサービスを検討した結果、Google Cloud Platform(GCP)を採用することを決定します。
GCP 採用の理由を、その中心的役割を担ったエンジニアの蔵谷さんは、次のように語ります。「開発エンジニアが少なかったので、フルマネージドのクラウドサービスが必要でした。GCP は、フルマネージドで利用できるので、開発時にインフラを気にする必要がなく、エンジニアがアプリケーションの開発に集中できたので本当に助かりました。」
GCP への移行に伴うアーキテクチャ変更と、大幅な機能追加を目標とした Beacon Bank の開発は、2017 年 4 月よりスタート。4 名のエンジニアが、約 3 か月で開発し、7 月にリリースしています。当時のシステムは、SDK API サーバーおよび Web API サーバーとして App Engine を、データベースとして Cloud Datastore を採用。ログを Cloud Storage に蓄積し、BigQuery で分析する構成になっていました。
「GCP は初めての利用でしたが、コストメリットがもっとも高かったので、思い切って採用しました。App Engine と Cloud Datastore は、接続がなければコストが発生しないので、特に今回のようなスモールスタートの開発においては、初期費用を抑えることができ非常に有効でした。」(蔵谷さん)
Cloud SQL の参照系レプリカ設定だけで 2 倍のユーザーを処理
開発当初は、問題なく稼働していた App Engine ベースの Beacon Bank ですが、提携企業が増え、スマホアプリの利用者も順調に増え続けたことから、データ接続の上限に達してしまいます。そこで、Google Kubernetes Engine(GKE)を利用して、Beacon Bank のプラットフォームを再構築することを決定します。
GKE を採用した理由を蔵谷さんは、「当初は、新しいアーキテクチャでも App Engine と Cloud Datastore で構築しようと思っていました。しかし App Engine では、ユーザー数が増えたときの対応の柔軟性に限界があります。そこで GKE を採用して、よりスケールしやすい仕組みを実現することが有効だと判断しました」と話します。
Beacon Bank の再構築は、2018 年 8 月より約半年かけて実施。途中、11 月と 2019 年 1 月に仮リリースを行い、トライ&エラーを繰り返し、2 月に正式リリースしています。新しいアーキテクチャでは、SDK API サーバーに GKE を利用。Web API サーバーは App Engine のままですが、今後 GKE に移行する計画です。非同期連携に Task Queue を利用していましたが、これを Cloud Pub/Sub に移行。データベースは、Cloud SQL と Cloud Memorystore を利用し、Cloud Scheduler で定期的にバッチ処理を行っています。
新しいアーキテクチャでは、SDK API サーバーに GKE を利用。Web API サーバーは GAE のままですが、今後 GKE に移行する計画です。非同期連携に Task Queue を利用していましたが、これを Cloud Pub/Sub に移行。データベースは、Cloud SQL と Cloud Memorystore を利用し、Cloud Scheduler で定期的にバッチ処理を行っています。
また、BigQuery のデータの可視化に、Data Studio を使っています。「ちょっとしたグラフ化は、簡単にできるので便利です」と伊藤さん。さらに、Stackdriver を使って、システムを監視。アラートは、メールよりも必読性の高いチャットソフトに配信されるようにしました。
新しいアーキテクチャの効果を伊藤さんは、次のように話します。「GKE は、Pod の数を増やすだけで、急なアクセス数の増加にも柔軟に対応できます。また、Cloud SQL をマスターと参照系レプリカに分けていますが、参照系レプリカを 2 台増やしただけで、システムの停止も、ユーザーの取りこぼしもなく、2 倍のユーザーを処理できました。」
参照系レプリカによる分散処理は、現状では手作業で対応しているとのこと。「通勤中にアラートを受け取ったら、会社についてコーヒーを飲んでから、1 クリックで対応できるので本当に便利です」と笑います。(伊藤さん)
Cloud IoT Core と機械学習の組み合わせで広がるビーコンの可能性
unerry では、独自に開発したソフトウェアを搭載した産業用 Raspberry Pi ベースのセンサーで、周辺にどれだけの人がいるかを可視化する IoT システム「サークラヤン」のプラットフォームとしても GCP を採用しています。
以前は、ソフトウェアのアップデートや故障の疑いの都度、設置場所に行って調査、対応する必要がありましたが、Cloud IoT Core を採用することで、センサーに問題が発生した場合でも、設置場所に行くことなく、リモートで死活監視やアップデートの制御が可能になり、作業負荷が大幅に軽減されました。伊藤さんは、「設置の妨げがなくなったことで、現在ではセンサの出荷台数が大幅に増えています」と話しています。
今後の取り組みを蔵谷さんは、次のように語ります。「新しくロンチするサービスについては、どの程度インスタンスを用意したら良いかわからず、接続がないときにサービスを動かしておくのはもったいないので、Cloud Run を使ってみたいと思っています。Cloud Run であれば、接続がない場合にはサービスはまったく起動されず、負荷に応じて自動的にスケールできるので便利です。ほかにも毎月、GCP の新しいサービスが登場しているので、Google Cloud からの情報提供を期待しています。」
また伊藤さんは、「当初は、オートスケール、フルマネージドで GCP を使っていましたが、現在はコストメリットを重視して手動にしています。今後、ユーザー数がさらに増加したときにはオートスケールに戻したいと思っています。今後もサービスの拡充に向けた取り組みを推進し、GCP の新しい機能を活用していきたいと思っていますので、Google Cloud には、今後も変わらぬサポートをお願いしたいと思っています」と話しています。
(写真左から)
CTO 伊藤 清香 氏
エンジニア 蔵谷 博康 氏
オフライン行動データ プラットフォーム「Beacon Bank」の運営、ビッグデータ解析・戦略コンサルティング、ロイヤルティ プログラムの企画運営などを事業として展開。リアルな行動をセンシングすることで、人々が意識していない癖や習慣、関心などを科学的に見出し、アプローチできる IoT プラットフォームを提供することで、生活者にとって必要なことが自動的に補助され、興味のあることに次々と出会える環境知能都市の実現に取り組んでいる。
株式会社 unerry の導入事例 PDF はこちらをご覧ください。
その他の導入事例はこちらをご覧ください。