Google App Engine(GAE)とは 概要や機能、活用事例を5分で入門

  • Google Cloudに関する記事
9min

こんにちは。クラウドエース編集部です。

Google Cloud Platform (GCP)の中でも、長い歴史を持つ Google App Engine(GAE) 。
アプリケーション開発に集中できる仕組みが整っているサービスとして、高い支持を集めています。

この記事では、Google App Engine(GAE) の概要や具体的な特徴、簡単な始め方、活用事例などについて紹介していきます。

また、GCP のサービスについて詳しく知りたい、AWS や Azure との違いを知りたいという方のために GCP・AWS・Azure 3大クラウドサービス比較表 をご用意しておりますので、ぜひ本記事と合わせてお読みいただければと思います。

Google App Engine(GAE) とは

Google App Engine(GAE) とは、Google が提供する Google Cloud Platform (GCP)のサーバーレスサービスのひとつです。

Google のサーバー環境でプログラムを実行し、Web アプリケーションの公開ができるプラットフォームで、PaaS(Platform as a Service)に分類されます。

対応しているプログラミング言語の豊富さや、自動での高速スケール、安定したインフラ環境などが大きなメリットです。

Google App Engine(GAE) には、用途に応じて使い分けられる2つの環境が用意されています。

1つ目は、「スタンダード環境」で、指定した言語のアプリを Google App Engine(GAE) が用意する仮想環境で実行します。

2つ目は、「フレキシブル環境」で、アプリは Google Compute Engine(GCE)上の仮想マシンの Docker コンテナ内で実行されます。

スタンダード環境には細かい設定が不要で開発に集中しやすいというメリットがあり、フレキシブル環境には細かな設定が可能でカスタマイズできる幅が広いというメリットがあります。
それぞれの違いを理解して、用途に合った環境を選択することが大切です。

Google App Engine(GAE) の機能・特徴

続いては、より詳しく Google App Engine (GAE)の機能や特徴について見てみましょう。

自動スケールが可能

Google App Engine(GAE) の特徴の1つ目は、自動スケールをしてくれる点です。

通常、運用しているサービスが拡大したり、アクセスが集中したりすると、サーバーへの負担が大きくなるため、スケールアウトが行われます。
これに人力で対応するためには、サーバを分散させるためにロードバランサーを用意し、必要な台数分のサーバーを立ち上げる必要があります。
そして、これはエンジニアとって大きな負荷となります。

しかし、Google App Engine(GAE) では、 サーバーの負荷に応じて自動で最適にスケールしてくれます。
さらに、スケールアウトによるインスタンスの起動処理時間も数十ミリ秒と短いことも特徴的です。

このように、Google App Engine(GAE) では、Google が提供する強力で安定したインフラストラクチャー上で、スケーリングまでを任せながらアプリケーションを運用できます。

豊富な開発言語に対応

Google App Engine(GAE) の特徴の2つ目は、豊富な開発言語に対応していることです。

具体的には、スタンダード環境の場合は Python、Java、Node.js、PHP、Ruby、Go の6つの言語に対応しており、フレキシブル環境ではさらに.NETや、独自に導入した言語環境にも対応しています。

好みや目的に応じて自由に開発言語を選択できることは、Google App Engine(GAE) の大きなメリットのひとつです。

便利な管理コンソール

Google App Engine(GAE) の特徴の3つ目は、開発者用の便利な管理コンソールを利用できることです。

管理コンソールでは、利用状況やログ、データの詳細な確認ができるほか、セキュリティ設定やアプリケーションへのアクセスの承認設定、利用環境のパフォーマンス設定なども行えます。
また、ユーザー認証やメールの送信、特定の時刻でのタスクの自動起動なども利用可能です。

このように、Google App Engine(GAE) を利用することで、アプリケーション運用に関するさまざまな設定も容易に行えるようになります。

従量課金制

Google App Engine(GAE) の特徴の4つ目は、従量課金制が取られており、無駄な支払いを防げる点です。

具体的な料金形態は、スタンダード環境とフレキシブル環境で異なります。
スタンダード環境の場合は、インスタンスに応じて1時間あたりの課金料金が設定され、起動したインスタンスに応じて料金が請求されます。
また、インスタンスには1日ごとの無料割り当てもあります。

