GAE登場、BigQueryのリリース、GCEでの妥協、そしてGKE
GCP誕生から10年、その進化の歴史を振り返る
2008年 GCPの幕開け ~Google App Engineの登場~
2008年にGoogleがGAEを発表しました。これがGoogle のクラウドサービスの幕開けでした。
GAEは、WebアプリケーションにフォーカスをあてたPaaSタイプのクラウドサービスです。バックグラウンドのデータベースには、Datastore(現Cloud Datastore)が採用されています。
GAEには以下のような特徴があります。
- 簡単にスケールできる
- 簡単に開発を進めることができる
- フルマネージドなサービスである
簡単にスケールできる:GAEの大きな特徴としてオートスケールの機能があります。リクエストが来れば来るほど、インスタンスが自動で立ち上がります。ウォームアップ不要で、インスタンスが必要以上に多く立ち上がることもありません。従来の開発スタイルでは、突然のリクエストの増加に対応できるように、いくつかサーバーを待機していないといけませんでしたが、GAEはその必要がなくミリ秒単位での起動ができるため、急なスパイクにも対応できました。リクエストが減ればそれに合わせて勝手にインスタンスもシャットダウンしてくれるため、余計なコストがかからないようになっていました。また、1日の無料枠というのが設けられており、ランニングコストを抑えることができるため、特に一部のエンジニアには大変受けがよかったです。
簡単に開発を進めることができる:GAEはPaaSなので、アプリケーションの実行環境がクラウド上で提供されています。そのため、Webサーバーの構築や煩わしいネットワーク設定などが一切不要です。開発者はコードを書くことだけに専念でき、本番環境さながらの開発用ローカルサーバーもSDKに含まれており、ローカルの環境構築もすぐ準備できます。デフォルトでバックグラウンドのデータベースとしてDatastoreが使えるようになっているため、SDKを入れるだけで開発に取り掛かることができます。デプロイはコマンドを叩くだけで完了し、オートスケーリングする特徴からロードバランサーも必要ありません。
フルマネージドなサービスである:GAEはPaaSなので、すべてがプラットフォーム側で管理されている点が大きな特徴です。OSのアップデートやパッチなどを当てる必要もなく、ハードウェアの障害やデータセンターのネットワークの障害などもプラットフォーム側ですべて処理され、障害があってもすぐに復旧します。また、Datastoreを使うことでデータベース管理者も必要がありません。Webアプリケーションエンジニアがいれば、Webアプリケーションの開発から運用、保守まで可能です。
2010年 Google Cloud Storage登場
当時のDatastoreには、バイナリーデータをそのまま保存できるBinary Large OBject(Blob)プロパティというプロパティがありましたが、Blobデータのサイズが最大1MBに制限されるという問題がありました。そのため、当時のエンジニアはDatastoreにファイルを分割して保存するなどの作業を行っていました。
2010年にGoogle Cloud Storage(GCS)がリリースされ、Blobstoreサービスを利用してGCSにBlobデータを保存することができるようになりました。
2011年 BigQueryの衝撃
また、2011年にはBigQueryサービスがプレビュー版で登場しました。BigQueryはGoogleが提供するビッグデータ解析のためのクラウドサービスで、ハイスケーラブルで信頼性の高いGoogleのインフラで動いているのが最大の特徴です。また、BigQueryはSQL 2011標準に準拠しているため、SQLができれば学習コストなく扱うことができます。
BigQueryは、もともとはDremelという名前でGoogleの社内ツールとして使われていた仕組みです。Googleが自社サービスで扱うデータは、YouTubeやGmail、Googleサーチのログなどとても大きなものです。Googleはそういった大量のデータをGoogle Cloud Platformのどこかに保存し、集まってくるデータを集計したり、分析したりしています。
Googleは、もともとはMapReduceやGoogle File System(GFS)などを自分たちのために開発し、集計や分析に活用していたのですが、やはり時間がかかり、リアルタイム性ではあまり実用的ではありませんでした。Googleは、自社で扱う数百億以上のデータセットに対して、インタラクティブにクエリを発行したら数秒以内で返ってきて、さらに、その結果を見ながら次のクエリを投げることができたり、結果に合わせて統計データをビジュアルに表示できたりといったシステムを必要としていました。その要求にこたえるためにDoreelを自社開発したのです。
Dremelを一般向けに提供したサービスがBigQueryです。BigQueryを使えば誰でもGoogleと同じ規模のデータを数秒で分析できます。
BigQueryはクラウドサービスなので、自分たちでハードウェアを準備して、ソフトウェアをインストールする必要はありません。必要なリソースはすべてGCP上にあります。数百億のデータを数秒で検索できるだけの大量のリソースが必要なときに、必要な時間だけ使うことができます。