目次
Google Cloud Platform には技術者気質の尖ったサービスが多い
先日、IT分野の調査会社のGartner社から2017年のIaaS分野のクラウドサービスの格付けが発表されました。(参考:Magic Quadrant for Cloud Infrastructure as a Service, Worldwide) その中でAWS社はクラウドサービスのトップと位置付けられ、Microsoft社(Azure)もAWS社と同じリーダーとして位置づけられました。クラウド御三家とされている Google社(Google Cloud Platform) はというとリーダーにはなれず、VISIONARIES(幻想家)として位置づけられてしまいました。そこまで Google Cloud Platform(以下、GCP) はクラウドサービスとしてAWSと差が開いているのでしょうか? 今回はGCPについて、技術要素をかみ砕いてご説明します。
GCPは主戦場はIaaSにあらず
GCPの機能説明に入る前に、先ほどのGartner社のIaaS分野での調査結果について、補足をしたいと思います。IaaSはクラウドサービスの種類のようなもので、その中でIaaSはハードウェアとOSをクラウドサービスとして提供し、ユーザーはOSの上にシステム構築を行う形態になってます。
IaaSの代表的なクラウドサービスとしては、Amazon EC2などのクラウドサーバー、Amazon S3などのクラウドストレージなどが含まれます。(各サービスの種類は視点によって変わる場合があります) AWSやAzureはIaaSのラインナップが多く、また、容易にブラウザの管理画面(マネージメントコンソール)から起動できるため、非常に多く使われています。対するGCPは Computer Engine(クラウドサーバー)やCloud Storage(クラウドストレージ)などはありますが、他社に比べて使わていないのが現状です。そのため、Gartner社のIaaS分野での調査では残念な結果になってしまいました。
しかし、GCPの代表サービスである App Engine や BigQuery は、PaaSやSaaSの分野に位置付けられるため、IaaS分野以外での評価は異なってきます。
Googleは世界有数のスパコンの開発・保有しているかも?
Googleの代名詞といえが「Google検索」です。Google検索は世界中で使われ、デスクトップ、モバイル共にシェアは9割を超えています。(中国は除く) 多くの人に使われる理由は、世界中のWebコンテンツを集め、分析し、利用者からのWeb検索に瞬時に対応できるレスポンスの良さにあると思っています。
これら世界中のWebコンテンツを分析し、ユーザーからの要求に瞬時に応えるためには、異常なほどのハードウェアとソフトウェアに投資を行う必要がありました。特にハードウェアとしては、クラスタリング(複数のサーバーをネットワークで繋ぎ論理的に1つのサーバとして振舞う機能)のために、サーバー間のネットワーク機器を独自開発などし、非常に高性能なサーバー環境を構築しています。(参考:Googleデータセンター)
GCPはこれらの厳しい要求の元に開発されたGoogleのサーバー環境の一部を間借りして行います。そのため、他のクラウドサービスと比較して、大規模な処理を高速で行えるポテンシャルがあります。
GCPは技術の先行者
クラウドサービスの基本3要素であるクラウドサーバー、クラウドストレージ、クラウドデータベースは、他2社に先行されていますが、並列分散処理とオートスケーリングサービスのサービスについてはGCPが先行していると思っています。その代表サービスとして、App Engine と BigQuery があります。
App Engine
App Engine は2008年のGCPの誕生と共にリリースされました。App Engineを一言で言うなら「オートスケーリング機能付きのサーブレットコンテナ」です。App Engine はECサイトのようなWebサービスのプログラムを App Engine にアップロードするだけで非常に安定したシステムを構築できます。
App Engine の最大の特徴として、オートスケーリング機能があります。オートスケーリング機能は App Engine にアクセスが集中した場合にサーバーダウンタイムなしで瞬時にサーバーを自動的に増やし、負荷分散をやってくれます。App Engine のような機能はサーバーレスサービスと言われますが、このコンセプトのサービスである AWS Lambda が発表されたのが2014年ですので非常に先行していたサービスと言えると思います。(正確には Lambda の用途は App Engine と微妙に異なります)
BigQuery
ビッグデータ分析のデータベースとして、常に Amazon Redshift と比較されていたのが、BigQuery です。しかし、私は BigQuery (2012年リリース) の思想は Amazon Athena (2016年リリース) に近いと思っています。
Amazon Athena はデータレイクサービスになります。Athena は他のデータベースサービスやサーバーサービスと異なり、起動時間による課金が発生しません。その代わりにデータを参照したいときだけ参照データのサイズによって課金が発生するため、頻度の少ないデータ参照の場合は非常にコストを抑えることができます。(保存データのサイズによる課金は多少発生します)
BigQuery は、Redshift のようなデータベースとしての操作性の良さはないですが、Athena と同様の課金体系のためコストを抑えることが可能です。また、BigQuery は参照先のデータ量などによって、自動的に並列分散処理を行ってくれるため、データ量が多くなっても、ある程度一定のレスポンスタイムで結果が返ってくるらしいです。
Machine Learning に対して本気で取り組んでいる
Googleが開発しているものは、Google検索や Android OS だけではありません。GoogleはAIの分野でも様々な開発、企業買収などを行い、GPSを利用した自動運転技術の開発などを行ってきました。
それらAI開発の中で重要なのはMachine Learning(機械学習)の技術です。Machine Learning はAI分野だけでなく、Googleのサービスのあらゆる所で利用されているようです。最近では特に Deep Learning に力を入れており、今年に入って TensorFlow と呼ばれる Deep Learning に重点を置いた Machine Learning ライブラリ(開発関数軍)を無料で正式リリースしたり、TensorFlow の処理に特化した専用のマシンチップ TPU(Tensor Processing Unit) を開発し、それらが動く Cloud Machine Learning Engine サービスをリリースしました。また、TPUを1,000個搭載した TensorfFow Research Cloud と呼ばれるサーバーを条件によっては無料で使えるなどの凄い事をやっています。
これらの成果としては、5月に中国プロ棋士と行った囲碁の三本勝負で三勝したAlphaGo囲碁システムがあります。AlphaGoはGoogle子会社(Google DeepMind)が、GCP上でTenserFlowでプログラミングし、TPUを何個も使い処理を行ったらしいです。
技術者気質が強いのが難点
この様にGCPは非常に優れたサービスが多いのですが、技術者気質が強く、導入には他2社のクラウドサービスより導入のハードルが高いのが難点です。
AWSやAzureはクイック導入できるようにGUIのマネージメントコンソールで対応できる反面、GCPはマネージメントコンソールで操作できる範囲は限られており、CUIのLinuxコマンドによる操作が基本になっています。また、各サービスを利用するためのAPI関数などの使用方法などのドキュメントが少なく、基本的にサンプルプログラムを自分で理解する必要があります。その他にもプログラミングスキル、Dockerコンテナ、Jupiter Notebook などのクラウドサービスのベースとなった機能は知っていることが前提でドキュメントが用意されているため、システム開発初心者が手を出しにくいと思います。
クラウドの歴史はまだ中腹
クラウドサービスが始まって約10年。品質が良く、コストが安いクラウドサービスには、多くのオンプレミスのシステムが移行してきました。そして、クラウドファースト名のもと新規システムでもクラウドサービスを利用することが当たり前になってきました。これらは、オンプレミスで使用していた開発手法・ノウハウをクラウドサービスが踏襲できた事にあると思っています。その上で AWS や Azure などが利用者の要望に応え、様々なラインナップのサービスを整え、容易に導入できるようにした事は大きいと思います。
今後は大規模な Machine Learning などの需要などによって、オンプレミスで行ってきた開発手法では太刀打ちできなくと思っています。その時、GCPのようなクラウドサービスの先駆者が新しい開発手法でリードする時代がやってくると思っています。
今後、弊社としては既存の分析システムは、総合力で強い AWS や Azure などを使いつつ、App Engine や BigQuery などを Machine Learning の尖ったサービスを検証・導入しながら、GCPの範囲を広げていこうとしています。