Elastic Beanstalk rails

アプリケーション作成(AWS管理画面)

EC2(ウェブサーバー)

  • プラットフォーム
    ruby
  • 環境タイプ
    オートスケーリング
  • 環境名
    任意に設定
  • この環境でRDSインスタンスを作成する
    チェックを入れる
  • インスタンスタイプ
    m1.medium

RDS

RDSも同時に作成する
* dbタイプ
mysql
* インスタンスクラス
t1.micro

手順

railsアプリ作成

  • アプリ作成
rails new {アプリ名} -d mysql
  • database.yml修正
production:
  adapter: mysql2
  encoding: utf8
  database: <%= ENV['RDS_DB_NAME'] %>
  username: <%= ENV['RDS_USERNAME'] %>
  password: <%= ENV['RDS_PASSWORD'] %>
  host: <%= ENV['RDS_HOSTNAME'] %>
  port: <%= ENV['RDS_PORT'] %>

IAM作成

以下を発番
1. アクセスキー
2. シークレットアクセスキー

ebコマンド

コマンド一覧
http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/eb3-cmd-commands.html#eb3-cmd-options

// eb clientインストール
brew install awsebcli
eb --version

// アプリケーション作成
eb init // アプリケーション新規作成を選択。アクセスキー、シークレットアクセスキーを入力。 .elasticbeanstalkフォルダが作成される

// 環境作成 secret_key_baseも設定する
eb create {環境名}

// もしくは、下記(secret_keyも同時に設定できる)
eb create {環境名} --envvars SECRET_KEY_BASE=`rake secret`

// シークレットキー確認
// 設定状況を確認。 secret_keyが設定されていることを確認できる
eb printenv

// keyが設定されていない場合は以下で設定可能
eb setenv SECRET_KEY_BASE=`bundle exec rake secret`
eb printenv // secret_key_baseが設定されていることを確認できる

AWS管理画面

参考
http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/java-rds.html

  • アプリケーション、環境が作成されていることを確認
  • RDS作成
  • RDSコントロールグループ設定変更
    my ip or 0.0.0.0/0
    を追加する。

  • 再度デプロイ

// secret_key設定後再度、デプロイ。DBやテーブルが作成される
eb deploy

mysql 接続

mysql -h {管理画面から確認したエンドポイント} -P 3306 -u {設定したID} -p {設定したパスワード}

ssh接続

appのフォルダに移動して、rails cもできる

参考

http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/create_deploy_Ruby_rails.html