GAE Ruby 2.5 Standard Environmentを試してみる
こんにちは!
bosyu Advent Calendar 2019の 17日目の記事です。
HHKB Professional HYBRID Type-Sが先日発売されましたね!
HHKB大好きなので速攻で購入しました!
今回はちょっと前に追加された、GAE Ruby Standard Environmentを試してみようかなと思います。
ちなみにbosyuもGAEを使っていますが、Flexible Environmentを使っています。
デプロイしてみる
公式ドキュメントを参考にRailsで作ったアプリをデプロイします。
せっかくなのでCloudSQLにも接続できるようにしてみます。
設定ファイル(app.yaml)は以下みたいな感じです。
runtime: ruby25
entrypoint: bundle exec rails server -u puma -p $PORT
env_variables:
DATABASE_SOCKET: /cloudsql/INSTANCE_CONNECTION_NAME
DATABASE_PASSWORD: [設定したパスワード]
2019年12月17日現在Ruby 2.5にしか対応していないので、GemfileとかでRubyのバージョンを指定している場合は2.5を使うように変更してください。
gcloud app deploy を実行することでデプロイが開始されます。
大体5分ぐらいでデプロイできました。やはりFlexible Environmentより大分早いですね。
ちなみにデプロイ時に動いていたCloudBuildを覗いてみましたが、
bundle install --deployment --without=development test
bundle exec bin/rails assets:precompile
はちゃんと実行されていたので、特に追加の設定は必要ありませんでした。
Flexible Environmentも試してみる
まったく同じ構成のRailsアプリをFlexible Environmentにデプロイしてみます。
使用した設定ファイル(app.yaml)は以下みたいな感じです。
env: flex
runtime: ruby
entrypoint: bundle exec rails server -u puma -p $PORT
env_variables:
DATABASE_SOCKET: /cloudsql/INSTANCE_CONNECTION_NAME
DATABASE_PASSWORD: [設定したパスワード]
beta_settings:
cloud_sql_instances: INSTANCE_CONNECTION_NAME
env と runtime と beta_settings の所を修正追加しました。
これでデプロイ実行してみたら、大体14分くらいでデプロイが完了しました。
おまけ(GitHub Actionsでデプロイしてみる)
最近GitHub Actionsで遊んでいたので、今回も使ってみることにしました。
GCPが公式でgcloudを使えるGitHub Actionsを公開してくれているので、それを使います。
release/master ブランチにpushされたときにデプロイが走るようにします。
.github/workflows/deploy.yml を追加して、以下みたいな感じにしました。
name: "Deploy to GAE"
on:
push:
branches:
- release/master
env:
GCP_PROJECT: ${{ secrets.GCP_PROJECT }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
with:
version: '270.0.0'
service_account_email: ${{ secrets.GCP_SA_EMAIL }}
service_account_key: ${{ secrets.GCP_SA_KEY }}
- name: Deploy to GAE
run: |
gcloud app deploy --project ${GCP_PROJECT}
release/master ブランチにpushしてデプロイできました 🎉
GitHub Actions便利ですね〜
感想
- ドキュメントやサンプルもあるので簡単にデプロイまでできた
- Standard EnvironmentはFlexible Environmentと比べると大分デプロイ速度が早いので何かあったときの修正とか早めにできそうでいい感じ
- Rubyの対応バージョンが2.5とちょっと古いので、最新バージョンを使いたい場合はつらい(最新バージョンに追従してほしい〜 🙏🙏)
StandardとFlexibleそれぞれ長所、短所があるので何かしたいかで適切な使いわけできると良いですね!
とりあえずbosyuはRubyの最新バージョン使っているので、対応してくれると嬉しいです!
この記事が気に入ったらサポートをしてみませんか?