SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

大規模解析サービスを支えるGCP活用事例

大規模データ解析サービス実現のために、Google Cloud Platformが果たす役割

大規模解析サービスを支えるGCP活用事例 第1回

解析サービスを実現するために必要な要素

 実際に実現するには他にも色々なポイントがありますが、これまで述べたように次のポイントが必須になります。

  • 同時接続をさばく
  • データ量のスループット
  • 大量のデータを保存し、活用する
  • データの抜けがないよう安定的にサービス提供する
  • 解析結果を得るまでのレイテンシ
  • 短い時間でのスケーラビリティ
  • これらを簡単にコントロールするための仕組み

 約20年前、まだGoogleがなかった頃に、この解析サービスを実現するには実にさまざまなものが必要だったと思います。物理サーバーをはじめとしたハードウェアやデータセンターやネットワークシステム、効率的なアルゴリズムなどが盛り込まれたソフトウェア、そしてそれをメンテナンスする人的リソースなど、色々なものを用意する必要があったでしょう。

 しかしながら今では、私のMacBookからでもつながる、インターネットを介した便利なクラウドサービスが、非常に簡単にこれを実現可能にしてくれます。PLAIDではGoogle Cloud Platform(GCP)を中心としたクラウドサービスを最大限に活用しています。

GCPとは?

 GCPとは、Googleが提供するコンピューティングプラットフォームです。Googleが検索サービスなどでコアとして使っているインフラストラクチャを、サーバー、ストレージサービス、解析サービスなどとして提供する、IaaS(Infrastructer as a Service)とPaaS(Platform as a Service)の形式で提供されているCloudサービスです。Googleが世界中のユーザーに対してWebサービスを提供し続けてきた経験が盛り込まれたインフラであると言われています。

 KARTEでは、GCPのサービスの中でも、Compute Engine、Cloud Storage、Cloud Bigtable、Cloud Spanner、Cloud Datastore、Cloud VPN、Cloud Load Balancing、BigQuery、Cloud Pub/Sub、Stack driverを活用しています。

KARTEで利用しているGCPのサービス
KARTEで利用しているGCPのサービス

 先ほど挙げた解析サービスの必須要素とGCPのサービスはどうつながっているのでしょうか?

 同時接続をさばく、短い時間でのスケーラビリティという観点では、Cloud Load BalancingをCompute Engineの前面において、接続を複数のCompute Engineに分散させながら、Compute Engineのオートスケール機能で、Cloud Load Balancingのメトリクスを基準に自動で台数を調整することが可能です。

 データ量のスループット、大量のデータを保存・活用する、解析結果を得るまでのレイテンシという観点では、読み書きのスループットが大きく、読み出しのレイテンシも短いサービスであるCloud Storage、Cloud Bigtable、Cloud Spanner、Cloud Datastore、BigQuery、Cloud Pub/Subの特徴を活かしています。

 データの抜けがないよう、安定的にサービス提供するという観点では、GCPのサービスの裏側は全般的に多重化されており、安定的であるのに加え、もし障害が発生してもCloud Pub/Subに一時的にデータをためておき、障害から回復した時に再度処理を開始するようにしています。また、Cloud VPNで、非常に重要なデータは他のクラウドサービス上に安全にレプリケーションを行っており、大きな障害が発生してもサービスを提供し続けられるようにしています。

 これらを簡単にコントロールするための仕組みという観点では、GCPのサービスは全般的にWeb UIでコントロールでき、簡単に構成の変更が可能です。また、Stack driverという監視サービスによって、他のサービスのメトリクスを確認することもでき、アラートの設定などが可能になっています。

 このように、GCPを利用することによって、解析サービスを提供するために必要となる、大量のデータを処理する、レスポンスが速い、これらを安定的に提供する、などの高い要件を満たすような多種の基本的な道具を、クラウド上で簡単に手に入れることができます。

まとめ

 解析サービスを実現するために必須な要素をまとめました。PLAIDでは、これらの必須要素を備えたKARTEを提供するにあたり、GCPを最大限に活用しています。

 単に、物理サーバーを意識することなく、計算機資源をコントロールできるという利点だけでなく、サービスに必須な要素を実現するという、よりサービスの根幹に近いレイヤーで重要なものとして、GCPを活用していることがわかります。

 次回以降は、どのようなポイントでどう構成しているかを紹介し、それぞれの構成要素の具体的な課題とその課題を解くために使用しているサービスの詳細などについて紹介していきます。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
大規模解析サービスを支えるGCP活用事例連載記事一覧

もっと読む

この記事の著者

牧野 祐己(株式会社プレイド)(マキノ ユウキ)

 株式会社プレイド エンジニア。 2014年から、プレイドでデータ分析エンジンの研究開発を担当。その他、エスプレッソマシンの傍らで、流行りのサードウェーブコーヒーを推進するために、3時頃からハンドドリップコーヒーを抽出する業務も担当。2009年から2014年まで、IBMソフトウェア開発研究所で研究開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/10350 2017/08/22 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー