コンテンツに移動
顧客事例

株式会社メルペイ:Cloud Spanner と Google Kubernetes Engine でスマホ決済サービスを構築

2019年11月11日
https://storage.googleapis.com/gweb-cloudblog-publish/original_images/hero_image_merpay_01.jpg
Google Cloud Japan Team

2019 年 2 月に、スマホ決済サービスの新たな選択肢として登場した『メルペイ』。若者世代を中心に絶大な支持を集めるフリマアプリ『メルカリ』と連携する決済サービスということで、後発ながら非常に大きな注目を集めています。今回、お話をお伺いするのは、そんな『メルペイ』を立ち上げた、株式会社メルペイ CTO の曾川さんと、同社のエンジニアチームリーダーの皆さん。高い安全性を求められる金融サービスの構築に Google Cloud Platform を採用した理由を語っていただきました。


利用している Google Cloud Platform サービス

Google Kubernetes EngineCloud SpannerCloud Pub/Sub など

Video Thumbnail

『メルペイ』の「Go Bold」な開発を支える Cloud Spanner

2017 年 11 月、メルカリのグループ会社として株式会社メルペイが設立されました。同社の取締役 CTO としてプロジェクトの中核を担った曾川さんは、過去に2つの決済サービスの立ち上げにも携わっており、『メルペイ』は 3 つ目のサービスだったと当時をふり返ります。

「マーケットには、参加するさまざまな人々の利害を調整するという機能があり、メルカリは “モノの流動性を高める” という意味で、その役割を果たし続けてきたサービスです。結果、そこで “お金” が生まれ、交換されるようになってきました。それをもっといろいろな場所で使えるようにしたり、流動性を持たせたりしようとしたものが『メルペイ』です。これまでのサービスは “便利に使える” ことが目的で、その先については踏み込んできませんでしたが、『メルペイ』では、メルカリのような、さまざまな人々の “価値” の交換が行われる場所で、そこに横たわる、もっと深いお金の問題を解決したいと考えています。」(曾川さん)

そんな『メルペイ』が Google Cloud Platform(GCP)を導入したのは、先行してメルカリで進められていたマイクロサービス化が GCP 上で行われていたため。メルペイもメルカリ グループの一員として、この新しいマイクロサービス基盤を一緒に育てていきたいという思いが大きかったそうです。

「そのうえで、私としては Cloud Spanner に挑戦したいという気持ちがありました。メルペイのようなサービスにおいて、Spanner のダウンタイムのないスケーラビリティや、強い一貫性・整合性はとても魅力的。とくに整合性については、金融サービスである以上、結果的整合性では許されません。また、マネージドであることも大きな魅力でしたね。当時はまだ生まれたばかりのプロダクトで、社内の利用事例もなかったのですが、今後「Go Bold」に開発を進めるには GCP の導入が必要だと思い、導入を決意しました。もちろん、そこには sinmetal や高木のように、これまで GCP を使い込んできたスタッフがいたからというのも大きかったです。」(曾川さん)

https://storage.googleapis.com/gweb-cloudblog-publish/images/merpay01.max-2200x2200.jpg

左:取締役 CTO 曾川(sowawa)さん、右:GAE Meister 石村(sinmetal)さん

「私は元々、メルカリグループの一員であるソウゾウに所属しており、そこで Google App EngineCloud Datastore を運用していたのですが、2018 年 4 月に、メルペイが GCP を本格活用するということでチームごと移籍してきました。『メルペイ』では今回、Spanner を利用していますが、実は当初は MySQL を使う予定だったんですよ。しかし、GCP を使う以上、極力全てを自分たちのチームで運用していきたいという気持ちがあったので、フルマネージドなサービス、例えば Cloud SQL や Cloud Datastore などをまず検討しました。ただ、前者は主にパフォーマンス面で、後者はコスト面で『メルペイ』で使うには問題があり導入を断念。ちょうどその頃、Spanner が東京リージョンに導入されて……じゃあ使ってみようかという流れです。以降は、ずっと Spanner のクエリをチューニングしたり、運用ツールを作ったりということをやっていますね。Spanner は、多くの日本人エンジニアが慣れ親しんでいる RDB とは異なる、KVS(Key-Value Store)っぽいデータベース。幸い、私たちのチームは Cloud Datastore の経験もあって、“Spanner の気持ちになれる” エンジニアが多く(笑)、使いこなすことができました。」(sinmetal さん)

