4

具體而言,我有一個問題,推薦在AWS環境中組織AZ故障轉移的方式是什麼。此外,理解典型的AWS故障以組織應用程序HA(高可用性)將會很好。 因此,應用程序架構(AWS服務的使用)是以下幾點: 這是多/少典型的Web應用程序架構在AWS常見AWS故障 - 處理AZ故障轉移

  1. 有能解決一些ELB的IP路由53。
  2. 有公共子網有ELB,它將流量路由到Web服務器到私有VPC;
  3. 在專用子網流量中:Web服務器 - > ELB->應用程序服務器;
  4. 應用程序服務器將數據寫入多可用區RDS。

這種部署的主要缺點是服務在一個可用區域中處於活動狀態,因爲在多可用區域部署中,Amazon RDS會自動在不同可用區域中提供並維護同步備用副本。因此,master只有一個AZ,而另一個AZ的服務因爲待機而不能寫入RDS。

兩個問題:

  1. 什麼是實現HA這樣的部署更好的辦法?
  2. 什麼是常見的AWS故障(如果一個AZ不可用,無論它是否只發生在某些服務(例如VPC/EC2/EBS其他問題?)或通常它是整個AZ特定服務不可用)?

事項有關HA這樣的做法:

  1. RDS。來自AWS的文檔:「如果您的數據庫實例發生計劃內或計劃外停機,那麼如果您啓用了多可用區,Amazon RDS會自動切換到另一個可用區中的備用副本,所需時間.....」。所以,AWS自動更改RDS Master。
  2. 活動/未活動AZ。不同的健康檢查可以添加到Route53,基本上使活動另一個AWS AZ。但是如何使其與RDS同步(僅當RDS成爲另一個AZ中的主設備後才能使此AZ有效)?

更新 另一個原因是保持一個積極的和一個被動AZ是我們的應用程序服務器應支持設備的IP地址粘性(例如它使基於用戶或設備的IP會話)。我們在每個AZ中有1個EC2 Web服務器實例來維護它(我們不能允許請求到不同的AZ)。

回答

2

我想你誤解了可用區域的工作原理。一個AZ中的服務可以連接到另一個AZ中的RDS主服務器。您應該擁有至少2個AZ的所有服務。

對於RDS,當主設備發生故障或主設備處於停用狀態時,RDS服務將促使備用設備主控並更新RDS端點的DNS,以便端點將指向新的主設備。

爲了處理RDS故障轉移,您需要執行的所有操作都是通過重試來正常處理突然的DB斷開連接。

+0

準確地說,「IP」粘性意味着什麼? –

+0

來自特定客戶端IP(不基於cookie)的請求會發送到應用程序服務器的相同實例。 – user1459144

+0

你如何通過ELB實現IP粘性?你是否繞過ELB?每個ELB只有一個EC2實例嗎? –