LoginSignup
68
66

More than 5 years have passed since last update.

AWS Elastic Beanstalk に Rails を構築する手順。

Last updated at Posted at 2014-10-03

概要

AWS の PaaS 、Elastic Beanstalk に Rails を構築する手順のメモ。公式はちょっとわかりづらいので。ちなみにMacを使用してます。

公式
http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/create_deploy_Ruby.html

2014/10/13 編集
ebからElasticBeanstalkの環境を作るとEC2にSSH接続できなかったので、先にWeb GUIから環境を作成する方法に変更する。

前準備

AWS Elastic Beanstalk Command Line Tool をインストールする

Homebrew からでもインストールできます。
http://aws.amazon.com/code/6752709412171743

Hello を表示する Rails プロジェクトを作成する

Rails プロジェクト下記で作成
http://qiita.com/jr_qrank/items/cf591a3e258cffecd980

railsApp
という Rails プロジェクトを作成し、hello コントローラ作成する。

$ bundle exec rails g controller hello index

config/routes.rb を編集する。

root 'hello#index'

Gitリポジトリを作成する

$ git init
$ git add .
$ git commit -m 'initial commit'

IAMの設定

Elastic Beanstalk にデプロイするために、
* Access Key ID
* Secret Access Key
が必要で、AWS の経験がないとなんだよそれ?となります。上記2つは AWS の IAM から作成します。

IAM = Identity and Access Management

  1. AWS にログインし、IAM->Users で、新しいユーザを作成する。
  2. Access Key ID と Secret Access Key が取得できる。
  3. 再度 IAM->Users をひらき、作成したユーザを選択する。
  4. ユーザーの Permissions を設定する。
    • 面倒なので Admin にしちゃいました

EC2 で Key Pair を作成

SSH 接続するために必要な Key Pair を作成し、.pemファイルを保存します。

  1. AWS にログインし EC2->Key Pairs を選択する。
  2. Create Key Pair で新しい Key を作成する。
  3. .pem ファイルをダウンロードする。

AWS の Elastic Beanstalk Web GUI からアプリケーションを作成する

  1. Web GUI で Create New Application を選択し、新しい Elastic Beanstalk 環境を作成する。
  2. Environment Type は、Web Server/Ruby/Load Balancing で。
  3. Application Version はとりあえず Sample Application を選択。
  4. Environment Information はお好みで。
  5. Additional Resources では RDS 作っちゃいましょう。
  6. Configuration Details で先に作った Key Pair を選択する!←重要
  7. RDS Configuration で、user name / password を入力。
  8. Launch!!

ここで入力した Application Name と、Environment Information の名前を eb で Deploy する際に使用します。

AWS Elastic Beanstalk の設定を行う

Railsプロジェクトのディレクトリで

$ eb init

を実行すると、対話式で設定を行える。Access Key ID や Secret Access Key の入力を求められます。
Select a solution stack. で、1 or 0 しか表示されないとき、IAM の Permission 設定ミスです。
Application Name や Environment Name は上記で作成した Elastic Beanstalk と同じものを入力します。RDS の username と password も同様です。

Rails アプリをデプロイする

$ eb start

最新のgitコミットログに日本語が混じってると、 Failed to create the AWS Elastic Beanstalk application version と怒られる可能性あり。

eb start を実行すると, EC2, RDSなどのインスタンスが生成されます。

SECRET_KEY_BASE の設定

まずは rake コマンドでキーを生成します。

$ bundle exec rake secret
55a8754790b51....(略

AWS の Elastic Beanstalk を開き、作成したRailsアプリケーションを選択します。Configuration->SoftwareConfiguration で、

Property Name : SECRET_KEY_BASE
Property Valule : <rake secret で生成した文字列>

を設定します。
ちなみに development, text, production の設定も RACK_ENV で行います。

Rails アプリを更新する

$ git commit -m "alphabet only commit message"
$ eb deploy

停止/削除

$ eb stop #停止
$ eb delete #削除

EC2 に SSH で接続する

EC2 の GUI から Connect を選ぶと接続方法でます。/var/app/current が Deploy 先です。

参考リンク

ElastiCacheのmemcachedとEC2上のrailsとdalli-elasticacheを使ってキャッシュ管理する
http://joppot.info/2014/07/15/1754

RDS DBパラメータの変更
http://qiita.com/web_se/items/3f07ddad69030f27d8a9

ElastickBeanstalkの.configファイル
http://www.infoq.com/jp/news/2012/11/elastic-beanstalk-config-files

RDS MySQL5.5.33 で『utf8mb4』(4バイト対応UTF-8文字コードセット)を試してみた
http://dev.classmethod.jp/cloud/aws/utf8mb4-on-rds-mysql/

68
66
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
68
66