連載
» 2016年04月20日 05時00分 UPDATE

書籍転載:ゲーム開発が変わる!Google Cloud Platform実践インフラ構築 第2章 (1/3)

あらゆる書籍の中から、Windows Server Insider読者に有用だと考えられる情報をピックアップして転載する本連載。今回は、ゲームインフラエンジニア向けのGoogleのクラウドサービス「Google Cloud Platform」の中からGoogle Cloud Platformの概要ならびに料金に関する章を転載する。

[橋口剛,著]
書籍転載
Windows Server Insider


「書籍転載」のインデックス

連載目次

本コーナーは、インプレスR&D発行の電子書籍『ゲーム開発が変わる!Google Cloud Platform 実践インフラ構築(2016年3月4日発行)』の中から、特にWindows Server Insider読者に有用だと考えられる個所を編集部が選び、同社の許可を得て転載したものです。
『ゲーム開発が変わる!Google Cloud Platform 実践インフラ構築』の詳細は「目次情報ページ」やAmazon Kindleストアをご覧ください。

ご注意:本記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。


 前章ではGoogle Cloud Platform(以下、GCP)とは何かと、その概要について紹介しました。本章ではGCPがオンプレミスや他のクラウドサービスと比べてどう違うのかについて、ベンチマークやコスト比較なども行いながら詳細に説明します。

“The Datacenter as a Computer”

 最初に、GCPがオンプレミスや他社のクラウドサービスと異なる特徴的な点について説明します。

 『The Datacenter as a Computer』というタイトルをご存知でしょうか? これはGoogle社のLuiz André BarrosoとUrs Hölzleが2009年に公開した、クラウドコンピューティングアーキテクチャについて解説した書籍です(邦題『GOOGLEクラウドの核心』日経BP社)。このGoogleの8番目の社員でもあるUrs HölzleはGoogle社のインフラ責任者の一人であり、GCPは正にこの「The Datacenter as a Computer」というコンセプトに基いて設計・構築されています。

 これは、データセンタを単なるバラバラのコンピュータの集合体ではなく、巨大な1台の大規模分散コンピューティングプラットフォームとして効率的に取扱うための技術コンセプトです。Google社は、あたかも一つの巨大なスーパーコンピュータのように振る舞う世界中のデータセンタに分散されたハードウェア上で並列処理を行い、同社のあらゆるサービスを均一に提供しています。

 それではGoogle社はこの「The Datacenter as a Computer」をどのようにして実現しているのでしょうか。GoogleをGoogleたらしめている点はどこにあるのでしょうか。本項ではその特色について解説します。

自社製サーバと自社製ソフトウェア

自社製のサーバ

 Google社は自社で使うハードウェアの多くを「自社で」作っています。その生産台数はおびただしいもので、名だたるサーバメーカに匹敵する台数を、自社のために生産しています。またOSも自社仕様でカスタマイズされたものを使い、用途によってはプロセッサの設計も行っていると言われています。このように自社の要求に特化した均一なハードウェアを、サーバメーカー並みの規模で調達することで、コンピューティングパワーの投資対効果を向上させることが可能となります。

自社製のソフトウェア

 以下の年表が何かわかるでしょうか。また、この中のいくつの単語をご存知でしょうか。

Google社内用途で開発された分散コンピューティングのためのソフトウェア Google社内用途で開発された分散コンピューティングのためのソフトウェア

 これはGoogle社が自社内もしくは自社のサービスのために構築した社内ソフトウェアです。古くは大規模分散ファイルシステムであるGFSや大量データ処理モデルであるMapReduce、Gmailでも活用されている大規模分散データベースのBigtableなど、これらのソフトウェアはGoogle社のサービスを構築・運用する上で欠かせない基礎技術です。参考までにそれぞれを下の表に簡単に説明します。

サービス名 概要
GFS Google File Systemの略で、旧世代の大規模分散ファイルシステム
MapReduce 大規模分散バッチ処理フレームワーク
Bigtable 大規模分散NoSQLデータベース
Chubby 大規模分散ロックサービス
Collossus GFS後継の大規模分散ファイルシステム
Dremel SQLライクなインタフェースを持った大量データ集計処理エンジン
Spanner 地球規模でトランザクション処理を可能にする大規模分散データベース
Borg Google社の多くのサービスで使われているコンテナ技術
Google社内用途で開発されてきた分散コンピューティングのためのサービス

 GCPはこうしたGoogle社自身がフル活用してきた高度なサービス基盤を一般のユーザ向けに解放したサービスなのです。例えば上記のBigtableはそのまま「Bigtable」という名前で、Dremelはログ分析を中心に利用されている「BigQuery」というサービスとして提供されています。

