4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Elastic Beanstalk に Rails アプリケーションをデプロイする

Last updated at Posted at 2016-04-12

だいたいAWSのドキュメントどおりにできたが、メモ。

とりあえず、Railsアプリケーションを作る。

Pumaで稼働させたいなら、GemfileにPumaを加えておく。
git を初期化して、commit する。

Beanstalkへのデプロイの準備

Beanstalkの操作はAWSのコンソールでもできるが、ebコマンドが楽。
eb コマンドをインストールしていない場合、macでは brew install awsebcli でインストールできる。
eb initコマンドで作成しているアプリにbeanstalkへのデプロイを初期化する。

$ eb init

Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-southeast-1 : Asia Pacific (Singapore)
7) ap-southeast-2 : Asia Pacific (Sydney)
8) ap-northeast-1 : Asia Pacific (Tokyo)
9) ap-northeast-2 : Asia Pacific (Seoul)
10) sa-east-1 : South America (Sao Paulo)
11) cn-north-1 : China (Beijing)
(default is 3): 8

Select an application to use
1) an_application
2) [ Create new Application ]
(default is 2): 1

It appears you are using Ruby. Is this correct?
(y/n): y

Select a platform version.
1) Ruby 2.2 (Puma)
2) Ruby 2.1 (Puma)
3) Ruby 2.0 (Puma)
4) Ruby 2.2 (Passenger Standalone)
5) Ruby 2.1 (Passenger Standalone)
6) Ruby 2.0 (Passenger Standalone)
7) Ruby 1.9.3
(default is 1): 1
Do you want to set up SSH for your instances?
(y/n): y

Select a keypair.
1) a_key_pair
2) [ Create new KeyPair ]
(default is 2): 2

環境の作成

環境とはデプロイ先のことと理解すればいいと思う。
環境名を指定しなければ、デフォルトで アプリケーション名-devがつく。
-s をつけると、auto scale は設定されずスタンドアローンとなる。
つけない場合は1〜4台でauto scaleが設定され、ELBも設定される。
また、インスタンスタイプを指定しないとt2.microがデフォルトで設定される。

$ eb create -s <環境名>

実行すると暫く起動までに時間がかかる。タイムアウト時間を長めに設定しておく例を見かけるが、設定しなくても特に問題なかった。
eb create の前に少なくとも一度はコミットしておく必要がある。

Railsをproductionモードでデプロイする場合には環境変数 SECRET_KEY_BASE を設定する必要がある。SECRET_KEY_BASEの値は次のコマンドで得られる。

$ bundle exec rake secret

次のように --envvars オプションでcreateコマンドで設定することもできる。

$ eb create <環境名> --envvars SECRET_KEY_BASE=7f81eb591dda7cee92aeeea9866eb0c7...()

createに設定しなかった場合には AWSのbeanstalkのコンソールのUIでも設定できる。
環境の[設定]-[ソフトウェア設定]を開き、新たに環境変数 SECRET_KEY_BASE を追加して bundle exec rake secret で得られた文字列をその値として設定する。

デプロイ先は /var/app/current となる。

デプロイした環境にアクセスする

次のコマンドでブラウザが起動して表示される。

eb open

Railsアプリケーションを更新する

ソースを変更して、それを再デプロイしたい場合、gitにコミットして次のコマンドで、デプロイできる。

$ eb deploy

環境を破棄する

作成されてたEC2インスタンスがterminateされる。
stopは以前はできたっぽいが今はできない...。
また、後で使いたい場合も一旦terminateさせるしかないのかな...。

eb terminate

感想

一度使うと、もう自分でEC2にrubyをインストールしてとかする気がなくなるほど便利。

4
4
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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?