• tech系
8分で読める

Cloud OnAir 第6回 ~ Google Cloud の事例紹介 ~ 速報まとめ

こちらの記事は弊社技術ブログに掲載していた内容となります。一部を除き、投稿当時の情報となりますので、紹介内容の最新情報については別途公式情報等をご参照下さい。

こんにちは。クラウドエース編集部です。

2017年10月5日より、隔週木曜 18:00~18:45にGoogle社のエンジニアがGoogle Cloud Platformの製品、サービスや導入事例等を解説する番組が始まりました。動画を見逃した方、見る時間が無い方向けにどのようなことを配信したのかについてクィックに紹介したいと思います。

第6回目のCloud OnAirはGoogle Cloudの事例紹介です!

なんとあのメルカリではGCPをフル活用しているので、株式会社メルカリの石村真吾さんが実際にどうGCPを使っているかを話してくれました!

株式会社メルカリと株式会社ソウゾウ紹介

今回事例を話して頂く石村真吾さんと会社の紹介です。

まず、今回事例を話してくれる石村真吾さんは、株式会社ソウゾウのソリューションチームに所属しています。ソリューションチームとは、メルカリとソウゾウ両社におけるGCPのソリューションのコンサルティングや、問題があったらそれを解決するチームとなっているようです。

株式会社メルカリ概要

メルカリは、従業員約500名が在籍している、有名なフリマアプリ「メルカリ」をサービスしている会社です。メルカリは日本だけでなく、米国や英国にもサービス展開しています。半数以上は、お客様の問い合わせに対応するためのカスタマーサポートで、どんどん問い合わせに回答するために、それなりの人数を割いています。

株式会社ソウゾウ概要

ソウゾウはメルカリの完全子会社です。メルカリとソウゾウの違いとしては、

  • ソウゾウ側は新しい事をする。
  • メルカリ側はメルカリを伸ばしていく。

という感じで完全に分離しています。

メルカリにおけるGCP活用

フリマアプリ「メルカリ」

メルカリの特徴

  • 日本市場向け
    • 日本最大のフリマアプリ
    • 3分で簡単出品
    • 安心安全の決済
  • グローバルに展開
    • アメリカ、イギリス向けにも提供
  • 日米合わせて9000万DL
  • 主要KPI
    • 流通額:月間100億円~
    • 出品数:1日100万出品~

1日の出品数が100万品を超える大きなアプリを支えるためのインフラをGCPを使って行っています。

メルカリでは大きく分けて以下の2つの使い方をしています。

  • データの分析基盤
  • アプリケーション基盤
  • データの分析基盤

一番使っているのがBigQuery。

少なくとも100万件/月の出品されたデータやログデータを分析する必要があるので、そのデータを全てBigQueryに投入しています。

エラーがあった場合には、どういうエラーなのかという解析をしなければいけないし、お客様が検索する時に欲しい物がきちんと表示されるようにしたり、どういった流れで買ったり売ったりしているのかを全部BigQueryで分析しています。

メルカリでは、カスタマーサポートのメンバーや、エンジニア以外がBigQueryにクエリーを投げる事もあるので、BigQueryの定額契約をしています。

なぜかというとBigQueryの課金体系はクエリを投げると分析するデータ量でお金がかかる形式なので、自分が投げたクエリでいくらかかるのかという事を気にしてしまいます。

そういった心理的障壁のせいでクエリを投げられなかったり、縮小したクエリにしてしまったりといった機会損失を防ぐ為に定額契約にしているのです。

これからGCPを触ろうとしているならば、まずBigQueryから始めるのがとてもいいです。なぜなら、とりあえずBigQueryにデータを投入し、クエリーをかけるだけで分析する事が簡単に出来ますし、止める時もデータを消すだけなので容易に止める事が可能なためです。

  • アプリケーション基盤

日本市場は歴史的にオンプレで動かしていたので、オンプレの部分も残っていますが、新しい物を作ったりする場合にはGCPを使う事が多いです。

逆にイギリスでは100%がGCPで動いていますし、アメリカでもほとんどがGCPをつかっています。

