「AWSとGCPを“選択可能”にしておく」LIFULLに学ぶ長生きするインフラ構築術

多くの開発に導入されるクラウドサービスですが、LIFULL社では、AWSとGCP、両サービスを同時に使用しているそう。同社のインフラの変遷と、併用の背景を聞きました。

「AWSとGCPを“選択可能”にしておく」LIFULLに学ぶ長生きするインフラ構築術

インフラ構築における技術的な選択肢はさまざまですが、なんらかのクラウドサービスを活用するということは多くのエンジニアが検討する手段でしょう。

昨今ではクラウドサービスは多くの企業から提供されており、エンジニアにとって多様な選択肢が提供される一方、どのサービスを選ぶべきかという悩みもあるでしょう。筆者の周りでも「クラウドを導入しようと考えているが、AWSとGCP、どちらを使おうか」という悩みを聞くことは枚挙に暇がありません。

今回お話を伺った、不動産・住宅情報を扱うLIFULL HOME'Sを展開する株式会社LIFULL(ライフル)では、AWSとGCPの「どちらか」ではなく両者を併用しつつサービスを運用しています。その背景には「技術トレンドの移り変わりが早い時代だから、AWSやGCPなどの技術をそれぞれ、いつでも使えるようにしておくべき、という思想がある」と同社CTOの長沢さんは語ります。

従来オンプレミスで構築されていた同社のサービスインフラは、2015年頃にAWSを導入し、同時に「マイクロサービス化の推進」をしてきています。こうしたインフラの変遷の中で、クラウドサービスをどのように選び、そしていまなぜ、AWSとGCPを併用するのでしょうか。

1
長沢 翼さん(写真右)
株式会社LIFULL CTO。2008年にエンジニアとして新卒入社。入社後は、「HOME'S(現LIFULL HOME'S)」の不動産売買カテゴリの開発、iPhoneアプリの新規開発を担当。技術を支えていく上で幅広い分野に携わりたいという想いから、次第にバックエンドの開発にシフトし、API基盤の刷新を行う。その後、インフラ寄りの業務にシフトし、現在はAWS導入、オンプレミスからの移行やその他技術基盤の開発に従事する。
衛藤剛史さん(写真中央)
株式会社LIFULL 新UX開発部 デバイスソリューションユニット 開発2グループ グループ長。SIerでのエンジニア経験を経て、2014年に中途入社。LIFULL HOME'SのAndroidアプリのリニューアルプロジェクトに参加し、その後はAndroidアプリ開発・バックエンドAPI開発運用を担当する。現在はAndroid開発チームのエンジニアマネージャーとして従事。
菊地 慧さん(写真左)
株式会社LIFULL 新UX開発部 デバイスソリューションユニット TechLead グループ。学生時代には、ドコモカップ東北iアプリコンテストで特別賞を2度受賞。2014年にエンジニアとして中途入社。入社後は、LIFULL HOME'Sの Android アプリ開発を担当。現在は、アプリ部門のTech Lead業務を務めつつ、GoogleのAR技術「Tango」を活用したアプリ開発、かざして検索のPMやAndroid開発を担当する。

AWSとGCP、「どちら」を「どうやって」使うか

——AWSとGCPを併用されていると聞きました。両サービスを導入した背景を教えてください。

長沢 AWSを導入したのは、2014~2015年くらいです。それ以前はオンプレミスでサーバを運用していました。現在では開発の粒度を下げるべく、マイクロサービス化も進めています。現在は事業系システムのほぼ大半はAWSで稼働しています。

一部ではGCPも利用していますが、それらの機能を会社として「GCPを使おう!」と打ち出したわけではなく、一部のチームで「GCPのこのサービスが便利そうだ」と、自然発生的に徐々に使われはじめた印象です。

——AWSとGCPを併用する上で、両サービスの使い分けはどのように設定されているのでしょうか。

