2016-01-17 32 views
2

通常,在使用AWS RDS時,實現高可用性的推薦做法是在不同的AZ(多可用區域部署)中部署熱複製副本。此外,可以調出一些只讀副本以提高讀取性能。爲什麼使用AWS的多可用區域部署Aurora

我讀過AWS Aurora文檔,它使用通用虛擬存儲層,它在3個AZ上覆制,每個AZ中有兩個副本。

enter image description here

我的問題是:有沒有必要使用極光DB集羣亞馬遜多AZ部署中,如果極光本身能夠修復本身,並已其存儲分佈在多AZS?如果它在3個AZ中每個保留2個存儲副本,那麼它與使用多AZ副本設置進行故障轉移一樣可靠。另外,在故障轉移期間。它會自動創建另一個實例(如果不存在只讀副本)或切換主實例。我真的不明白有必要創建使用多AZ極光集羣來提高可用性的額外要求。

是否有可能在默認的Aurora部署下可用性受到影響?丟失包含主Aurora DB節點的整個AZ時會發生什麼?

回答

3

如果您只對您的數據沒有丟失感興趣,那麼非多字節AZ可能會正常工作,因爲如您所說,數據會爲您複製。

但是Aurora的正在運行的實例仍然存在於物理機器上,並且該物理機器位於單個AZ中,因此如果該AZ停機,而您不會丟失任何數據,則不一定有權訪問它。

多可用區域部署的物理機器以多個AZ運行,因此如果一個AZ發生故障,其他AZ中的數據庫服務器仍然可以處理您的請求。

+1

不是在虛擬機上運行的只讀副本嗎?那麼,如果AZ下降,主要可以改爲其中之一? – Ouroboros

1

的RDS Multi-AZ feature是極光的部署更簡單比對非極光部署:一個Aurora Replica是除了讀縮放端點的多AZ故障轉移目標,所以創建一個多AZ極光部署是很簡單,就像在主實例的不同可用區中部署Aurora副本一樣。

此行爲與標準的非Aurora多可用區部署不同,後者維護單獨的同步複製的「備用實例」,該備用實例不能用作讀取縮放端點,反之亦然(標準RDS只讀副本不能用作多可用區故障轉移目標)。

儘管Aurora數據在不同AZ之間備份,但已經運行的副本實例仍然可以顯着減少從主實例故障恢復所需的時間。的時間極光花費從與極光副本可用的故障轉移恢復的典型量爲1-2分鐘,相比10分鐘沒有副本,如Fault Tolerance for an Aurora DB Cluster描述:

如果主實例在DB集羣出現故障,極光自動故障轉移到一個新的主實例在以下兩種方法之一:

  • 通過促進現有的極光副本到新的主實例
  • 通過創建一個新的主斯塔nce

如果數據庫集羣具有一個或多個Aurora副本,則在發生故障事件期間將Aurora副本升級爲主實例。 [...]然而,服務通常在小於120秒經常小於60秒恢復。 [...]

如果數據庫集羣不包含任何Aurora副本,則會在失敗事件期間重新創建主實例。 [...]在創建新主實例時恢復服務,通常需要少於10分鐘

將Aurora副本升級到主實例比創建新的主實例要快得多

+0

迄今爲止我讀到的最好的解釋和答案之一與此背景有關。謝謝@wjordan 順便說一句,我們仍然可以有一個不同的數據庫實例的複製權?說我的生產,我可以有一個db.r4.2xlarge作爲我的主要和db.r4.large作爲副本/多AZ備用? – Vineeth