AWS로 디버깅 시도(~가상 서버로 디버깅하는 4)

5905 단어 AWSRubyRails

13. EC2에서 데이터베이스 설정


먼저 PostgreSQL을 설치합니다.
$ sudo su -
$ yum -y install postgresql94 postgresql94-server postgresql94-devel postgresql94-contrib postgresql94-docs
$ /etc/init.d/postgresql94 initdb
[起動]
$ /etc/init.d/postgresql94 start
구성 파일을 편집합니다.
$ vi /var/lib/pgsql94/data/postgresql.conf
세 번째 이야기,listenaddresses의 주석(처음 # 삭제)을 해제하고 설정을 "localhost"에서 "*"로 편집하십시오.

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*'                  # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
port = 5432                             # (change requires restart)
인증 설정 편집
$ vi /var/lib/pgsql94/data/pg_hba.conf
이 문서의 밑부분에 다음과 같은 내용을 보충한다.
local   all     all     trust
host    all     all     0.0.0.0/0       md5
또한 이 문서의 아래 부분은 다음과 같이 논평할 것이다
# "local" is for Unix domain socket connections only
# local   all             all                                     peer  ←コメント化する
# IPv4 local connections:
# host    all             all             127.0.0.1/32            ident ←コメント化する
# IPv6 local connections:
# host    all             all             ::1/128                 ident  ←コメント化する
편집이 끝난 후 다시 시작합니다.
$/etc/init.d/postgresql94 restart
그리고 Postgres라는 사용자 이름으로 PostgreSQL에 연결합니다.
$ psql -U postgres
다음은 응용 프로그램의 config/database입니다.youl에 적힌 제품 설정의usename, 데이터베이스 이름 로그인 캐릭터와 데이터베이스를 사용합니다.
postgres=# CREATE ROLE "ロール名" WITH SUPERUSER LOGIN;
postgres=# CREATE DATABASE "データベース名";

作業が終了したら、PostgreSQLとの接続を解除

postgres=# \q
마지막으로 PostgreSQL을 시작해도 OK.

14. Nginx(엔진 ex) 웹 서버, Uniccorn(유니콘) 응용 서버의 환경 정비


Nginx 설치


EC2에서 루트 사용자로 시작하여 Nginx 설치
$ sudo su -
$ yum -y install nginx
$ chkconfig nginx on
다음 명령으로 Nginx 시작
$ /etc/init.d/nginx start
그러면 EC2의 IP 주소를 브라우저 주소에 기술하면 Nginx 페이지가 표시됩니다.

15. 설계 도구(Capistrano)를 사용한 설계


공개 키를 제작하여 Giithub에 설치

$ sudo su app # app userに切り替わっていない場合のみ実行
$ cd # ホームディレクトリにいない場合のみ実行
$ ssh-keygen -t rsa # 公開鍵秘密鍵のペアを作成

入力画面が出てきたら全てエンターでOK。

$ cat ~/.ssh/id_rsa.pub
Giithub의 setting에서 복사된 공개 키를 설정하면 EC2와 Giithub 사이에 SSH 연결을 할 수 있습니다.

프로그램 공개 디렉터리 만들기


EC2에서 공개적으로 사용할 디렉터리를 새로 만듭니다.
이번에는 www를 공개목록의 이름으로 제작했습니다.
$ sudo mkdir wwwを管理者権限で実行しwwwフォルダを作り、
$ sudo chown -R app:app wwwでapp userに権限を与え、
$ cd /var/wwwでディレクトリに移動するながれになります

$ cd /var
$ sudo mkdir www
$ sudo chown -R app:app www
$ cd /var/www

Gemfile 편집

gem 'dotenv-rails' # 開発環境で環境変数を操作するのに必要
  gem 'unicorn' # アプリケーションサーバのunicorn
  gem 'mini_racer', platforms: :ruby # デプロイ時に必要

  group :development, :test do
    gem 'capistrano', '3.6.0' # capistranoのツール一式
    gem 'capistrano-bundler'
    gem 'capistrano-rails'
    gem 'capistrano-rbenv'
    gem 'capistrano3-unicorn'
    # 以下省略
  end
  # 以下省略

Capfile 제작, 편집

$ bundle exec cap install でファイル作成
Capfile에 다음 내용 추가
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rbenv'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
require 'capistrano3/unicorn'

대상 서버 정보 및 액세스 키 정보 설정


/config/deploy/production.rb
server 'EC2のIPアドレス', user: 'app', roles: %w{app db web}
set :ssh_options, keys: 'ローカルの秘密鍵へのpath'
config/deploy.rb를 열면 모두 덮어쓰기
# config valid only for current version of Capistrano
lock '3.6.0'

# デプロイするアプリケーション名
set :application, 'achieve'

# cloneするgitのレポジトリ
# (xxxxxxxx:ユーザ名、yyyyyyyy:アプリケーション名)
set :repo_url, 'https://github.com/xxxxxxxxx/yyyyyyyyy'

# deployするブランチ。デフォルトはmasterなのでなくても可。
set :branch, ENV['BRANCH'] || 'master'

# deploy先のディレクトリ。
set :deploy_to, '/var/www/achieve'

# シンボリックリンクをはるフォルダ・ファイル
set :linked_files, %w{.env config/secrets.yml}
set :linked_dirs, %w{log tmp/pids tmp/cache tmp/sockets public/uploads}

# 保持するバージョンの個数(※後述)
set :keep_releases, 5

# Rubyのバージョン
set :rbenv_ruby, '2.5.1'
set :rbenv_type, :system

# 出力するログのレベル。エラーログを詳細に見たい場合は :debug に設定する。
# 本番環境用のものであれば、 :info程度が普通。
# ただし挙動をしっかり確認したいのであれば :debug に設定する。
set :log_level, :info

namespace :deploy do
  desc 'Restart application'
  task :restart do
    invoke 'unicorn:restart'
  end

  desc 'Create database'
  task :db_create do
    on roles(:db) do |host|
      with rails_env: fetch(:rails_env) do
        within current_path do
          execute :bundle, :exec, :rake, 'db:create'
        end
      end
    end
  end

  desc 'Run seed'
  task :seed do
    on roles(:app) do
      with rails_env: fetch(:rails_env) do
        within current_path do
          execute :bundle, :exec, :rake, 'db:seed'
        end
      end
    end
  end

  after :publishing, :restart

  after :restart, :clear_cache do
    on roles(:web), in: :groups, limit: 3, wait: 10 do
    end
  end
end
..계속하다

좋은 웹페이지 즐겨찾기