2

我第一次使用 Amazon RDS,并且一直在关注 heroku 文档以使用 RDS 实例获取我的应用程序。到目前为止,我已经创建了一个实例,并使用以下格式设置了插件:

$ heroku addons:add amazon_rds url=mysql://user:pass@rdshostname.amazonaws.com/databasename

运行 heroku rake db:migrate 后,我得到了

!!!捆绑的 mysql.rb 驱动程序 rake 已中止!没有要加载的文件——mysql

所以我安装了 MySQL gem。再次做同样的事情我得到了错误:

无法连接到“myapp.cqslpaxxqrok.eu-west-1.rds.amazonaws.com”上的 MySQL 服务器 (110)

我看到有一条关于该实例位于美国东部地区的说明,以便 Heroku 的安全组控制访问或其他内容。我不能使用欧洲实例吗?

4

2 回答 2

5

不,您不能使用欧洲实例。Heroku 目前仅在美国东部区域可用,您需要能够将 Heroku 添加到您的安全区域才能使 RDS 实例工作,我想这需要您在同一个区域中。更重要的是,出于延迟和安全原因,您希望与 Heroku 位于同一区域(否则您的数据库流量将通过 Internet 传输)。

于 2010-10-20T19:44:12.507 回答
2

Heroku 更改了其程序以允许 Heroku 服务器连接到 RDS 实例。这个问题的公认答案不再正确。

您必须授予 Heroku dynos 对您的 RDS 实例的访问权限。推荐的方法是将 RDS 实例配置为仅接受 SSL 加密的连接,并将您的实例的安全组配置为允许来自所有 IP 的入口。

此前,Heroku 发布了其 AWS 账户 ID 和安全组名称,作为授予对 AWS RDS 实例的访问权限的一种方式。这不再推荐。

参考:https ://devcenter.heroku.com/articles/amazon_rds

于 2013-11-18T16:09:30.923 回答