Googleのデータセンタへの投資

 ではGoogle社のデータセンタへの投資規模はどの程度のものでしょうか。Data Center Knowledgeの2013年9月17日の記事によると、Google社の累計の投資額は210億ドル($1=¥120とした場合、2兆5200億円)とのことです。またそれ以降も概ね年間に70億ドル〜80億ドルの投資を行っており、現在では累計で350億ドル程度($1=¥120とした場合、4兆2000億円)に達しているかと思われます。

 GCPの責任者も、年間7000億円を超える設備投資こそが、グーグルのクラウドに対する「本気度」を示すのだと言っています(「グーグルはクラウドに本気だ、投資額がその証拠」)。

ネットワーク

海底ケーブルとPOP

 Google社が提唱する「The Datacenter as a Computer」を実現する上で最も重要な要素は何でしょうか。それはネットワークです。

 Google社は海底ケーブルの敷設を自社で行っており、その帯域は通信会社並みだとも言われています(「海底ケーブルが日本に上陸する様子:Urs氏のGoogle+への投稿」)。データセンタ間はこのようなGoogle社の高速な専用線で結ばれ、世界中にまたがったデータセンタ間も高速に通信することができます。

 また世界中に約70箇所のPOP(Point of Presence)、もしくはエッジロケーションと呼ばれるGoogle専用ネットワークへの接続ポイントを持っており、ユーザがGCPをはじめとしたGoogle社のサービスにアクセスする場合、インターネットを経由するのはPOPまでで、POPに入ってしまえば後はGoogle社の高速な専用網をフル活用できるのです。

 さらに、多くのISPや通信業者はGoogleのPOPと直接繋がっているため、インターネットを経由してもGoogleサービスにアクセスするまでのポップ数は一般的に極めて小さいものとなります。

Googleの海底ケーブルネットワークとPOP Googleの海底ケーブルネットワークとPOP

Google内部ネットワーク

 GCPではJupiterと呼ばれるネットワークファブリックと、先ほど紹介した専用ケーブルをあわせて、リージョンやデータセンタをまたいだ高速な通信を可能としています。Google社のブログによると「現在のJupiterファブリックは二分割帯域幅で1ペタビット/秒を超えています(「データセンター ネットワークに対する Google の取り組み - 最新世代のJupiterを紹介」)。これだけの能力があれば、10万台のサーバがそれぞれ 10Gb/秒で情報を交換でき、アメリカ国会図書館所蔵図書のスキャンしたコンテンツ全体を1/10秒未満の時間で読み込むことができるでしょう」とあります。この圧倒的なネットワークスピードが、BigQueryやライブマイグレーションなどの前衛的なサービスの一つの要になっています。

 またGCE(Google Compute Engine)ではSDN(Software Defined Network)とNFV(Network Function Virtulization)を組み合わせた「Andromeda」と呼ばれる仕組みを活用することで、GCPユーザ間でのネットワーク空間を隔離すると共に、世界中のリージョンをまたがった高速なプライベートネットワークの構成を可能としています。

高品質なネットワークとロードバランシング

 また、GCPのネットワークは内外ともに非常に品質が高く、高負荷な状態でも安定しています。ここでいう安定とはアクセス負荷に伴うレイテンシの増大の事を指しているのですが、GCPではそれが安定しており、ゲームのプレイヤに高品質なユーザエクスペリエンスを提供することが可能です。

 またロードバランシングは非常に強力で秒間100万のリクエストでも、事前のウォーミングアップなく処理することが可能と言われています。これはGCPのロードバランシングがgoogle.comや他のGoogle社のサービスと同じ仕組みをそのまま活用しているためであり、こういった強みはGCPならではと言えるのではないでしょうか。

コンテナ技術とスケーラビリティとコンピューティングROI

コンテナとスケーラビリティ

 またGoogleのサービスを特徴づけるものとしてBorgというコンテナ技術があります。GoogleはあらゆるサービスをVMではなくコンテナの上で動かしており、その規模は週に20億コンテナが稼働していると言われています。全てのサーバはコンテナレイヤによって抽象化されており、あらゆるサービスを物理サーバを意識することなく稼働させることができます。つまりある時YouTubeを稼働させていたサーバを次の瞬間に全く別のサービスで使用することが可能です。

 例えばGAE(Google App Engine)はアクセス負荷に応じて自動でスケールしますが、これらはコンテナで実装されています。そのためわずか数十ミリ秒という時間でインスタンスが起動します(Go言語の場合)。これはVMでは到底実現することは難しいでしょう。

 前章でもご紹介したSnapchatはGAEのオートスケールな特徴をフル活用し極めて少人数のインフラエンジニアでこのサービスを維持しています。正にGAEのスケーラビリティをフル活用した事例と言えるでしょう。

