国際自動車株式会社の導入事例:何千ものタクシーと乗客を、スマホを振るだけでマッチング。リアルタイム性が求められるビッグデータ処理を Cloud Spanner で一挙可能に
Google Cloud Japan Team
多数のタクシーの位置情報といった大量データを蓄積し高速に処理するために、エンタープライズクラスの新たなリレーショナル データベースサービス、Cloud Spanner が採用されました。このデータベースの大きな特長である圧倒的なパフォーマンスを活かした新サービス「フルクル」の開発事例をご紹介します。
■写真左から
国際自動車株式会社
管理部 IT課 係長 澤井 慎也氏(写真左)
企画・広報室 係長 森田 健太郎氏(写真右)
■ 利用している Google Cloud Platform サービス
Google App Engine、Cloud Spanner、Google Maps APIs など
■ 国際自動車株式会社
国際自動車株式会社を筆頭とする km グループは、タクシー / ハイヤー / バスといった複数車種の提供や、リース / 自動車保険 / 自動車整備など自動車運行にかかわる幅広いサービスを提供する旅客運用事業の総合企業です。IT を活用しグループ関連会社の先頭を走ります。
これまでの配車アプリとはまったく違う発想の「フルクル」
大都市では多くのタクシーが運行しています。しかし、大通りから外れた場所や住宅街ではなかなか見つからないこともあります。こうした不便を解消するために、国際自動車株式会社が提供しているスマートフォンアプリが「フルクル」です。利用者は、フルクルをインストールしたスマートフォンを“振る”ことで「タクシーに乗りたい」という意思表示を行い、それを把握した周囲のタクシーが利用者のいる位置へ向かいます。
類似サービスとして、乗車場所をスマートフォン上の地図で指定するとタクシーが迎えに来るという配車アプリがあります。こうしたアプリの場合、確実に配車される一方で迎車料金が発生します。しかしフルクルは、乗車を確約するものではない一方、迎車料金を支払う必要がありません。このように利用者とタクシーの「ゆるいマッチング」を実現したのがフルクルです。
澤井さんはフルクル開発の背景を次のように述べています。「タクシーに乗っていただくには、電話やウェブサイト、スマートフォンの配車アプリで呼ぶ方法と、走っているタクシーに乗る『流し』の 2 つがメインになります。実際にタクシードライバーの仕事を分析したところ、1 日の仕事のうち 9 割が流しで、電話などで予約されたお客様に乗っていただくのは 1 割程度でした。しかも流しの時間の半分はお客様を探しているということも明らかになりました。」さらに「フルクルは予約ではなく、お客様とドライバーをゆるくマッチングし、全体の 9 割を占める流しの仕事のサポートがねらいです。これが従来の配車アプリとの大きな違いです」と強調します。
同じく森田さんは「現在、タクシーに関連するアプリはいくつもありますが、それらとフルクルは一切競合していません。単に手を上げる、あるいは電話やアプリで予約をするといった、今までとは異なる仕組みでお客様とタクシーをつなげるサービスです。つまり空白地帯だったところにフルクルがあるわけです」と話します。
サービス開発の発端は、澤井さんが「スマートフォンを振ったらタクシーがワッと集まってきたら面白いんじゃないか」と考えたことでした。その話が同社の役員会に伝わり、今すぐに開発せよ!という判断が下って、このフルクル・プロジェクトがスタートしました。
フルクルのビジネス上のもう 1 つの目的は、コールセンターの業務負荷の軽減と森田氏は述べます。
「タクシー業界では、コールセンターに電話がつながりづらいという課題を長年抱えています。一度に受けられる呼び出しの数には限りがあります。そこで始まったのが Web サイトでの予約で、これなら電話をかけずにタクシーを予約できるため、コールセンターが話し中でタクシーを予約できないという状況を回避できます。
フルクルの場合は、そもそもコールセンターのシステムを基本的に使いません。お客様からのリクエストがシステムを通して直接タクシードライバーに届くため、それによってコールセンター業務の負担を軽減できて、なおかつお客様の利便性にもつながる。それが私たちにとってのフルクルの最大のメリットでした。」
フルクルを支える Cloud Spanner の圧倒的なパフォーマンス
フルクルでは、バックエンドシステムとして「Google App Engine(GAE)」を採用しました。開発メンバーとして参画した伊藤勇斗さん(吉積情報株式会社 開発事業部)は、その理由について次のように説明します。
「フルクルは一般ユーザー向けのアプリであり、どの程度のユーザーがどのタイミングで利用するのかを予測するのは容易ではありません。それに対して GAE であればオートスケーリング機能があり、ユーザー数の変動に応じて自動的にスケールアウトすることができます。また、利用料も実際に利用した分しか発生しないため、コスト面でもメリットがあります。」
また PaaS である GAE であれば、インフラ周りのメンテナンスから解放されるので、保守運用コストも大幅に削減することが可能です。これによってさらにコストメリットを高められること、そして Google のサービスカバレッジの広さにも伊藤さんは言及しました。
「今回、タクシーの位置情報とフルクルを使うお客様の位置情報を地図上にプロットする必要があり、Google Maps APIs を使って実現しています。Google の幅広いサービスを利用すれば、他社のサービスを使わずに一元的に開発できることもメリットでした。」
フルクルのシステムは、タクシーの位置情報を 10 秒ごとに取得してデータベースに登録、スマートフォンを振ったユーザーがいれば、その位置情報を使ってタクシーをマッチングしてタクシードライバーに通知するという流れになっています。そこで、このシステムの開発のポイントとなったのはデータベースでした。
「今回のシステムでは、タクシーから頻繁にデータが送信されるので、分散処理に強い『Google Cloud Datastore』を使うことを想定していました。ただ、今回のフルクルシステムで使うクエリーは複雑で、Google Cloud Datastore では 1 回の処理で必要なデータを取得できないことが明らかになりました。そのため、おおざっぱにデータを取得した後、システム側でデータを絞り込む処理が必要となり、パフォーマンスへの影響が懸念されたのです。」
この課題の解決策となったのは、「Cloud Spanner」です。
「Cloud Spanner の本サービスが始まり、東京 GCP リージョンでも使えるようになったと聞いてさっそく調べたところ、パフォーマンスに優れ、低レイテンシーという特長があることがわかりました。さらに将来的に規模が大きくなっても水平分散できるということで、すぐに検証を始めました。そこで問題ないことが確認できたので、採用を決めました。
結果的にパフォーマンス面でも優れたものにできたと考えています。また複雑なクエリーにも対応していて、必要なデータを 1 回で取得できるため、アプリケーション側の負荷も抑えられました。」
国際自動車ではすでにクラウドの利用実績があり、フルクルでの GCP の採用についても特に反対はなかったと澤井さんは語ります。
「フルクルを提供する前は、いくつかのクラウドサービスを利用していましたが、そのときは懐疑的な意見もありました。ただ IT 課の人員はそれほど多くない上、すでに相当数のサーバーを管理していたため、オンプレミスや一般的なレンタルサーバーでは管理が難しい状況だったのです。しかしクラウドであれば、その部分を任せることができる。そこで課の方針としてクラウド活用を決定し、社内を説得していったのです。フルクルは、協力会社のサポートもしっかりしていて、クラウドとしての GCP の採用はすんなり決まりました。」
フルクルの提供開始から 2 か月間でダウンロード数は約 30,000 件に達し、多くのユーザーに使われ始めています。その背景として森田さんは「口コミで評判が広まっています。SNS では本当にポジティブな評価が多く、それがアプリのダウンロードや利用につながっているのではないでしょうか」と言います。
今後も機能強化は続けられる予定で、乗車位置の微調整を行える機能の追加などが検討されているそうです。最後に澤井さんは「『タクシーを呼ぶために、まだ路上で手を上げてるの? スマートフォンを振ればいいじゃん』と言われるようにしたい。いずれ、『フルクルしてタクシーを呼ぼうよ』というのが日常的に聞けるようになると最高ですね」と笑顔で目標を語ってくれました。
GCP のその他の導入事例はこちらをご覧ください。