*

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でアプリ作ってます。

関連記事

GCP愛を語る

RGCP(GCP好き以外お断り) 技術的な話ばかりの中のAdventCalendarですが、本

記事を読む

Datastoreモデル変更の影響調査

GoogleAppEngine(以下GAEと呼称)に限らず、開発を行なっていると『テーブルの構造を変

記事を読む

Search API詳細解説 Part2「Search APIの使い方 登録・削除編」

Search API詳細解説シリーズ タイトル Part1Search API 概要説明

記事を読む

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

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

記事を読む

PaaS最前線!たったの15分でできるGAE/GO入門!

はじめに 2015年7月ついにGoogle App EngineのGO言語正式サポートが決定しまし

記事を読む

1つのエンティティにプロパティをいくつまで作れるか(パート2)

1つのエンティティにプロパティをいくつまで作れるか 1つのエンティティにプロパティをいくつまで

記事を読む

GAE/GOでVideo Intelligence APIを操作してみた!!〜事前準備編〜

先週のGCP Next 17’でGoogleから新しい機械学習APIが発表されました!その名

記事を読む

Google App Engine Modules in Javaを試す WebToolsPlatform編

みなさんこんにちは。 2013年の7月に、Google App Engine1.8.2がリリー

記事を読む

GAE/JからBigQueryへのStream Insert

今回はGAE/JからBigQueryへのStream Insertを試してみます。 BigQuer

記事を読む

WordPressをGAEで簡単に使う10のステップ

2015/10/05 テーマやプラグインの追加・変更方法について下部に追記しております。 み

記事を読む

PAGE TOP ↑