Google Cloud Platform(GCP)は便利だが扱いにくい。そんな話を、GCPについて調べ始めたエンジニアから聞くことがある。サービスはシンプルだが、企業情報システムの用途を意識してコントロールを利かせようとすると壁にぶつかる、というのである。

 これはGCPの欠点というよりは、サービスの設計思想によるものである。

 今回は前段で、AWSと対比させながらGCPの特徴を浮かび上がらせる。なぜGCPが扱いにくく感じるのかが理解できるはずだ。

 さらに今回の後段から、GCPのサービスを解説していく。今回取り上げるのは、仮想マシンを初めとするコンピューティングサービスだ。

Googleが自社のために作った大規模分散基盤

 AWSが早々に提供を開始し、今でも中核サービスとなっているのは、仮想マシン、ストレージ、ネットワークといった、誰もが必要とする汎用的なITインフラ(IaaS)である。

 仮想化技術が企業情報システムに浸透し始めた2000年代前半、AWSは「汎用的なITインフラの仮想化/共用化による効率向上」があらゆる企業にとって有効だと考え、どの企業にとっても使いやすいサービスに仕立てた。

 「一般的なニーズに対する感度の高さとサービス化の早さ」が、AWSの特徴の一つといえる。

 一方GCPは、検索などのGoogleサービスが稼働する大規模分散コンピューティング環境に、後から外部ユーザー向けインタフェースを設けて誕生したサービスだ。

 AWSが仮想化技術を軸にクラウドサービスを早々に提供し始めたころ、Googleは分散データ処理を軸とする基盤技術の開発を進めていた。Googleの目的は、「ITインフラを早く効率的に調達したい」といった一般的なニーズに応えることよりも、「データを活用した大規模なWebサービスを、世界中のあらゆる人に同じように、安定して届けたい」という自社のニーズを満たすことだった。

 想定している規模は、一般的な企業のニーズとはかけ離れている。Googleは10億人単位のユーザーに提供することを前提としてサービスを開発している。

 つまりGCPは、「Googleが自社のサービスを提供するうえでの特殊な要求を実現するITインフラ」から生まれたものだ。

 Googleが初期にリリースした、アプリケーション実行基盤「Google App Engine」やデータウエアハウス「BigQuery」はどちらも、利用者が意識しなくても大規模分散環境でスケールアウトするようにできている。独自の仕組みを実装しているので、既存のアプリケーションをそのままGCP上で動かすといった汎用的な使い方はできない。しかしGoogleのインフラの特徴を最大限活用し、簡単かつ比較的安価にサービスを利用できる。

 これらのサービスでは、コンピューティングリソースやストレージの配置を仮想プライベート空間(VPC)内に限定できない。リソースを不特定多数の利用者と大規模にシェアすることと引き換えに、Googleの最先端技術の恩恵を受けられる。

 企業情報システムでは、セキュリティを考慮して、VPC内に囲い込めるリソースだけ利用を許可するケースが少なくない。だがGCPでは、前述のようなGCP誕生の経緯から、VPC外の分散基盤で提供されるサービスが比較的多い。こうした点が、「便利だが扱いにくい」と感じる要因だろう。

GCPはインフラ構築よりアプリ開発にフォーカス

 GCPが扱いにくいと感じる要因をもう一つ挙げる。

 先述の通り、AWSのサービスのうち特に初期に提供が始まったサービスは、仮想マシン、ストレージ、ネットワークといったITリソースを仮想化したものである。これらは従来ITインフラ構築をしていたエンジニアの業務をそのままソフトウエア操作で簡単に実現できるという点で分かりやすく、AWSが広く普及した要因の一つになっている。

 一方のGCPはもともと、Google社内のソフトウエアエンジニアが、自社サービスを開発する際に可能な限りITインフラを意識することなく作業できるように開発されている。

 例えば、ある新規サービスを開発するために大量のデータで機械学習をしたい場合、大規模計算機クラスターにジョブを投入するだけで簡単に大量の計算リソースを確保でき、エンジニアはデータの解析やアプリケーションの開発に集中できる、といった具合だ。

 すなわちGCPは、インフラ構築よりもアプリケーション開発/サービス開発にフォーカスしている。ソフトウエアエンジニアにインフラを気にさせずアプリケーションを開発してもらい、隠ぺい化したクラウドインフラにデプロイするだけで動くようにしよう、という発想でサービスを設計している。

 このためGCPの多くのサービスでは、ユーザーが管理や運用を気にする必要のない「フルマネージドサービス」として早くから整備されている。前述の「Google App Engine」はその代表格だ。詳細は後段で解説するが、App Engineを利用すればWebアプリケーションのためのインフラが自動的に用意され、利用者はアプリケーションの開発・デプロイに注力できる。

 一方で、構築されたサーバーインフラを自由に利用することはできず、従来通りの細かなサーバー運用は難しい。そうした運用は全てApp Engineの機能に任せる、というのがサービスのコンセプトだ。

 GCPはもともとこうした発想から生まれているため、従来通りの細かなコントロールをしやすいIaaSよりもPaaSのほうが先に整備され、充実している。それゆえ、特にITインフラを自由にコントロールしたいエンジニアから見れば、従来のITインフラの構築・運用との関連付けが難しく、扱いにくいと感じるのだろう。

GCPの根底にある特徴を理解しよう

 ここで説明したGCPとAWSの違いは、単純にどちらかの優劣を示すわけではない。GCPが特殊なニーズに端を発した独自基盤で構築されているといっても、その結果生み出されたサービスは「安い・速い・安定している」といった点で一般的な企業にとっても利点が大きい。

 Googleは近年、一般的なニーズに対応したサービスラインアップを充実させており、従来通りのITインフラ整備にもGCPを使えるようになっている。逆にAWSは、インフラを隠ぺいしたPaaSを着実に拡充している。

 強調したいのは、「大規模分散コンピューティング」や「インフラの隠ぺい・共用化」といった、GCPの根底にある特徴だ。これらを頭に入れておくことで、GCPのサービスが理解しやすくなるうえに、クラウドサービスの選択にも役立つはずだ。

この先は有料会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら