1

我在 AppHarbor 上有一个带有两个工作人员(Web 和后台)的应用程序,它们连接到托管在亚马逊 RDS 上的 MySql 数据库。

我不断收到“无法连接到任何指定的 MySQL 主机”。例外。

我和美国东部地区的RDS实例已将以下AppHarbor CIDR添加到安全组中。

  • 50.17.211.192/28
  • 54.235.159.192/27

我已将自己的 CIDR 添加到安全组,并且可以很好地连接到实例。但是,当应用程序在 AppHarbor 上运行时,它会失败。

我的连接字符串(审查)是:

服务器=myinstanceXXXX.cykjvptrw5xs.us-east-1.rds.amazonaws.com;数据库=MyDatabase;UID=XXXXXX;密码=XXXXX;

我尝试在服务器端点上包含端口 3306,但没有任何区别。

我是否错过了让两人相处融洽的东西?

4

1 回答 1

1

默认情况下,AppHarbor 使用 Amazon 的内部 DNS 服务来解析主机名。由于与 AppHarbor 位于同一区域的 Amazon RDS 实例将解析私有 IP 地址,而不是知识库文章中列出的公共 IP 地址,因此基于公共 IP 设置规则在大多数情况下将不起作用。

如果亚马逊的 DNS 服务不可用,我们将故障转移到外部 DNS 服务。这意味着您仍然必须配置外部 IP 以获得最高可用性,因为外部 DNS 服务将解析公共 IP。通过这种方式,您可以确保您的应用程序对 DNS 故障具有弹性。

您可以为 RDS 安全组设置基于安全组的访问规则。我们已更新此知识库文章,其中包含专门针对 Amazon RDS 的部分,您可以在其中找到设置所需的信息。

于 2013-08-26T19:36:02.497 回答