はじめに
ご存知かもしれませんが、Google Cloud PlatformでRubyアプリをデプロイする方法として、
- App Engine フレキシブル環境
- Compute Engine
- Kubernetes Engine
などがあります。
今回は新しく App Engine スタンダード環境 がベータで加わったので、スタンダード環境での環境構築とデプロイをしてみました。
二つのApp Engine環境についてですが、スタンダード環境だと無料枠があるのが特徴です。詳しくはリンクを張っておきます。
https://cloud.google.com/appengine/docs/the-appengine-environments?hl=ja
まだベータなのでドキュメントが少かったのですが、今回は承知の上でRuby on Rails 5のアプリをデプロイしてみました。
準備
ローカルからデプロイするにしても、Cloud Shellからするにしても、色々と準備をします。
注意: スタンダード環境ではRuby 2.5のバージョンしか使えないので移行する必要があるかもしれません。
まず、シークレットキーを作ります。
$ rails secrets:setup
assetsもコンパイルしておきます。
$ bundle exec rake assets:precompile RAILS_ENV=production
ここらへんはRuby on Railsの手順通りです。
.gcloudignoreの設定
Rubyと一緒にnodejsなどを使っていたので、node_modules
の中のファイルが多すぎてエラーになってしまいました。きちんと必要ないものはイグノアしましょう。
.gcloudignore
.git
.gitignore
node_modules
app.yamlの設定
runtime
をruby25
に設定します。
また、entrypoint
を正しく設定しないと動きませんでした。
runtime: ruby25
entrypoint: bundle exec rails s -e production
完成
あとはデプロイするだけです。
$ gcloud app deploy
これでひとまず動作するようになりました。まだ、ベータなので色々と変わると思いますが、Ruby on Railsを気軽にデプロイできるようになったことはうれしいです。
Herokuだと30分リクエストが来ないとスリープしてしまったり、Azureだと自分のドメインを使うのに結構費用がかかったりするので、やはりGoogle Cloud Platformのサービスは良心的だと思います。ありがとうございました!