クラウド図鑑 Vol.20

概要

Google App Engine(GAE)は、Googleが提供する Platform as a Service (PaaS) である。PaaSとしての歴史は比較的長く、2008年から提供が始まり、当初は言語がPython、データベースはBigtableだったが、その後、継続的にサービスを拡張し、現在は言語としてJava, Go, PHPを加え、データベースもMySQLベースのGoogle Cloud SQLが使える。アプリケーションはGoogleのインフラで実行され、負荷分散やフェールオーバーは自動的に行われるため、利用者はインフラの拡張性や可用性をGoogleに任せてアプリケーション開発に専念できる。Googleによれば、1 日あたり最大 70 億件のリクエストまで拡張でき、トラフィックの減少時には自動的にスケール ダウンさせることが可能とのことである。

Google App Engine の管理画面
Screenshot 2015-08-11 at 10.01.21 - Display 1
(クリックで拡大)

URL  https://cloud.google.com/appengine/
2015年8月10日 株式会社クラウディット 中井雅也

機能

Python、Java、PHP、Go などのよく使われるプログラミング言語を使用してアプリケーションを開発できる。また、Django、Flask、Spring、webapp2 などの既存のフレームワークに対応している。データベースは、Cloud SQL を使用した従来の MySQL データベース、スキーマレスなNoSQL であるCloud Datastore を使用できる。開発は、言語固有の SDK を使用してローカルで開発できる他に、よく使われる Eclipse、IntellIJ、Maven、Git、Jenkins、PyCharm などのツールが使用できる。App Engine SDK では、シミュレートされたローカル環境でアプリケーションをテストしてから、コマンドライン ツールやデスクトップ ランチャーからアプリをGoogleのクラウドに展開、またEclipseなどのツールからもGoogleのクラウドにアプリを展開できる。データベース管理、サーバーの構成/設定、複数サーバーへのデータ分散(シャーディング)、負荷分散はGoogleによって行われる。1 日あたり最大 70 億件のリクエストまで拡張でき、トラフィックの減少時には自動的にスケール ダウンさせることが可能とのことである。Googleの他のクラウドサービスと同様に管理コンソールから各種の設定が可能。また、「Managed Virtual Machines」という機能があり、Google App Engineで用意されている言語やデータベース以外のソフトウェアを、Google App Engineの負荷分散機能などの環境下で稼働させることができる。このManaged Virtual Machinesでは、人気の高いDockerのコンテナー技術が使えるため、開発者はローカルの開発環境と同じ実行環境をGoogleのクラウド上に作りやすくなる。

使いやすさ

Google独自の技術が多く盛り込まれているが、開発者は、Eclipseのようなツールでアプリケーションを通常通りに開発/展開できる。Googleのクラウドサービスでは、Compute Engineのようなインフラ(IaaS)より、App EngineによるPaaSが先行して提供されてきた経緯があり、開発者からインフラを意識することが少ない設計になっている。

マニュアルや書籍など

Googleによって多数のドキュメントが用意されている。ただし日本語になっていないものも多い。期間を限定しない無料枠が用意されており、気軽に試用できるので、まずは使ってみることで技術を習得できる。

拡張性

Google App Engineでは拡張は自動的に行われ、複数サーバへのデータ分散(シャーディング)や負荷分散は Google側 で自動的に処理される。1 日あたり最大 70 億件のリクエストまで拡張でき、トラフィックの減少時には自動的にスケール ダウンさせることが可能。

可用性

Googleのプラットフォームをそのまま利用することで、エンドトゥエンドで高い可用性を実現している。アプリケーションサーバーは、ロードバランサーによって冗長化し可用性を高める。単一障害点になりがちなデータベースは、Cloud SQL、または Cloud Datastore をそのまま利用するため、データは複数の地理的に異なる場所(ゾーン)に複製され、フェイルオーバー処理を自動的に行いデータを保護し、障害が発生しても地理的に離れた別なゾーンでサービスが継続される。自動バックアップ機能により、DB インスタンスのポイントインタイムリカバリも可能。

SLA

Google App EngineのSLAは、月間稼働率が99.95%以上としており、達しない場合は請求金額が割り引かれる。


自動化機能

Google App Engine では仮想マシンのインスタンス、ストレージ、データベース、自動スケールの設定などが自動で行われる。さらに、Cloud SQLによってデータベースのバックアップなどの運用タスクも自動化されるため、アプリケーション実行環境がエンドトゥエンドで自動化される。

セキュリティ

Googleのプラットフォームの持つ高いセキュリティをそのまま受け継ぎ、アプリケーションやデータを保護する。ベータではあるが、Google Cloud Security Scannerという機能が提供されており、アプリケーション内のセキュリティ問題を発見して攻撃を未然にに防ぐことができる。Google Cloud SQLでは、データベースのテーブル、一時データ、バックアップなどのデータを256ビットのAESで暗号化し、また、Google内部での通信を暗号化することができる。外部との通信もSSLで暗号化が可能。

データセンターの場所

Googleのクラウドは、北米、ヨーロッパ、アジアの3拠点(リージョン)で運用されており、各リージョンは複数のゾーン群で構成される。これまで Google Cloud で課題とされてきた日本のデータセンターは、2016年11月8日に東京リージョンの正式運用が発表された。2015年5月現在では世界で10のゾーンを展開している。「ゾーン」という形でデータセンターの場所を指定することができる。ただし2015年7月の時点で日本にデータセンターはない。また、Google App Engine はアジアのリージョンでは提供していない。

実績・シェアなど

Googleのクラウド全体として、米調査会社のSynergy Research Groupの調査によれば2015年第一四半期のシェアはAWS, Microsoftに次いで第3位だった。しかしながら導入社数などの具体的な数字は公開されていない。
米Synergy Research Groupによる2016年第3四半期におけるワールドワイドのクラウドのシェアの調査結果では、IaaSではAWSが首位でシェアは45%で、2位はMicrosoft、3位Google、4位IBM、また、PaaSにおいてもAWSはシェアトップで、2位はSalesforce.com、3位Microsoft、4位IBMとなっている。
Google App Engineの有名な事例としては、ホワイトハウスのOpen for Questions があり、アメリカの国民から米オバマ大統領への質問を投稿出来るサイトで秒700件近いリクエストを処理している。また、人気ポップグループ「ワン・ダイレクション(One Direction)」のキャンペーンイベント「1D Day」のクイズアプリ「1D Day Quiz」では1秒あたり数千のクエリを処理したという。

エコシステム

Google App Engineは、2008年のサービス提供時より、開発者指向のサービスであったが、現在人気が高まっているGo言語や根強い人気のあるPHPをサポートしたこと、また無償枠を提供していることで、開発者からは一定の支持を得ている。また、Managed VMおよびDockerのサポートにより対応可能なアプリケーションが増加すると思われる

価格および支払い方法

基本的にUSドルでのクレジットカード決済となる。
まずは1日あたり、28インスタンス時間、Cloud Datastore 5万回、など使用リソースごと(詳細は要確認)の無料枠が用意されており、それを超えると、$0.05/インスタンス/時間、$0.06/10 万回、他リソースごと(詳細は要確認)の費用が発生する。