ゲーム開発が変わる! Google Cloud Platform実践インフラ構築 第1章(1/3 ページ)
あらゆる書籍の中から、Windows Server Insider読者に有用だと考えられる情報をピックアップして転載する本連載。今回は、ゲームインフラエンジニア向けのGoogleのクラウドサービス「Google Cloud Platform」の中からGoogle Cloud Platformの全体的な紹介部分を転載する。
本コーナーは、インプレスR&D発行の電子書籍『ゲーム開発が変わる!Google Cloud Platform 実践インフラ構築(2016年3月4日発行)』の中から、特にWindows Server Insider読者に有用だと考えられる個所を編集部が選び、同社の許可を得て転載したものです。
『ゲーム開発が変わる!Google Cloud Platform 実践インフラ構築』の詳細は「目次情報ページ」やAmazon Kindleストアをご覧ください。
ご注意:本記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
皆さんはGoogle Cloud Platform(以下、GCP)をどの程度ご存知でしょうか。本章ではGoogle社の中核となる技術、GCPの技術コンセプト、そしてGCPのサービスラインナップについて紹介します。
Google Cloud Platform とは?
「Google Cloud Platform(以下、GCP)」はGoogle社が提供するプラットフォームサービスです。Amazon Web Services社の「Amazon Web Services(以下、AWS)」やMicrosoft社の「Azure」、IBM社の「SoftLayer」のように、インフラやミドルウェアなどのサービスをオンデマンドで提供しています。
クラウドサービスの初期である2006年からサービスを提供しているAWSと比較して、GCPは最近誕生したサービスと思われる方もいるでしょう。しかし、GCPの起源ともいえるGoogle社のプラットフォームサービス「Google App Engine(以下、GAE)」は2008年にPaaS(Platform as a Service)としてスタートしています。ただ、プラットフォームサービスのメインとも言えるIaaS(Infrastructure as a service)に関しては2013年の「Google Compute Engine(以下、GCE)」の発表を待つこととなり、その意味では比較的新しいサービスと言えます。
GCPの特色は、Google社が広告や検索、Gmail、Google Mapsなどのサービスで培ったテクノロジを、一般ユーザが活用できるようにプラットフォームサービスとして惜しみなく解放した点にあります。
GmailやGoogle Map、YouTubeのユーザはそれぞれ約10億人と言われています。世界中の膨大な数のユーザからのアクセスを難なく処理するためには、単純にサーバやデータセンタの数を増やせばいいというものではなく、それらを効率的に分散処理するための仕組みが必要となります。
極論すれば、これらGoogle検索やGmailで活用されているテクノロジを使って、誰もがGoogle社と同じスケールのサービスを構築し運用できるプラットフォームがGCPなのです。
真の「クラウド」の実現を目指して
Google社は世界中に分散されたデータセンタとそれらを繋ぐ大容量・高速なネットワークを自社で保有しています。そしてこれらをフル活用するための分散処理や冗長化のためのソフトウェア・処理技術を自社で開発しています。
Google社が目指しているクラウドサービスは、あたかも水道や電気のように、必要な時に必要な量だけリソースを利用でき、ユーザは活用したリソース量のみに対して料金を支払うというモデルです。
水道サービスで例えれば、一般的なプラットフォームサービスが『地域で共有している井戸』だとすると、GCPは『世界中に張り巡らされた水道網』といえるでしょう。
将来的には、GCPを使うエンジニアはインフラを全く意識することなく、アプリケーションのことだけを考えていればよい世界が実現できるかも知れません。もちろん、メモリやストレージIOなどを全く意識せずに高性能なアプリケーションを構築することはまだまだ難しいでしょう。しかし技術的なパラダイムとしては、確実にこういったビジョンに近づいているのではないでしょうか。
例えばPaaSであるGAEとビッグデータ処理データベースエンジンである「BigQuery」などは、月額の固定料金はストレージ費用+α程度で、あとは実際に活用されたコンピューティングリソースに応じて課金されます。コンピューティングリソースはオートスケールするため、負荷や処理量を意識してインフラをサイジング、設計、調達しておく必要がありません。
つまり、アプリケーションを維持するコスト、インフラを維持するコストは限りなくゼロに近く、エンジニアはインフラをほとんど意識することなくアプリケーションに専念することができるのです。
圧倒的なスケーラビリティ
例えば画像共有サービスであるSnapchatは、2016年2月現在1億人以上のデイリーアクティブユーザ、1日約2億枚の画像のアップロード、秒間100万アクセスを達成した大規模サービスです。本サービスはGAEの上で稼働しているのですが、これだけの規模のサービスにも関わらず、携わっているインフラエンジニアは少人数です。GAEがなければこれほどまでに急成長するサービスの構築は容易ではなかったでしょう。
またBigQueryは大量のデータをアップロードするだけで、インデックスなしで、チューニング不要で何百億件という規模のデータを処理することが可能です。基本的に処理性能はデータ量に依存せず、数十万件でも数百億件でも概ね数秒〜数十秒程度の応答性能を誇ります。実はこの裏ではデータ量に応じて数百、数千台のマシンにスケールさせながら並列処理しているのですが、これらは「莫大なコンピューティングリソース」と「それらを効率的に並列処理・スケールする技術」の両方を持つGoogle社ならではのサービスと言えるでしょう。
マーケットでのGCPの位置付け
ここまでGCPのサービスとしての概要を説明しましたが、ビジネスとしてのGCPはどうなのでしょうか。
GCPはプラットフォームサービスとしては後発であり、サービス種類の充実度で言うとAWSやAzureに完全に追いついているとは言い難いかも知れません。また調査会社であるGartner社の「2015 Magic Quadrant for Cloud Infrastructure as a Service」のレポートでもGCPはVisionaries(概念先行型:マーケットリーダーではないが技術の方向性に秀でているという位置づけ)のポジションに位置づけられています。
それではGoogle社にとって、GCPはどういう位置付けにあるのでしょうか。Google社の8番目の社員とも言われ、Googleクラウドの責任者の一人であるUrs Hölzleは「我々のゴールは2020年までにGoogleを“クラウドの企業”と呼ばれるようにすることだ」と2015年に述べています。また「かつてのAndroidのように、GCPは後発からでも十分に成長できる」とも語っています。
Androidは登場当時にシェアでApple社のiOSに大きく遅れをとっていましたが、今や世界で最も有名なモバイルOSへと成長を遂げました。GCPに関してもAndroidと同様の意気込みがあるということなのでしょう。
この意気込みと自信はどこから来るのでしょうか。それはGoogle社が検索や広告サービスで培った、世界中に分散された巨大なインフラをあたかもひとつのスーパーコンピュータのようにシームレスに取扱う技術そのものが背景にあるからです。Google社はその自社のクラウドの技術コンセプトを「The Datacenter as a Computer」と表現しています。
Google社のデータセンタへの投資は2013年の時点で累計で約2.52兆円(為替レートを$1=120円とした場合)、その後も年間7000億円にのぼる投資をデータセンタに対して行っていると言われています。
これらの巨額の投資による「規模の経済」によって、コンピューティングの単価は逓減し、またセキュリティの向上などや新たな機能への投資効率も向上していくことは想像に難くありません。Urs氏もGCPの価格がムーアの法則のごとく継続して逓減していくことに言及しています(「単純明瞭な新価格体系でクラウド市場の悪習に挑戦するGoogle」)。
これらの「莫大なコンピューティングリソースへの投資による規模の経済」「コンピューティングパワーをあたかもひとつのコンピュータのようにシームレスに扱うための技術」が、GCPの本質や価値を理解していく上で非常に重要になってきます。
Copyright© Digital Advantage Corp. All Rights Reserved.