*

GAリリース記念!!今更だけどGAE Flexible Environmentのチュートリアルを試してみた!

公開日: : 投稿者: GAE ,

GAE Flexible Environment(以下FE)のGA(General Availability)リリースがGoogle Nextで正式発表されました!今まではベータ版でロケーションもUSしか指定出来ませんでしたがついにAsia Pacific(東京)も利用できるようになります!旧MVMs時代から中々GAにならないので心配していましたが、ついにこの時を迎えることが出来ました!!というわけで今回はGAリリース記念に、Google公式のチュートリアルページを参考にGAE FEにアプリのデプロイをおこなってみます!!

Flexible Environmentは自由度の高いGAE環境!!

チュートリアルを試してみる前に、まずはFEとStandard Environment(以下SE)の違いを確認します。以下表はGoogle公式ページに記載されているスタンダード環境とフレキシブル環境の違いです。注目すべきは「ロケーション」です。前述した通りこれまでFEでは「North America」しか選択できませんでしたが「Asia Pacific」も選択できるようになっています。また、リクエストの最大タイムアウト時間やファイルシステム等、GAE SEよりも制限が軽くなっています。GAE FEはGAE SEと比べより自由度の高いGAE環境と言えます。

Standard Environment Flexible Environment
インスタンスの起動時間 ミリ秒
リクエストの最大タイムアウト 60 秒 60 分
バックグラウンド スレッド ○(制限付き)
バックグラウンド プロセス ×
SSH デバッグ ×
スケーリング Manual, Basic, Automatic Manual, Automatic
ローカル ディスクへの書き込み × ○(エフェメラル、各 VM の起動時に初期化されたディスク)
カスタマイズ可能な処理スタック × ○(Dockerfile のカスタマイズで構築)
セキュリティ パッチの自動適用
ネットワーク アクセス App Engine サービス経由のみ(アウトバウンド ソケットを含む)
サードパーティ バイナリのインストール サポート ×
ロケーション North America, Asia Pacific, or Europe North America or Asia Pacific
料金 インスタンス時間に基づく vCPU、メモリ、永続ディスクの使用量に基づく

ランタイムの種類

GAEではStandard EnvironmentとFlexible Environmentでは利用できるランタイムが異なります。以下表はそれぞれの環境で利用可能なランタイムの一覧です。Flexible Environmentの方が多くのランタイムを利用できることがわかります。また、Dockerファイルによってそれ以外のランタイムを利用することも可能です。

言語 Standard Environment Flexible Environment
Python Python 2.7 Python 2.7/3.5
Java Java 7 Java8
PHP PHP 5 PHP 5/7
GO GO GO
Node.js Node.js
Ruby Ruby
.NET .NET
その他 カスタムランタイム

とにかく動作させてみる!!

Google公式のFlexible Environmentのクイックスタートのページを参考にアプリのデプロイを行ってみましょう!動作させるランタイムはGOです!

GCPプロジェクト作成&操作ツールの導入

まずはGCPプロジェクトの作成とGCP操作ツール(GAEデプロイツール含む)のインストールをおこないます。
(1) GCPのクラウドコンソールにアクセスし、GCPプロジェクトを作成します。
※GCPプロジェクトを作成したことがない場合は以下のURLを参考にしてください。

初心者のためのGCPプロジェクト始め方入門

(2) (1)で作成したプロジェクトの管理ページに遷移後、課金設定の有効化とGAEのロケーション決定を行います。

(3) Google Cloud SDKのインストールを行います。

※Google Cloud SDKのインストール方法は以下のGoogle公式ページを参考にしてください。
Google Cloud SDK ドキュメント
https://cloud.google.com/sdk/docs/

(4) gaeデプロイツールのaedeployをインストールします。

※aedeployを利用すると、アプリ本体だけでなく$GOPATH内の依存関係のあるパッケージを全て一時ディレクトリにコピーしまとめてデプロイします。

ここまでの設定でGAEのデプロイが実行できるようになります。次はGoogle公式のクイックスタート通り、サンプルプログラムをダウンロードします。

サンプルコードのダウンロード&ローカル環境での実行

サンプルコードをGCP公式のgithubレポジトリからダウンロードしローカル環境で実行してみます。

(1)サンプルコードのダウンロードをおこないます。

(2)サンプルコードのダウンロードフォルダに移動します。

(3)サンプルコードを実行します

(4)以下URLにブラウザからアクセスします。

http://localhost:8080/

(5)以下が表示されれば実行は成功です。

以上でサンプルコードのローカル実行は完了です。次はいよいよGAE FEへのデプロイを実行してみます。

サンプルコードをデプロイする!

本章では、前章でローカル環境で動作させたHello WorldプログラムをGAE FEにデプロイします。

(1)gcloud authコマンドを実行し認証を行います。

※GCPプロジェクトを作成したアカウント、もしくはAppEngineの編集権限を持っているユーザで認証をおこなってください。

(2)gcloud configコマンドでプロジェクトの指定を行います。

(3)以下のコマンドを実行しサンプルコードをデプロイします。

(4)以下のURLにアクセスしてください

http://myprojectId.appspot.com

(5)以下が表示されればデプロイは成功です。

まとめ

Flexible Environmentを利用すればより柔軟なGAE環境を構築できることがわかりました。

そして、DockerイメージからGAEのデプロイを行えばランタイムの制限を気にする必要もありません。Flexible EnvironmentのGAリリースにより、今後GAEの利用がさらに広がるのではないでしょうか。

クラウドエースではGAEによる開発のご相談も受け付けております!お気軽にお問い合わせください。

この記事を書いた人

tomorier
tomorier
普段はGCP専門のエンジニアをやっています。
最近は個人的な活動としてGOとswiftでアプリ作ってます。

関連記事

Search API詳細解説 Part6「Search API 詳細 限界値編」

みなさん、こんにちは。 前回はSearch APIの反映速度について調べてみましたが、いかがだった

記事を読む

たった1つのCloud SQLインスタンスで複数のWordPressを動かす

皆様こんにちは。 前回はCloudSQLやCloud Storageを用いてWordpress

記事を読む

Prediction API入門(後編)

今回はPrediction API on GAE/J みなさん、こんにちは。Prediction

記事を読む

AppEngine Security Scan Tool

AppEngine Security Scan Toolが利用出来るようになりました。ついては、GA

記事を読む

静的HTMLをGAE上で公開する

みなさんこんにちは。 本日は、静的HTMLをGAEで公開する手順を紹介します。 本サイトを運営し

記事を読む

東京リージョン内でのGAE・GCS・GCE間の通信はこのくらいだった

11月8日に Google Cloud Platform にて待ちに待った日本リージョンがリ

記事を読む

Datastoreの仕組み 〜Consistencyについて〜

はじめに スケーラビリティと可用性が高いと言われているGoogle Cloud Datastore

記事を読む

GAEのautomatic scalingとbasic scalingを徹底比較!!

Google App Engine(以下GAE)(※1)は、GCPユーザならば言わずと知れた

記事を読む

GAEでよくあるエラーの発生原因と対策1

GAE上で動くWebアプリケーションに特有の例外について、弊社での運用の事例からいくつか特徴的なもの

記事を読む

Search APIの「Faceted Search」を使ってみた

Search API詳細解説シリーズは完結しましたが、2015年2月19日のAppEngine SD

記事を読む

PAGE TOP ↑