我最近開始閱讀並玩弄AWS。我對可以使用該平臺實現的不同高可用性體系結構特別感興趣。具體來說,我正在尋找可靠的窮人的解決方案,可以使用服務器的最低金額實施。AWS替代DNS故障轉移?
到目前爲止,我很滿意爲主要HA關切的辦法:負載均衡,冗餘,自動恢復,可擴展性...
唯一的癥結點我是故障解決方案。
使用ELB可能看起來不錯,但是ELB實際上使用DNS平衡。見Is AWS's Elastic Load Balancer a single point of failure?。同樣來自Netflix的博客文章:Lessons Netflix Learned from the AWS Outage
這是因爲ELB是雙層負載均衡方案。第一層由基於DNS的循環負載平衡組成。這會將客戶端獲取到ELB配置爲使用的其中一個區域中的雲中的ELB端點。
現在,我已經瞭解到DNS故障轉移不是一個理想的解決方案,正如其他人指出的,主要是因爲DNS緩存不可預知。參見例如:Why is DNS failover not recommended?。
除了ELBs,在我看來,大多數AWS HA架構中使用路由53
最後,浮動IP /彈性IP(EIP)戰略在極少數的彈起依賴於DNS故障轉移文章,例如Leveraging Multiple IP Addresses for Virtual IP Address Fail-over,我很難弄清楚這是否是生產系統的可行解決方案。另外,我遇到的所有示例都使用一組主動 - 被動實例來實現此功能。對於每一個積極的人來說,實現這一目標似乎是一種浪費。
鑑於此,我想問問什麼是更快更可靠的故障切換方式?
更具體地,請討論如何在不使用DNS以下2對設置進行失效切換:
2主動 - 主動EC2實例在單獨的AZS。主動 - 主動,因爲這是一個預算安排,我們是否無法負擔一個實例。
1 ELB在區域A中有2個EC2實例,1個ELB在區域B中有2個EC2實例。同樣,兩個區域都是活動的並提供流量。你如何處理從1個ELB到另一個的故障轉移?
我應該瞭解,根據您的體驗,DNS緩存問題從來不是一個足以重新考慮使用ELB的重要因素? –
我喜歡這兩個應用程序都處於活動狀態時主動/被動HAProxy的想法。如果完美的故障轉移是目標,那麼這種設置不會被ELB所青睞嗎? –
回覆:DNS緩存,這是正確的。 –