Subscribed unsubscribe Subscribe Subscribe

A really lowlevel plumbing error occured. Please contact your local Maytag(tm) repair man.

RailsアプリをElastic Beanstalkで作成した際にアクセスするとタイトルのエラーがブラウザの画面に表示されます。

まずはログを見てみます。

$ eb logs
/var/log/puma/puma.log
Rack app error: #<RuntimeError: Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml`>

なるほど、secrets.ymlの設定が足りていないのですね。

rubyではアプリケーションサーバーとしてunicornを使用されている方が多いと思いますが、AWSのElasticBeanstalkではpumaがデフォルトになっています。パフォーマンスを比較はこちら。 http://puma.io/ f:id:keiwt:20150228195608p:plain

それでは、secret.ymlに記載されているようにsecure secret keyを作成します。

$ rake secret

ここで作成されたものをELBのENVに設定します

$ eb setenv SECRET_KEY_BASE=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

そして、デプロイします。

$ eb deploy

※これだけで本番リリースが完了します ※コマンドラインツールは3系を使用しています(pip install awsebcliでインストール)
※homebrewでインストールすると2系がインストールされてしまいますので、ご注意を。
※2系の場合はeb deployではなく、git aws.pushです