AWS ElasticBeanstalk EC2 到 RDS postgresql 连接

Posted

技术标签:

【中文标题】AWS ElasticBeanstalk EC2 到 RDS postgresql 连接【英文标题】:AWS ElasticBeanstalk EC2 to RDS postgresql connection 【发布时间】:2015-01-29 20:44:50 【问题描述】:

无法从 EC2 (elastic-beanstalk) 连接到 RDS PostgreSQL 9.3 数据库。环境是使用 Elastic Beanstalk v3 CLI 和 PostgreSQL 9.3.5、Puma (Ruby 2.1)、Rails 4.1.6 创建的。 yum通过.ebextensions/postgres.config成功安装postgresql93-devel:

packages:
  yum:
     postgresql93-devel: []

SECRET_KEY_BASE 已通过控制台添加到环境表中。

在 eb 部署期间在 rake db:migrate 上收到以下错误:

rake aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

RDS_HOSTNAME、RDS_DATABSE、RDS_USER_NAME、RDS_PASSWORD:都在 rails 控制台通过 ssh'ing 到 ec2 框进行验证。

config/database.yml:

default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: 5

production:
  <<: *default
  database: <%= ENV['RDS_DB_NAME'] %>
  username: <%= ENV['RDS_USERNAME'] %>
  password: <%= ENV['RDS_PASSWORD'] %>
  hostname: <%= ENV['RDS_HOSTNAME'] %>
  port: <%= ENV['RDS_PORT'] %>

有什么想法吗?

【问题讨论】:

【参考方案1】:

您似乎在 database.yml 中误写了 hostname 而不是 host

【讨论】:

以上是关于AWS ElasticBeanstalk EC2 到 RDS postgresql 连接的主要内容,如果未能解决你的问题,请参考以下文章

AWS EC2 和 Elastic Beanstalk

AWS EC2 / Elastic Beanstalk |如何按域列入白名单?

AWS - 无法通过 443 端口访问 EC2 实例

AWS:使用 Elastic Beanstalk 命令行界面 (EB CLI) 3.x SSH 到 EC2

无法正确停止我的 AWS EC2 实例

在一个 AWS EC2 实例上运行多个环境 (Elastic Beanstalk)