EB CLIのインストール
keyが必要なのでIAMを作成する。権限は最小になるように頑張る。
$ brew install python
$ pip install awsebcli
環境自体は、GUIから作成するので概ね良いと思う。
t1.smallは流石に重い気がするので、m3.mediumぐらいでいいと思う。
初期化
eb init
Tableを作る
$ eb ssh
$ createdb -U USER_NAME -h HOST_NAME TABLE_NAME
環境変数の指定
DATABASE_URL
postgres://ID:PASSWORD@HOST:PORT/TABLE_NAME
SECRET_KEY_BASE
$ bundle exec rake secret
RAILS_SERVE_STATIC_FILES
RAILS_SERVE_STATIC_FILESをtrueに設定しないとpublicフォルダにアクセス出来ないようです。
rake db:migrate
RAILS_SKIP_MIGRATIONS – ユーザーのアプリケーションの代わりにコンテナで rake db:migrate を実行するか、単にスキップするかを指定します。Rails 3.x アプリケーションにのみ適用できます。Rails 以外の移行については、拡張子が .config のファイル(myconfig.config)を使用してコンテナコマンドを指定し、手動で移行を実行する必要があります。RAILS_SKIP_MIGRATIONS を true に設定した場合は、設定ファイルを使用して移行を行います。設定ファイルの使用の詳細については、「Ruby 環境のカスタマイズと設定」を参照してください。
またはSSHでログインして実行することになると思う。
Deploy
502 Bad Gateway
GUIからアップロードすると、上手く動かないことがあり困った。うまくいく場合とうまくいかない場合の再現性が薄く対処が難しかった。
$ eb deploy
を使ったところ、アップロードしていたアプリに不備があるようでエラーが出た。GUIアップロードでは、詳細なエラーチェックが行われておらず唐突に失敗する場合があるのかもしれない。
というかよく考えると/var/app/currentの下が、GUIからやったときとCUIからやったときで完全に違ったので、多分やり方を間違えている。結論、CUIからやるのでいいと思う。
なんだか環境変数のセットもGUIからやると失敗することがあって、初回作成以外はGUIから触らないほうがいいのかもしれない。迷信めいてるけど。