なぜ国で稼働率が違うのか?

それぞれの国でそれぞれの国にあった技術を使う事で社内でナレッジを共有出来る様になっているので、その時に一番良いと思う物を選択したらこうなったという訳です。

さらに全く同じアプリをリリースしている訳ではない、例えば検索をする際にアメリカだと単語毎にスペースで区切られているので、単語で分けるのは容易だが、日本語は単語に分けるのが難しい、と言った違いとかユーザー層も違うのでその国にあった技術を使い分けています。

メルカリUSのアーキテクチャ

GKEを中心にアプリを動かしていて、周りには開発に使う物や、分析の為に使うソリューションを使用しています。

詳細は、こちらのスライドから確認する事が可能です。

今後の展望

  • データ分析基盤

リアルタイムでデータを可視化していく事で、もしかしたら今まで見えてこなかっ事が見えてくるかもしれない。

機械学習の活用も進んでいる。

  • マイクロサービス

GKEをメインに使っている理由はマイクロサービスをメルカリでは推進している為です。メルカリという大きなアプリを作っていく際に、1つのインフラに全てのサービスをいれていると、だんだんとアップデートをしにくくなってくる。

なぜかと言うと、大きくなればなるほどジェンガの様なシステムになってきてしまい、1つのシステムを抜くと、まさか倒れるとは思わなかったという様な事態がよく発生してしまったりなど、後から変更を加えるのがどんどん難しくなっていくのです。

人間が把握出来る範囲というのも限られているので、全てを把握するのは難しいです。

なので、大きなアプリを作る際に機能ごとに分割、細分化する事で別々に管理し、それを連携していく事で新しい技術や、変更を容易にしています。

  • ベンチマーク

世界的にも大きな影響を与えているGoogleのテクノロジーと自分たちが開発したテクノロジーを比較する事で、現在自分達がどの辺りのテクノロジーを有しているのかなどにもGCPを活用している。

最近だとVisionAPIの様な物を自分達で作成した場合、Googleと比べてどの程度の精度が出るのかという事もやっています。

ソウゾウにおけるGCP活用

新しい物を作っていくのがソウゾウのミッションであり、メルカリではカバー出来ていない場所をカバーしていきます。

  • メルカリアッテ
    メルカリでは宅配が難しい商品を近くの人に譲ったり、近所で集まって遊んだりする事が出来るサービス。
  • メルカリカウル
    本とかCDとかDVDとかゲームにフォーカスしているアプリ。
  • MAISONZ
    ブランド品に特化しているアプリ。

ブランド品の写真を送ると本物なのかとか値段とかいくらにした方がいいよとか教えてくれる、自分で査定するよりは、MAISONZを使って査定した方が高く売れたりするケースが多い。

  • メルカリナウ
    メルカリのなかの一つのタブとして存在しているサービス。

写真を撮ると金額が表示されて、その金額に納得出来れば、そのまま売ってしまえるサービス。

以上の4つが現在リリースされています。

この4つのサービスは全部同じようなアーキテクチャになっていて、GAEを中心としたアーキテクチャになっています。

詳細は、こちらのスライドから確認する事が可能です。

1年の運用成果を振り返る

GAEを採用した大きな理由として、ソウゾウ側は新しい物を0から作るって事が頻繁にあるのでスピード感に着目した際に、インフラが最初から用意されているので、フルマネージドであるGAEがピッタリだった。

GKEはまだある程度管理する人が必要、メルカリにはSREのチームがあり、サイトが落ちていないかとかモニタリングをして管理しているチームが存在しているが、ソウゾウにはそういった人が全くいないので、ローンチした後は全てまかせっきりに出来るGAEを選択した。

GAEはサービスの規模によって構成を変える必要性が全くない。

例えば、最初はアクセスが少なくてしばらくするとアクセスがどんどん大きくなっていく場合でも、GAEが勝手にスケールしてくれるので大丈夫。

内部の情報が充実してきているのでどんどんサービス開発が早くなっていて、2~3か月で新しいサービスを開発する事が可能になってきています。