フレキシブル環境での料金も、起動したインスタンスに応じて決定されますが、スタンダード環境と異なり無料枠はありません。
また、フレキシブル環境では最低1つのインスタンスが起動しているため、常に CPU やメモリ、永続ディスクの使用リソース分の利用料金が発生します。

これらの点も加味して、運用するサービスに合った環境選びを行いましょう。

Google App Engine(GAE) での開発方法

ここからは、Google App Engine(GAE) での開発方法について、簡単に見てみましょう。

Google App Engine(GAE) の初期設定

まずは、Google App Engine(GAE) が提供される Google Cloud Platform (GCP)へログインしてください。
初めて Google Cloud Platform (GCP)を使う場合は、アカウント作成時に無料トライアルへの登録が可能です。

Google Cloud Platform (GCP)への登録を終えたら、Google App Engine(GAE) のテスト用に新しいプロジェクトを作成します。

管理画面の「 My First Project 」→「プロジェクトを作成」にて新規プロジェクトを作ってください。

新規プロジェクトを作成したら、管理コンソールのメニューから「 App Engine 」→「言語を選択」で言語とサービスを提供するリージョンを選択してください。
リージョンは、東京の場合は「 asia-northeast1 」となります。

Cloud SDK のインストール

続いては、Cloud SDK のインストールと設定を行います。
Cloud SDK とは、ソフトウェア開発キットのことで、Google App Engine(GAE) にアプリをデプロイするために必須です。

Cloud SDK の具体的なインストール方法やコマンドは、利用している OS によって異なります。
Google Cloud 公式ページの「 Cloud SDK スタートガイド」を参照し、インストールと設定を行います。

インストールを完了したら、Google アカウントで Cloud SDK のアプリ認証を行い、ターミナルに戻って先ほど作成したプロジェクトの ID を選択してください。

Hello World アプリのダウンロード・ローカル実行

Google App Engine には「 Hello World 」というテスト用のアプリがあり、ここではそれを利用した Google Cloud へのデプロイを見ていきます。

今回は、スタンダード環境・Java 11 を選択した場合の方法について紹介します。

