Google Cloud PlatformはAWSなどとどこが違うのか

先週のGoogle I/Oで一般公開が発表されたGoogle Cloud Platformをめぐって、誤解があるようだ。しかしそれは、今度できた新しいプラットホームではない。むしろそれは、Googleがこれまで何年も使ってきたものだ。それは、Googleの基盤だ。それは、GoogleをGoogleたらしめているものだ。そしてそれが今初めて、デベロッパや企業に公開されようとしている。

Google Platformは、誰もがそれを利用できるようになったという点が新しい。これまでは、限られた人たちしかアクセスできなかった。

Google Cloud Platformが公式にローンチしたのは、昨年のGoogle I/Oでだ。だからまだ、Google I/OのようなイベントではGoogleの新しいサービスであるかのように騒がれる。しかしその機能集合は、Amazon Web Services(AWS)に比べると見劣りがする。サービスレベルアグリーメント(service level agreement, SLA)の深さでは、Windows Azureにかなわない。PaaSを導入しようとしている顧客には、ほかにも、Openshift、Red Hatといった選択肢があり、自社でオープンクラウドを構築したければOpenStackがある。ほかにも、IBM、HPなど、選択肢は数多い。

では何がGCPの強みか?

しかしGoogle Cloud Platformには、他にない強みが一つある。それは、企業が自分のデータセンターをそこに接続すれば質問の答が数ミリ秒で得られるネットワークだ。Googleが、3D地図や翻訳APIやGoogle Glassなどを提供できるのも、そんなネットワークがすでにあるからだ。

Google I/Oの分散データベースセッションのパネルでMongoLabの協同ファウンダWill Shulmanは、“それは猛烈に速い”、と言った。“顧客企業はインターネットに直接接続するのではなく、データセンターをGoogleのプライベートな分散バックボーンに接続するのだ”。

ネットワークが高速であることは、いくつかの重要な違いをもたらす。Google Compute Engineでは計算処理とストレージがそれぞれ別だが、ネットワークの速度が速いためにユーザは一つのもののように感じる。一台の、巨大なスーパーコンピュータを自分のプログラムから使っているような感覚だが、実はそれは数千台ものサーバに分散しているコンピューティング&ストレージサービスなのだ。

また、ネットワークが速ければ、一定時間内に処理できるデータ量も多くなるから、コストに関しても有利だ。

Googleの料金体系には、このようなネットワーキング効果が織り込み済みだ。そのやり方はクラウドプロバイダProfitBricksに似ており、ProfitBricksはInfniBandを使ってGoogleの10GBネットワークよりさらに大きな帯域を提供している。しかしそれでもGoogleのファイバネットワークとデータセンター最適化構成は、時間単位ではなく分単位の料金体系を可能にしている。

つまりGoogleのプラットホームでは、顧客がコアを倍にして、それまで1時間を要していたデータジョブを、同じ費用で30分で終えることができる。

Googleは、データセンターを生き物のように見ている。それらは孤立した島ではなく、接続されている。そのほかのデバイスやサーバや、ほかのデータセンターに、接続されているのだ。

サービスの実体がサーバではなくネットワークだとの認識から、Googleはネットワークに力を入れざるをえない。今や、世界はデータの群ではなく、データの織物(ファブリック)だ。しかし、ネットワーキングは高くつく。計算(CPU)コストとストレージコストがますます低下していく中で、ネットワーク費用はそれほど劇的に低下しない。昨年6月に行われたOpen Network SummitでGoogleのプロダクトマネージャAmit Argawalが、プレゼンでそう語った。

上のビデオでArgawalは、同じ10GBの接続パイプでも、合衆国国内の二地域間と、市場が急速に発展しているアジアの二か国間ではコストが大きく異なる、と言っている。デバイスは至るところにあり、今や使い捨て状態だ。スマートフォンを紛失しても、新たに買ってバックアップするのに30分もかからない。しかしデータはデバイスではなくクラウドにある。データに対するサービスはネットワーク上に住まう。だから、高速で対話的でなければならないのは、今やネットワークだ。ネットワークが速くないと、ユーザのエンゲージメントも滞る。高可用性が、このスタックのあらゆるレイヤに組み込まれていなければならない。

Googleではデベロッパの役割が大きい理由

ネットワーキングやそのほかの費用を抑えるために、Googleはオペレーションの最適化に絶えず努めている。インターネットのビジネスモデルは、無料または低額を要求する。したがってGoogleは、そのサービス上でデベロッパがアプリケーションを作る場合、それがGoogleの広告プロダクトの拡大に貢献し、Google Appsのようなローコストのサブスクリプションサービス(定額会費制サービス)であることを求める。

そしてそのためにGoogleがデベロッパを集める「場」が、Google Cloud Platformであり、そしてデベロッパたちはGoogleの明日の経営にも貢献するのだ。

Google I/OでGoogleは、デベロッパがGoogleのバックエンドを利用するために提供しているツールについて説明した。Google Mapsにも、Chromeにも、AndroidにもBigQueryにも、それらが組み込まれている。Google Glassも、いずれそうなる。

AWSにはリッチなデベロッパのエコシステムがあり、提供しているサービスもきわめて多様かつ深い。しかしAmazonにはGoogleのような自己同一性がなく、Google的なサービスのプロバイダでもない。AmazonになくGoogleにあるものは、デベロッパに提供できる豊富なデータ(とそれらを取り出すAPI)だ。それが、多くのデベロッパを抱える企業に対してもGCPの強力なセールスポイントになる。

たとえば分散データベース企業Cloudantなどにとっては、Google Cloud PlatformはAWSと並ぶ重要なコミュニティだ。“Google上のデベロッパは数が多いだけでなくどんどん増えている”、分散データベースパネルに同席した同社の協同ファウンダでチーフサイエンティストのMike Millerはそう語った。

Google App Engineは、デベロッパにとってのGoogleの魅力を象徴している。GoogleはGoogle I/Oで、Google App EngineでPHPをサポートする、と発表した。PHPを使ってWebサイトを構築している大量のデベロッパたちが、これからはGoogleを利用できることになる。3月にGoogleがTaleriaを買収したのも、動的(ダイナミック)プログラミング言語のサポートを拡大し、システムのスケールアウト(==分散化)のニーズに効率的に対応していくためだ。本誌のFrederic Lardinoisは、この買収についてこう書いている:

同社のサーバを使うと、アプリケーションのコードはそのままで、“より少ない台数でより多くのユーザを扱える”、という。また、“自分の好きな生産性の高い言語を使えるが、スケーラビリティとパフォーマンスはコンパイル言語並になる”、という。

そしてさらにGoogleは、Google App Engineの使いやすさの増大に努めている。たとえばバックエンドをサービスツールとして提供し(上述)、また管理機能の充実により、デベロッパがバックエンドのことを忘れてアプリケーションのコードに集中できるようにしている。

デベロッパでない人でもアプリを構築できるという“ヴィジュアルPaaS”サービスOrangeScapeなどにとっては、とくにこの点が重要だ。デベロッパから見ての、Google App Engineの利用インタフェイスの単純化、それにより同社はITチームの肥大を防げている、とCEOのSuresh Sambandamは言う。

Googleのネットワークは、一社が持つものとしてはおそらく世界最大だ。しかし同社の今後の最大の課題は、そのデータセンターの費用低減である。いわばGoogleは、同社のインフラストラクチャを公開してその分散ネットワークをより効率的に拡大し、しかもそれと同時に、多くのデベロッパを惹きつけてそのビジネスモデルをスケールしていかなければならないのだ。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))