LoginSignup
14
13

More than 5 years have passed since last update.

Ebfly を使った Sinatra アプリケーションの AWS Elastic Beanstalk へのデプロイ

Last updated at Posted at 2014-02-25

AWS CLI を使った Sinatra アプリケーションの AWS Elastic Beanstalk へのデプロイ

前回書いた記事の作業を簡単に実行できる Ebfly という gem を作成しました。

まだ、機能的には足りないことが多いのですが、アプリの作成からデプロイまではできるようになったので、公開しました。Ebfly を使うと、前回解説した作業がこのように簡単にできます。

インストール

$ gem install ebfly

これで ebfly コマンド使えるようになります。
次に、$HOME/.ebfly にファイルを作成して、AWS の設定をします。

AWS_ACCESS_KEY_ID='...'
AWS_SECRET_ACCESS_KEY='...'
AWS_REGION='us-east-1'

環境変数で指定することもできます。

export AWS_ACCESS_KEY_ID='...'
export AWS_SECRET_ACCESS_KEY='...'
export AWS_REGION='us-east-1'

アプリの作成からデプロイまで

Step 1 作業用ディレクトリの作成

$ mkdir sinatraapp
$ cd sinatraapp
$ git init .

Step 2 アプリケーションの作成

ebfly app create コマンドでアプリケーションを作成します。

# Usage: "ebfly app create <application-name>"
$ ebfly app create sinatraapp

Step 3 Environment の作成

'ebfly env create' コマンドで Environment を作成します。

# Usage: "ebfly env create <environment-name> -a <application-name> -s <solution_stack_name> -t <tier-type>
$ ebfly env create dev -a sinatraapp -s ruby19 -t web

Step 4 sinatra アプリの作成

前回と同じなので、解説省略

config.ru

require './helloworld'
run Sinatra::Application

helloworld.rb

require 'sinatra'
get '/' do
  "Hello World!"
end

Gemfile

source 'http://rubygems.org'
gem 'sinatra'

Step 5 Bundle install して、コミット

$ bundle install
$ git add .
$ git commit -m "First commit"

Step 6 デプロイ

指定したブランチを ebfly env push コマンドを使ってデプロイすることができます。
master ブランチをデプロイする場合はこう。

# Usage: "ebfly push <name> <branch or tree_ish>".
$ ebfly env push dev master -a sinatraapp

コマンド実行後、アプリケーションのステータスが Ready になるまで待ちましょう。
アプリケーションのステータスは ebfly env info コマンドで確認できます。

$ ebfly env info dev -a sinatraapp

=== environment info ===
application name:     sinatraapp
environment id:       e-XXX
environment name:     sinatraapp-dev
description:
status:               Ready
health:               Green
tier:                 WebServer Standard 1.0
solution stack name:  64bit Amazon Linux 2013.09 running Ruby 1.9.3
endpoint url:         awseb-e-w-XXXXXXXXXXXXXXXX-1111111111.us-east-1.elb.amazonaws.com
cname:                sinatraapp-dev-xyz.elasticbeanstalk.com

ステータスが Ready になったら、上記の cname のURLをコピペしてブラウザでアクセスしてみてください。
Mac OS は人は、'ebfly env open`コマンドを利用することで、同じことができます。

$ ebfly env open dev -a sinatraapp

Step 7 後片付け

ebfly app delete -f で強制的にアプリを削除することができます。

$ ebfly app delete sinatraapp -f

まとめ

ElasticBeanstalk は便利だけど、セットアップのわかりにくさとかもあって、あまり使われていないような気がしています。Ebfly を使えば、AWS CLI や eb コマンドよりは、手軽に始めることができると思います。みんな、ElasticBeanstalk を使うようになって、ノウハウが共有できれば良いな、と思う今日このごろです。

14
13
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
14
13