在不使用 Elastic Load Balancing 的情況下,我還可以通過哪些其他方式對 EC2 伺服器進行負載平衡?
我有一個 Web 應用程序,它由一個由 Web 託管公司管理的 Web 伺服器、亞馬遜雲中的一組 EC2 實例和一個 MySQL 數據庫(託管在 Web 伺服器上)組成。MySQL 位於防火牆後面,並設置為允許從本地主機和單個 IP 地址進行訪問,該地址是附加到我目前執行的 EC2 實例的 Amazon 彈性 IP 地址。
問題是我想查看我的 EC2 實例的擴展和負載平衡策略。為此,我一直在研究 Amazon 提供的 Elastic Load Balancer 和 Autoscaling 工具,並設法將其設置得很好,但只有一件事 - 連接到我的網路伺服器上執行的 MySQL 數據庫。我意識到(感謝 Serverfault 上的回答)我需要檢查防火牆設置並為負載均衡器添加 IP 地址,但是 Elastic Load Balancer 為您提供 DNS 名稱,而不是 IP 地址,事實上 IP 地址會隨著時間而變化,所以這行不通。託管數據庫的公司告訴我,防火牆的工作方式是查找 DNS 名稱的 IP 地址並儲存 IP 而不是 DNS 名稱。
這是一個可行的想法嗎?我應該考慮將我的數據庫遷移到雲中嗎?伺服器公司可以使用其他防火牆嗎?我是否應該找到另一種負載平衡方式(如果是這樣呢?)
棘手的一個是嗎?任何幫助表示讚賞!
EC2 實例有自己的 IP,不管它們是否在 Elastic Load 均衡器後面。您不能將彈性負載均衡器 IP 添加到防火牆以允許從 EC2 實例進行訪問,因為 EC2 的傳出 IP 不是負載均衡器的 IP,而是它自己的實例的 IP。
如果您計劃擁有多個 EC2 實例,那麼您肯定需要一種方法來在您的 MySQL 伺服器防火牆上允許超過 1 個 IP。因為每個 EC2 實例都有自己的傳出 IP。
永遠不要為所有人打開你的 MySQL 埠。
您的問題不是負載均衡器,而是 MySQL 伺服器。如果您可以將您的數據庫移動到雲端,那將是最好的方法。