※AWSの初心者です。今まではHerokuしか使ったことはありません。
AWSの構成
EC2インスタンス1個
RDSでPostgreSQL、1個
RailsアプリをCapistranoでEC2にデプロイしたいのですが、
Capistranoの下記コマンド(デプロイ)を実行すると、エラーが発生します。
vagrant@vagrant-ubuntu-trusty:~/sample_app$bundle exec cap production deploy
エラー文
PG::ConnectionBad: FATAL: Peer authentication failed for user "postgres"
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
EC2にSSHでログイン後、
sudo service postgresql start
sudo su - postgres
psql
postgres=#
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
ec2-user | Create role, Create DB | {}
postgres | Superuser, Create role, Create DB, Replication | {}
root | Create role, Create DB | {}
postgres=# who am i
postgres-# \q
-bash-4.2$
は、実行できます。
EC2のデータベース
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------------------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
sample_app_development | root | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
sample_app_test | root | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
ローカル(vagrant)のデータベース
vagrant@vagrant-ubuntu-trusty:~/hoge_app/config$ rails db
psql (9.5.3)
Type "help" for help.
hoge_app_development=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------------------+----------+----------+-------------+-------------+-----------------------
fuga_development | vagrant | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
fuga_test | vagrant | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
hoge_app_development | vagrant | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
hoge_app_test | vagrant | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(7 rows)
教えて頂きたいこと
1. RDSでPostgreSQLを作成するとデータベースが作成されて、EC2にログイン後、「sudo service postgresql start」コマンドなどが実行できるという認識ですが、RDSでPostgreSQLを作成した場合でも、EC2にログイン後、「sudo yum install -y postgresql」などで、PostgreSQLをEC2にインストールする必要はあるのでしょうか?
2. config/database.ymlの設定は適切でしょうか?
database.yml
production:
<<: *default
adapter: postgresql
host: 32.873.61.427
encoding: utf8
database: RDS作成時のインスタンス識別子
username: ec2-user
password: RDS作成時に設定したパスワード
pool: 5
timeout: 5000
- エラーの発生原因
何卒宜しくお願い致します。