コンテナとコンピューティング単価

 Google社ではほとんどのサービスがコンテナベースで運用されており、サービス間でコンピューティングリソースを使いまわしできるため、極めてサーバの稼働効率が高いと言われています。これはつまりは投資単位当たりの処理能力を高めることであり、結果としてGCPはサービスを相対的に安く提供できるということです。事実、GCPは他のクラウドサービスと比較してコストパフォーマンスは高いと評価されています。

 米国環境保護庁のデータセンタのエネルギー研究を行っている、Stanford大学のJonathan Koomey教授ら研究者グループによると、調査対象のデータセンタ内にある約4000台の物理サーバのうち30%が過去6ヶ月間に何も行っていないか、もしくは稼働しているものの有用な情報を配信していないことがわかったそうです。興味深いことに、2008年にコンサルティング会社であるMcKinsey & Co.が行った調査結果でも同様に約30%のサーバが稼働していないという調査結果が出ています。要するに2008年から現在まで、データセンタ内のサーバの稼働率は約30%でほとんど変化がないということです。極論してしまえばコンテナを使わない物理/仮想サーバを礎とした一般的な規模のデータセンタでは60%〜70%の稼働率(≒コンピューティングROI)が現実的な限界値なのかも知れません。

 クラウドサービスにおいて、稼働率はユーザに提供するコストに直結します。Google社のデータセンタは規模の経済という観点のみならず、コンテナ技術を用いてこの稼働率という観点でも非常に効率的な運用を行っています。なお、GCPのコストに関しての詳細は本章のコストパフォーマンスの項で更に詳細に説明します。

並列処理と大量データ分析

 本章で紹介した分散コンピューティング技術をフル活用し「The Datacenter as a Computer」を実現しているGCPのサービス例を紹介します。

 BigQueryは大量のデータをチューニング不要で集計するOLAP/DWHサービスですが、あるデモでは1000億行(4TB)のデータに対して、インデックスを使わないフルスキャンの正規表現マッチ+Group Byを実行して、レスポンスは30秒以下でした。100億行だと7秒程度です。なぜこのような速度を実現できるのでしょうか。

 これはBigQueryではクエリを処理する度に数千台のディスクに並列アクセスしており、分散コンピューティング・並列処理を行っているためです。もちろんユーザからは単にクエリを発行しただけにしか見えません。このシームレスな並列処理こそがGoogleクラウドの実力なのです。

“The Datacenter as a Computer”のまとめ

 以下にGCPの技術コンセプトである「The Datacenter as a Computer」についてまとめます。コンセプトはコンセプトでしかありませんが、GCPの特徴やこれからを理解するに当たって非常に重要なポイントです。

The Datacenter as a Computerとは The Datacenter as a Computerとは

 筆者の私見ではありますが、良くも悪くもGoogleは「未来のインフラのあるべき姿像」をGoogleなりの解釈で最短距離で目指しているかのように思えます。そのあるべき姿像に向けて、GAEやBigQueryといったサービスは正に「The Datacenter as a Computer」の一つの具現化された姿なのではないでしょうか。

 一方、Amazon社やMicrosoft社、国内系のクラウドベンダは既存のインフラパラダイムの延長線上に丁寧にそのサービスを積み重ねています。オンプレミスのパラダイムからボトムアップで少しずつインフラサービスを抽象化していくというアプローチです。これは良い悪いの問題ではなくアーキテクチャとしての哲学の差なのでしょう。

 一つ例として、AWSのサービスはEC2やS3など、より低レイヤのサービスから開始されているのに対し、Google社は2008年にPaaSであるGAEからサービス提供を開始しています。IaaSであるGCEの提供は2012年の発表を待つことになります。こうした発展の差異はプラットフォーム哲学の違いという観点からみても大変興味深いものです。

 IaaSは単にOSレイヤまでを抽象化しているに過ぎず、広い意味ではどのクラウドベンダでもできることはほとんど同じですが、コンピューティングプラットフォームの哲学に対する違いから各クラウドベンダを比較してみても面白いのではないでしょうか。

       1|2|3 次のページへ

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。