まずは、以下の方法で Hello World アプリのダウンロードを行います。

  • Hello World サンプルアプリケーションのクローンをローカルマシンに作成
    [ git clone https://github.com/GoogleCloudPlatform/java-docs-samples ]
  • サンプルコードが含まれているディレクトリに移動
    [ cd java-docs-samples/appengine-java11/springboot-helloworld ]

続いて、以下の方法でローカルマシン上で Hello World を実行してください。

  • Spring Boot Maven プラグインを使用しローカルのウェブサーバーを起動
    [ mvn spring-boot:run ]
  • ウェブブラウザに次のアドレスを入力します。
    [ http://localhost:8080/ ]

これで Hello World アプリのダウンロードとローカルでの実行が完了です。

Hello World を App Engine にデプロイして実行する

最後に、以下の方法で Hello World を App Engine にデプロイします。
なお、PROJECT_ID は Google Cloud プロジェクト ID 、REGION_ID は先ほど選択したリージョンを入力します。

  • 「 springboot-helloworld 」ディレクトリで[ gcloud app deploy ]を実行し、Hello World アプリをデプロイ
  • ブラウザを起動し、以下にアクセスしてアプリを表示
    [ https://PROJECT_ID.REGION_ID.r.appspot.com ]

これで App Engine のテストは完了です。

Google App Engine(GAE) の活用事例

最後に、Google App Engine(GAE) の具体的な活用事例について見てみましょう。ここでは、ゲームソフトの企画開発を行う、株式会社 B 社の導入例を簡単にまとめて紹介します。

同社は、新規ゲームアプリの開発にあたり、Google App Engine(GAE) の導入を開始しています。
そして、Google App Engine(GAE) のメリットとして、主に自動スケーリングと安定したインフラ、Google サービスとの統合による利便性を挙げています。

自動スケーリングについては、特にアクセス数の予想がつかない新規アプリの発表に適していたとのこと。
従来は IaaS サービスを用いていた同社。
トラフィック数の増加に応じてサーバーも増やすと、それに応じて障害発生も増加していたそうです。
また、この方法では瞬時にアクセスの増減に対応できなかったり、アクセス数が減った場合には、台数を減らさなければ余計なコストが発生し続けたりという問題がありました。

しかし、Google App Engine(GAE) では、高速な自動スケールが可能なため、突発的なアクセス数の増加にも柔軟に対応ができるようになったそうです。
従量課金制のため、無駄なコストも削減でき、さらに人手による監視や運用の手間を大きく省くことにも繋げています。

また、Google App Engine(GAE) では、サーバーアプリケーションやバージョンの更新も自動化されているため、運用中のサービスのデプロイも即時に安全に切り替えられることも大きなメリットだそう。
運営中も絶えずに開発を続けるソーシャルゲームにおいて、デプロイのためのインフラの安定は重要項目。
IaaS ベースではインフラ安定のために​​エンジニアを割く必要があったものの、Google App Engine(GAE) 導入後はエンジニア全員がゲーム開発に注力できるようになったようです。

また、他の Google サービスとの統合ができるため、新たな認証の仕組み作りが不要という点も評価されています。
コンソールへのアクセスや、ゲーム管理画面へのログインなどでも Google アカウントを使用でき、新規メンバーもすぐにプロジェクトに入れるようになったそうです。

このように、インフラの安定や自動スケールといった Google App Engine(GAE) の機能を有効活用できれば、コストやインフラ運用のための労力を省きつつ、開発に集中しやすい環境を構築できるでしょう。

まとめ

ここまで、Google App Engine(GAE) の概要や特徴、簡単な始め方や活用事例について紹介してきました。この記事を参考にしながら、Google App Engine(GAE) の導入について検討してみてください。

App Engine やその他 Google Cloud の導入を検討している方は、クラウドエースがおすすめです!

Google App Engine や BigQuery など、非常に有用性が高い Google Cloud のサーバーレスサービスですが、導入には知識と経験が必要となります。
自社で内製できるエンジニアが揃っていない場合は、クラウドエースにぜひご相談ください。

まずは無料ダウンロード資料から
Google Cloud と Cloud Ace のご紹介資料

クラウドの導入、Google Cloud 各種サービスのご利用等のご相談は、こちらの窓口からお気軽にお寄せください。

お問い合わせフォーム

国内最多の Google Cloud 認定資格保有数

クラウドエースは、黎明期から Google Cloud と強力なパートナーシップを築き Google Cloud を専門として事業を営んで参りました。

現在、社員による Google Cloud 認定資格の取得数は 450 を超え、(2021 年 12 月時点)
その資格保有数は国内トップです。

Google Cloud 認定資格は、「サービスに精通し、Google Cloud のテクノロジーでビジネスを変革する能力がある」と、Google 社が認めたことを示します。
そのため、Google が認めたスペシャリストが多数在籍する安心感と効果が期待できます。

安心と信頼の実績

クラウドエースの実力は、国内外で認められており、安心して依頼できるだけの実績が多数あります。
Google Cloud 導入をサポートするサービス パートナーの中でも最上位の認定 パートナーであり、Google が特定分野ごとにスペシャリストとしての認定を行う『スペシャライゼーション』は世界最多となる 8 分野にて取得済みです。

クラウドエースなら Google Cloud 全サービス 3%オフ

もともと低コストで利用できる利点がある Google Cloud ですが、クラウドエースを経由して利用することで全てのサービスを 3 %オフで利用できます。

Google と直接契約して利用するよりも安くなる点は、大きな魅力ではないでしょうか。

サポートも強力

さまざまなサポートも充実しており、より多くの企業が Google Cloud を導入しやすくなっています。
Google Cloud 総合支援の「カスタマー サービス」では、初期費用と基本料金が 0 円から。

Google Cloud の利用における疑問や悩みを解決できる技術サポートは、満足度 90%以上を誇ります。

また、本来米ドル建てのクレジットカード支払いも、日本円による請求書ベースで決済が可能です。
従量課金での稟議申請が難しい企業向けのプランも用意されており、これまで課金問題で Google Cloud 導入ができなかった企業のサポートも万全です。

参考

合わせて読みたい