2013-07-31 46 views
1

我有一個appHarbor上有兩個工作者(Web和背景)的應用程序,它連接到託管在Amazon RDS上的MySql數據庫。讓AppHarbor和AWS 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; PWD = XXXXX;

我已經嘗試在服務器端點上包括端口3306,但它沒有區別。

我是否錯過了讓這兩個人互相打好?

回答

1

默認情況下,AppHarbor使用Amazon的內部DNS服務來解析主機名。由於與AppHarbor位於同一區域的Amazon RDS實例將解析私有IP地址,而不是知識庫文章中列出的公有IP地址,因此基於公有IP設置規則大多數時間不起作用。

如果亞馬遜的DNS服務不可用,我們將故障轉移到外部DNS服務。這意味着您仍然必須配置外部IP以獲得最高可用性,因爲外部DNS服務將解析公共IP。通過這種方式,您可以確保您的應用程序對DNS故障具有適應性。

您可以爲您的RDS安全組設置基於安全組的訪問規則。我們已更新this knowledge base article,其中有專門針對Amazon RDS的部分,您可以在其中找到設置該信息所需的信息。