AWSにRailsアプリをデプロイする(公開編)
次にデプロイするため“aws rails デプロイ”でググってみるとunicorn、nginxというキーワードがでてくるので
とりあえずこれを設定していきます。
アプリのsecret_key_baseの設定
1 2 3 4 5 6 7 8 |
$ vi config/secrets.yml $ production: $ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> //keyを生成する $ bundle exec rake secret //生成したkeyを環境変数に設定する $ export SECRET_KEY_BASE= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
Unicornの設定
1 2 3 |
$ vi Gemfile $ gem 'unicorn' $ bundle install |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
$ vi config/unicorn.rb @app_path = '/home/xxxx/app-name/' working_directory @app_path worker_processes 2 preload_app true timeout 30 listen "/tmp/unicorn.sock", : backlog => 64 pid "/home/youser/tag-manager/tag-manager/shared/tmp/pids/unicorn.pid" stderr_path "#{@app_path}/log/unicorn.stderr.log" stdout_path "#{@app_path}/log/unicorn.stdout.log" before_fork do |server, worker | ENV['BUNDLE_GEMFILE'] = File.expand_path('Gemfile', ENV['RAILS_ROOT']) end before_fork do |server, worker | if defined ? (ActiveRecord::Base) ActiveRecord::Base.connection.disconnect! end old_pid = "#{server.config[:pid]}.oldbin" if File.exists ? (old_pid) && server.pid != old_pid begin Process.kill("QUIT", File.read(old_pid).to_i) rescue Errno::ENOENT, Errno::ESRCH end end end after_fork do |server, worker | if defined ? (ActiveRecord::Base) ActiveRecord::Base.establish_connection end end |
Nginxのインストール
1 |
$ sudo yum install nginx -y |
Nginxの設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
$ vi /etc/nginx/conf.d/app-name.conf upstream unicorn_server { server unix: /tmp/unicorn.sock fail_timeout = 0; } server { listen 80; client_max_body_size 4 G; server_name * .xxxxx.compute.amazonaws.com; #サーバーネーム記載 keepalive_timeout 5; # Location of our static files root / home / xxxx / app - name;# appname部分は自分自身で設定 location~ ^ /assets/ { root / home / xxxx / app - name / public; #修正後 } location / { proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http: //unicorn_server; break; } } error_page 500 502 503 504 / 500. html; location = /500.html { root / home / xxxx / app - name; } } |
※サーバーネームをAWSのDNS設定にしたら長すぎると怒られたのでとりあえず*にしたら通った
Nginxの起動
1 |
$ sudo service nginx start |
Nginxの再起動
1 |
$ sudo service nginx reload |
1 2 |
//アプリのディレクトリに移動 $ cd /home/xxxx/app-name |
Unicornの起動
1 |
$ bundle exec unicorn_rails -c /home/xxxx/app-name/config/unicorn.rb -p 8080 -D -E production |
Unicornの起動確認
1 |
ps -ef | grep unicorn | grep -v grep |
ついに、、
ページの確認♡
http://xxxxx.compute.amazonaws.com/
参考URL
Amazon LinuxにRuby on Rails環境構築(rbenv + ruby-build + Ruby 2.2.1 + Rails 4.2.1インストール)
http://qiita.com/na0AaooQ/items/5bd62e630a2faf051a52
(デプロイ編①)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで
http://qiita.com/naoki_mochizuki/items/814e0979217b1a25aa3e

関連記事
-
-
Selenium × PHP でテスト自動化!【環境構築編】
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 テスト自動化の背景 わたくしが担当するXmediaOneでは品質担保のために①コードベ …
-
-
kubernetes の全ノード上で同じコンテナを動かす
今回は、kubernetes上で同一コンテナを全ノードで動かす方法を紹介したいと思います。kubernetes自体の起動方法はここでは割愛します。 はじめに 以前、CoreOSのFleet上でmackerel-agentを動かすということを行いました。今回は、kubernetes上で同じようにクラス …
-
-
クラウド電話API “Twilio”で起こされてみた
どうも、開発部のクラヴマガです。 弊社サービスも最近はAWSの様なクラウド環境でサービスを構築することが多くなりました。 そこで問題になるのが、障害などによる深夜対応・・・。 データセンターに物理サーバをおいていた頃は、データセンターから障害発生時に 電話連絡をもらっていたのですが、クラウド環境では …
-
-
Scala入門 準備編「開発環境構築」 – PHP使いからScala使いへ転身!
はじめに みなさんこんにちは、今月入社しましたプロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 XmediaOneの開発で採用しているプログラム言語はS …
-
-
Burpの使い方!
こんにちは、第二ソリューション開発部の谷口です。 受託開発の部署で開発を担当してます。 APIを扱う機会が多く、今回は通信内容を確認するためのローカルプロキシツール「Burp」について書かせて頂きます。 Burpとは Webアプリケーション開発時の検証において、Webサーバとブラウザ間の通信内容を確 …
-
-
意外と知らないかも? Chrome DevTools の機能10選
みんな使っている Chrome DevTools。 Web開発やトラブルシューティングには必須ですが、便利な機能を知らないで使っている人がいたり、Web で使い方を調べても古い情報だったりすることがあるので、部内で Chrome DevTools についての勉強会を開催しました。 ここでは、その中か …
-
-
AWSにRailsアプリをデプロイする(準備編)
今回は、せっかくRailsで開発したアプリをAWS上に公開してみたいので その構築方法をまとめていきたいと思います。 (前回の記事:初心者がRailsで開発 – deviseでユーザー認証設定 ) AWSの設定はすでに社内で使用できるようになっていたので割愛します。 ★やりたいこと Gitlabでコ …
-
-
自社サービスのDocker化(後編)
こんにちは。 インフラ開発部の上田です。 前回、前編としてDockerについて書き、早半年も経ちました。 前編はこちらです 今回は後編として、以下について書いてみたいと思います。 ■複数プロセス起動 前編で書いた通り、通常のOS起動時とは異なり、コンテナ上で個別にプロセスを起動する必要があります。 …
-
-
Vagrantの機能を使って開発環境の効率をあげてみた。
プラットフォーム・ワンのシステムの運用・保守担当のエンジニアです。 保守の仕事に関わると、 ユーザからのお問い合わせだったり、監視アラートによる検知から システムを調査することがあります。 ログとソースコードを見て、不具合を特定し改修する。 すぐできればカッコいいですが、 「本番環境に反映して別のエ …
-
-
Charlesを使ってスマホアプリ(iOS)のUAを調べてみた
はじめに ここ最近のスマホアプリには、Webブラウザの機能を実装したものが少なくありません。 (“スマホアプリ内で立ち上がるブラウザ「アプリ内ブラウザ」”の機能は「WebView」というコンポーネントを用いて実装されています。) 昨今のWebサイト、サービス運営に於いて、「通 …
- PREV
- AWSにRailsアプリをデプロイする(準備編)
- NEXT
- Burpの使い方!