Google Cloud Platform(GCP)とGoogle App Engine(GAE)
GCPは、AWSと同じようなクラウドサービスです。
比較に関しては各所で行われているので、ここでは割愛します。
GAEはGCPが提供しているPaaSサービスで、Googleがサーバ運用やスケールアウト等を自動でしてくれる素敵なサービスです。
簡単に言うとHerokuと同じでプログラム書いてデプロイするだけなので、サーバの知識が無くてもOK。
もちろん制約はありますが、サーバを一切気にしなくて良いのは魅力的です。
事前準備
GoogleのサービスなのでGmailアカウントを準備しましょう。
次に、こちらからGCPに登録します。無料トライアルあります。
そして、こちらからSDKをダウンロードしてインストールします。
※GAEのSDKは赤枠のリンク
プロジェクト作成
GCPのヘッダーからプロジェクト「gae-test」を作成します。
発行されるプロジェクトIDは「gae-test-xxx」となります。プロジェクトIDは後で使うのでメモしておいて下さい。
GAEの画面にアクセス
左上のハンバーガーメニューから「App Engine」にアクセスします。
初めての場合はチュートリアルが始まるとは思いますが、今回はチュートリアルとは違う方法で進めるので興味がある人はどうぞ。
開発
GoogleAppEnginLauncherを起動し、左下の「+」からApplicationを作ります。
Application ID:「プロジェクト ID」を指定。今回は「gae-test-xxx」。
Application Derectory:自由に指定して下さい。
Runtime:PHP。
指定したディレクトリ直下に「gae-test-xxx」ディレクトリが作成され、デフォルトファイルが生成されます。
[gae-test-xxx]$ ls -1
app.yaml
favicon.ico
main.php
app.yaml
これがGAEを使う上での最重要ファイルで、apacheの設定に似ています。
例えば、WordPress用に準備されてるこちらのapp.yamlを見るとイメージ湧きやすいと思います。
デバッグ
GoogleAppEnginLauncherの左上にある「Run」をクリックして下さい。
起動に成功すると「Browse」がクリック出来るようになるので、そこをクリックするとブラウザが起動してデバッグが出来ます。
GAEと同じ環境を準備してくれてるそうです。
デフォルトだと、app.yamlでmain.phpにアクセスするように記述されています。
main.phpはお決まりの"Hello world!"を出力するようになっているので、こんな感じで表示されたら成功です。
Deploy
GoogleAppEnginLauncherの右上にある「Deploy」をクリックして下さい。
これだけでデプロイが完了します。FTPでアップロードされると考えたらイメージ湧きやすいと思います。
GAEの画面にアクセスして、「バージョン」メニューをクリックすると、こんな画面が表示されます。
バージョンが1と表示されていますが、これはapp.yamlに記載されている「version」で指定した文字列です。
これを2とするとバージョンがもう一列増えて2が出てきます。
こんな感じです。
app.yamlの「version」を使えばBlue/Greenデプロイが出来ます。2を選んで「トラフィックを移行」すると2が公開されます。
git等のバージョン管理ではなく、デプロイ単位のバージョン管理が出来るのも良いです。
公開されて無くても「デバッグで表示」で内容も確認可能です。
最後に
開発環境もデプロイもSDKのみで完結するので、環境毎の設定も必要無いのはかなりのメリットかなと感じました。
今回はGUIで行いましたが、gcloudコマンドとかもあるので、コマンドラインから操作することも可能です。
デメリットや対策は需要がありそうだったら書こうかなって思います。