#AWSにRailsアプリをイチから上げるシリーズ 項目表
No | タイトル |
---|---|
その1 | ネットワーク、データベース設定編 |
その2 | EC2設定編 |
その3 | サーバー設定、Railsアプリ配置編 |
その4 | Railsアプリの公開編 |
その5 | ドメイン設定編 |
その6 | http→httpsへSSL化編 |
#【 第6章 】ロードバランサーを設定する
Elastic Load Balancing を利用してロードバランサーの設定を行います。
##1.ロードバランサーの作成
EC2の画面左の「ロードバランサー」を選択して、詳細ページ左上の「ロードバランサーの作成」を選択してください。
ロードバランサーの種類の選択
「Application Load Balancer」の「作成」を選択
手順 1: ロードバランサーの設定
以下の通り項目に記載
基本的な設定
1 . 名前:「アプリ名-ELB」
2 . スキーム:「インターネット向け」にチェック
3 . IP アドレスタイプ:「ipv4」
リスナー
デフォルトのままでOK
アベイラビリティーゾーン
1 . VPC:「VPC_for_アプリ名」
2 . アベイラビリティーゾーン:「ap-northeast-1a」「ap-northeast-1c」共にチェック
タグ
1 . キー:「Name」
2 . 値:「アプリ名-Webserver」
手順 2: セキュリティ設定の構成
デフォルトのままでOKです。
「次の手順:セキュリティグループの設定」ボタンを選択する。
手順 3: セキュリティグループの設定
以下の通り項目に記載
1 . セキュリティグループの割り当て:「既存のセキュリティグループを選択する」にチェック
2 . 「アプリ名-SecurityGroup」のレコードにチェック
「次の手順:ルーティングの設定」ボタンを選択する。
手順 4: ルーティングの設定
以下の通り項目に記載
ターゲットグループ
1 . ターゲットグループ:「新しいターゲットグループ」
2 . 名前:「アプリ名-Target-Group」 ※記入
3 . ターゲットの種類:「インスタンス」にチェック
4 . プロトコル:「HTTP」
5 . ポート:「80」
ヘルスチェック
1 . プロトコル:「HTTP」
2 . パス:「/」
ヘルスチェックの詳細設定
1 . ポート:「トラフィックポート」
2 . 正常のしきい値:「5」
3 . 非正常のしきい値:「2」
4 . タイムアウト:「5」
5 . 間隔:「10」 ※修正
6 . 成功コード:「200」
手順 5: ターゲットの登録
下部の「インスタンス」欄から、
「アプリ名-instance」にチェックを入れ、
「登録済みに追加」ボタンを選択する
「アプリ名-instance」が上部の「登録済みターゲット」欄に
移動した事を確認
「次の手順:確認」ボタンを選択する。
「作成」ボタンを選択する。
一覧画面から作成したロードバランサーを確認し、一定時間経過後、状態が「active」なら完了。
#【 第7章 】Railsアプリの起動
##1.アプリの起動手順
長い長い行程を経て、やっとアプリの起動です。
EC2へSSHでログインし、Railsアプリをプリコンパイルする
$ bundle exec rake assets:precompile RAILS_ENV=production
Nginxを再起動
$ sudo service nginx restart
Unicornを起動
$ bundle exec unicorn_rails -c /var/www/rails/アプリ名/config/unicorn.conf.rb -D -E production
Uniconの起動を確認(プロセスのリストが3行程表示されればOK)
$ ps -ef | grep unicorn | grep -v grep
ブラウザからIPを叩いてアクセス ※IPアドレスはElastic IP
http://IPアドレス/
Railsアプリが無事動作すれば成功
###(補足4)We're sorry, but something went wrong.
と表示
残念ながらアプリが作動しなかった場合は、以下のコマンドを試してログを確認してみてください。
$ cd log
$ tail -n 30 production.log
エラーの記載があれば、デプロイは出来ているがアプリ内でエラーが発生しています。
エラーの記載が無ければ、デプロイが出来ていない可能性があります。
これにてAWSへのRailsアプリのデプロイが完了です!!
いやぁ〜長かった!
お疲れ様でした!!
とりあえずアプリの公開は出来ましたが、URLが数字のままだと微妙ですね。
次はRoute53を使用して公開したアプリのURLにドメインを適用していく手順を記載します。
ただし、ここまでは1年無料を利用できましたが、Route53もドメインも有料になるので、それでも良い人は次のページもみてください!
#参考
・ 世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで
・ RailsアプリをAWSにイチからデプロイするまでの手順メモ
・ RailsアプリをAWSでデプロイする②(各種設定編)
初心者でも構築することが出来ました、丁寧なご説明本当にありがとうございます
※当記事では一部バージョンの変更や手順の省略を行っております
また、世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまでは、各処理がどの様な役割を担っているか、ネットワークの解説付きなので、デプロイ出来た方も一読する事を強くオススメします。