なぜGCPを選択するか

メルカリでは大部分をGCPでサービスを構成しており、ソウゾウでは全てGCPのプロダクトでサービスを構成しています。このことについて、よく「特定のクラウドベンダーに依存することはリスクではないのか?」という質問があります。例えば、GAEやDatastore、BigQueryはGCPにしか存在しないサービスです。

このことについて、メルカリ/ソウゾウにおける2つの考え方があります。

  • 依存しないことは最も価値を生む選択肢になっているか
  • 代替不可能な高度技術を使わないことこそ、ビジネス上のリスクではないのか

メルカリ/ソウゾウでは、お客様にサービスを提供することを1番大事にしています。その際に既に一般的によく使われているGAEやBigQueryといった便利なサービスがあるのに、わざわざ自前で同等のサービスを構築するとスピード感も出ず、コストもかかります。更に言うと、BigQueryは自前で構築することはおそらく無理なサービスです。

例えば、地球規模でスケールするRDBが必要な場合、GCPではSpannerを数クリックで使うことができ、マルチリージョンも選択することができます。自分たちで同等のRDBを作ろうとすると、スケールやネットワーク等も考慮する必要があり、非常にお金がかかるため、無駄だと考えています。メルカリ/ソウゾウでは、高度なクラウド技術を使いこなしていくことで、本来の目的を達成することになり、ビジネスの成功に直結すると考えています。

コミュニティー紹介

GCPの勉強会や情報交換を行う日本発のコミュニティーとして「GCPUG」があります。ゲストの石村さんはGCPUG東京のオーガナイザーを務めています。「GCPUG」は日本各地に支部があり、台湾やインドにも支部があります。普段はSlackを利用してユーザー同士で意見交換を行っています。(これまでのCloud OnAirの質問にもコミュニティーの方が回答していたようです。)

https://gcpug.jp/join にアクセスすれば誰でも参加できますので、興味のある方は是非。

Q&A

Q:GKEとGAEを使い分けている理由は?

A:まずメルカリでGKEを使用してる理由ですが、メルカリのサービスはオンプレ環境でリリースしていました。しかし、サービスの規模が大きくなるにつれて使い辛い部分が増えてきたため、マイクロサービスに分解して運用していく方針になっています。既存のソフトウェア資産を移行する場合、GAEだと難しい部分があり、柔軟に展開できるGKEを選択しています。

一方、ソウゾウでは最初からGCPでサービスをスタートするため、GAEを利用しやすい環境にありました。また、立ち上げ当初はインフラを担当する人が居なかったという事情もあります。GAEであればインフラ運用が不要なため、開発者はアプリ開発に集中できます。また、GAEを採用するにあたってGoogle福田さんに多数質問し、疑問が解決できたことも大きいです。

Q:Spannerを使っているのか?

A:USで展開しているサービスにはSpannerを利用しているものもあります。日本のサービスで利用しているものはありませんが、利用を検討しているサービスがあります。

Q:アプリ開発にGoを選択した理由は?

まず、Goの利用がだんだん伸びてきていることです。次に、GAEではいくつかの言語を選択できますが、Goが1番パフォーマンスが良かったということがあります。また、マイクロサービスを開発する場合、Goは相性が良いこともありました。そのため、メルカリもマイクロサービスではGoを採用することにしました。

まとめ

今回の放送は、GCPを最大限に活用しているメルカリ/ソウゾウの事例紹介だけあって、定番のサービスから最新の技術まで非常にためになる回でした。ゲストの石村さんのトークも非常にわかりやすいため、是非視聴頂くことをお奨めします。

最後に

今年のCloud OnAirは全て終了ですが、来年もCloud OnAirの放送を計画しているとのことです。興味のある方はブックマークをお願いいたします。

弊社クラウドエースでは、GCPのプロダクトのコンサルティングから構築支援、応用サービスまで幅広くご提案しております。GCPによるサービス構築のご相談もクラウドエースにおまかせください!!

参考リンク

この記事を共有する

合わせて読みたい