Kubernetes を活用することで自由度の高い開発環境を確保

グループ全体で推し進めているマイクロサービス化が GCP 上で行われていたこと、そして大規模分散処理性能と強整合性を併せ持ったデータベースである Spanner を使いたいことが大きな動機となった、『メルペイ』での GCP 採用ですが、そのほかにもう 1 つ大きな理由があったと、同社アーキテクト チームを率いる佐野さんは言います。

「アーキテクト チームとしては、将来的に開発組織がどんどん大きくなっていっても、各チームが高い自由度を持って開発していけるようにする体制を作りたいと考えていました。そこで何としても導入したかったのが Kubernetes です。Kubernetes を自分たちだけで運用していくのは厳しかったのですが、GCP には、Google Kubernetes Engine(GKE)という、Kubernetes をマネージドで運用できるプロダクトがあります。そのことも GCP を導入する理由の1つだったと考えています。」(佐野さん)

https://storage.googleapis.com/gweb-cloudblog-publish/images/Merpay-Architecture.max-2000x2000.png

『メルペイ』では、『メルカリ』内で『メルペイ』を使って商品を購入した場合と、QR・バーコード決済、iD 決済とで処理フローが異なっており(『メルカリ』内利用の場合は、直前まで『メルカリ』が動作している国内大手クラウド プラットフォームで処理するが、QR コード決済や、iD 決済の場合は原則として全て GCP 上で処理)、それを GKE で細かくマイクロサービス化することで、開発効率を高めています。

「MAU1,300 万の『メルカリ』アプリに組み込まれる『メルペイ』は、サービス開始当初から膨大なトランザクションが発生することが分かっていたので、SRE チームとしてはそれに耐えられる環境を作ることが大事でした。店頭決済についても、決済数こそアプリ内利用には及ばないものの、ビューはものすごく多いので同様に気が抜けませんでした。」(高木さん)

「そのほか、GCP のプロダクトは一通り使わせていただいています。たとえば Cloud Pub/Sub は非常に重宝しています。マイクロサービスでは同期的な通信だけでなく、非同期の通信をしたい場面が多くなるのですが、そうしたジョブキュー、メッセージ キュー的なものをマネージドで扱えるのは助かりますね。『メルペイ』全体で利用しています。」(佐野さん)

https://storage.googleapis.com/gweb-cloudblog-publish/images/merpay02.max-2200x2200.jpg

左:SRE, Engineering Manager 高木(tjun)さん、

右:Principal Software Engineer 佐野(kazegusuri)さん

約 15 か月に及ぶ準備期間を経て、2019 年 2 月に無事リリースされた『メルペイ』。先日も「メルペイスマート払い」機能が追加されるなど、現在も日々サービスの進化に余念がありません。最後に『メルペイ』に GCP を導入した成果と今後について、曾川さんに聞いてみました。

「サービス開始後も、SLA(Service Level Agreement / サービスレベル合意)を高い状態に保てたのは、スタッフの頑張りはもちろんですが、GCP が僕らの期待するパフォーマンスとスケーラビリティを提供してくれたからだと思っています。今回の取り組みでさらに多くのノウハウを蓄積できたこともあり、今後『メルペイ』やグループ全体で、GCP の活用はさらに進んでいくだろうと思っています。」(曾川さん)


https://storage.googleapis.com/gweb-cloudblog-publish/images/merpay_corporate_logo.max-1100x1100.png
https://storage.googleapis.com/gweb-cloudblog-publish/images/b4009.max-2200x2200.jpg

(写真右から)

  • 取締役 CTO 曾川 景介氏(sowawa)
  • Principal Software Engineer 佐野 正浩氏(kazegusuri)
  • SRE, Engineering Manager 高木 潤一郎氏(tjun)
  • GAE Meister 石村 真吾氏(sinmetal)

株式会社メルペイ

2017 年 11 月に、株式会社メルカリのグループ企業として設立。メルカリ上での決済を円滑化し、その売上金や、銀行口座からチャージしたお金を、メルカリ内の決済や、NFC決済のiDやコード決済を通じて全国135万か所の加盟店で使えるスマホ決済サービス『メルペイ』を、2019 年 2 月に提供開始した(『メルカリ』アプリ内に新機能として追加)。


株式会社メルペイの導入事例 PDF はこちらをご覧ください。

その他の導入事例はこちらをご覧ください。

投稿先