Google App Engine(GAE) のdeployの話 Part1
Google App Engine(GAE) のdeployの話
GAE とは
Google App Engine (GAE) は、Googleの提供するサービスの1つであり、 ウェブアプリケーションをPHP・Python・Java・Go言語を使用して開発し、 Googleのインフラストラクチャー上で実行し、バージョン管理することができる。 Google Cloud Platformの一部。
※上記wiki抜粋
簡単に言うと、
開発したやつを簡単にデプロイできて、運用管理も楽チンだよ。 バージョン管理もできるし、異なるバージョンを同時に稼働させてABテストなんかもできちゃうんだよ
っという代物です。
GAE standard と flexible
GAEには、standardとflexibleがあります。
違いについてはオフィシャルを参考にしていただいた方が良いかと思います。
僕のpythonで経験した情報と所感を書いて見ます。
standard
pythonは2しか使用できません。
pip install を自分のプロジェクト内に展開しておいて、そのプロジェクト毎deploy(upload)する感じでした。
特に問題なさそうな話ですが、GAE内ですでに入っているパッケージなんかもあり、GAE環境に依存したパッケージの管理が必要になります。
レアケースかもしれませんが、deployしても、ソースの状態が反映されない(バージョンの向き先は最新になっているのに)問題が頻発しました。
flexible
pythonは2も3も指定できます。 pip モジュールは、requirements.txtに記載されているものをインストールしてくれます。 従来の構造のままdeployできる感じで、こちらの方がしっくりきました。 ソースが反映されないような問題にも直面せず、問題なさそうです。
ここからは先は、flexibleを採用したのでflexibleについての記載となります。
GAEのdeploy方法
app.yamlの記入例
runtime: python env: flex entrypoint: gunicorn -b :$PORT core.wsgi # ここの名前を変更する事で、同一のプロジェクト内に、複数のサービスとしてdeployできます。 service: sample-api runtime_config: python_version: 3 beta_settings: cloud_sql_instances: [プロジェクト名]:asia-northeast1:[db名] manual_scaling: instances: 2 resources: cpu: 2 memory_gb: 1.4 disk_size_gb: 10
- deploy コマンド
gcloudコマンドは、こちらからインストールする必要があります。
gcloud app deploy app.yaml --project [プロジェクト名]
上記コマンドを実行すると、時間はかかりますが簡単にdeploy完了です。