長沢 先ほどお話したようにAWSが多いのですが、使い分けに関しては、特に明確な区分はありません。併用の例を挙げると、あるAPIの機能をGCPで作成し、それをメインのAWSにあるサービスから叩く、という組み合わせで利用していることもあります。

また、マイクロサービス化を実施していく上で、技術選定はチームの自発性に委ねていますので、その中でGCPを利用しているシステムもありますね。新事業を開発しているチームではそのサービスの一部をGCPで開発しているところもあり、どのサービスを活用するかは、チームによってさまざまです。

——具体的にGCPはどういった開発で使用されているのですか。

衛藤 機械学習系やスマホアプリ開発などで利用されていることが多いです。

例えばLIFULL HOME'Sでは、不動産会社様が、部屋の画像をアップロードする機能があります。画像は家屋の外観や、部屋内部、あるいはキッチンだったりと多様なのですが、こうした画像を自動で判別して、適切なタグ付けを行っています。この機能はGoogle App Engine(GAE)を基盤として、Cloud AutoML Visionで機械学習を行い、Google Cloud EndpointsでAPIを管理するようにしています。

——機械学習系はAWSよりGCPのほうが利用しやすいという判断でしょうか。

衛藤 条件や好みにもよると思いますが、Googleが「AIの民主化」を標榜しているだけあって、機械学習系のサービスには力は入れているなと感じます。精度も良好ですし、AutoMLの「誰でも簡単に機械学習にアプローチできる」点は優れていると感じます。

「AIの民主化」は「GoogleCloudNext’17」で提唱された。

——「機械学習系ならGCPを使う」というような切り分け方をしているのでしょうか。

長沢 いえ、明確に切り分けを設定しているわけではありません。しかし、機械学習系のサービスを開発するとき、そのときの用途ではGCPが自分たちのサービスにマッチし、結果として採用されています。AWSやAzureも使ってみましたが、タイミングや機能としてハマったのがGCPだった、ということが導入の背景にあります。

——では、アプリ開発においてGCPを利用されているのはどういった理由からでしょうか。

菊地 アプリチームでは2016年ごろからFirebaseが導入されはじめました。LIFULLでは比較的早い時期からFirebaseを開発に取り入れていたことが、GCPを導入した背景にはあるんです。

衛藤 メインはAWSを使用していますが、Firebaseはモバイル開発との相性が良いので、導入しているサービスは増えてきています。

——やはりFirebaseとGCPの相性はいいのですね。

菊地 そうですね。FirebaseもGoogleのサービス1なので連携がしやすいというのはあります。解析基盤やイベントからの連携だったり、作ろうとすると苦労する部分が簡単に作れるようになりました。

2

アプリエンジニアの菊地さん。

——AWSとGCPに同じような機能があり、双方を比較した上で決め手となる判断材料はどこにあるのでしょうか?

長沢 解決すべき技術課題によって変わってくると思います。今は両サービスともに機能が充実しているので、AWSとGCPを比較して、「明確な差」を感じることは少ないです。ですから、実際に触ってみて自分たちのサービスに合うかどうかが、判断材料となるでしょう。また、コストの多寡ももちろん判断材料のひとつです。

——コストの比較は確かに重要ですね。過去、コストを理由に導入サービスをスイッチした事例はあるのでしょうか。

長沢 Amazon Redshiftを使っていたところを、GCPのBigQueryに移行したことがあります。両サービスを比較し、弊社の場合ではコストダウンができることが明確だったんです。また、ほとんどのチームがGoogle Analyticsを利用しているので連携のしやすさに優れており、マーケティングのチームから要望があったことも理由の一つです。

サーバの肥大化を阻止するべく、オンプレからAWSへ移行

エンジニアHubに会員登録すると
続きをお読みいただけます(無料)。
登録のメリット
  • すべての過去記事を読める
  • 過去のウェビナー動画を
    視聴できる
  • 企業やエージェントから
    スカウトが届く