2011-11-17 23 views
0

我正在爲我的MySQL數據庫工作EC2實例和RDS。將localhost數據庫路由到另一個iP

我想讓所有腳本引用MySQL數據庫連接的本地主機,然後路由3306我會假設,通過特定的RDS DNS主機地址。這怎麼可能?

我這樣做的原因是因爲RDS沒有負載平衡,而且我想只是有一個控制哪個RDS主機的中心位置。

這是iptables的東西嗎?

回答

1

聽起來很重要的一點是,您希望爲數據庫服務器創建別名,以便以後可以更改IP地址,而無需更改任何代碼。爲此,您可以使用/etc/hosts文件。但是,如果您使用此技術,請勿使用或更改localhost設置。 localhost是特殊的,在/ etc/hosts文件中更改localhost的定義可能會產生不良的副作用。

請改爲爲您的數據庫服務器在/etc/hosts中創建一個單獨的條目。該文件的格式是IP_ADDRESS NAME。例如:

127.0.0.1 dbserver 

你所有的代碼都可以再參考dbserver爲數據庫服務器的主機名。稍後,您可以在移動數據庫時將/etc/hosts文件中的IP地址更改爲其他內容。

+0

偉大的想法和反饋,謝謝。一個問題,AWS提供公共DNS端點地址而不是IP。我已經嘗試過使用DNS端點,但它似乎不起作用。用DNS做這件事是不可能的? – waxical

+0

考慮到場景的解釋,在低TTL的DNS上使用cname鏈接上的子域名會更好嗎? – waxical

+0

從我對RDS的理解中,端點不應該改變,因此應該可以工作。你也可以得到端點的IP並使用它......但我不知道它們有多穩定(它可能會改變的頻率)。走出公共互聯網去訪問你的數據庫服務器會很慢。如果您可以爲RDS服務器使用專用本地網絡IP,那麼性能會更好。但是,我不知道這是否可能,或者亞馬遜是否做了一些優化從EC2到RDS的路由的魔術。 –

相關問題