AWS新推出 區域自動轉移(Zonal Autoshift)功能 ,這是Amazon Route 53應用程式恢復控制器的新功能,能夠在偵測到可用區域(Availability Zone)可能出現問題的時候,自動且安全地將用户的應用程式工作負載流量,從可用區域轉移出去,並在問題解決後再將流量轉回原本區域。
在部署具韌性的應用程式時,AWS用户通常會將資源部署於同一個地區的多個可用區域。而所謂的可用區域,是相距一定距離,確保具有不同的電力、連接性、網路設備甚至是洪泛區的不同實體資料中心羣組。
在過去,用户需要手動管理不同可用區工作負載平衡,以確保應用程式的高可用性和韌性。用户在可用區域指標狀態不良時,便能以手動或是程式化的方式觸發區域轉移,將流量從原本的可用區域移出,透過負載平衡器配置將所有連接導向到健康的可用區域,供用户在調查故障的原因時,仍然可以維持應用程式的可用性。
手動區域轉移雖然可以用於防止例如部署失敗、配置或是操作錯誤等,來自用户這端的應用程式錯誤,但官方提到,當可用區域存在潛在故障問題時,用户有時難以辨識或是偵測到故障,畢竟用户也不會追蹤每一個可用區域的指標,當用户的服務需要跨區域邊界呼叫相依項目,就可能造成所有可用區域的應用出現錯誤。
而用户現在可以透過在啟用區域自動轉移功能,來保護工作負載不受潛在可用區域故障的影響。AWS會透過內部監控工具和指標,來決定網路流量轉移的時機,當AWS偵測到特定區域可能出現電力或是網路中斷等問題,系統會自動觸發該基礎設施的NLB或ALB流量自動轉移,並在故障解決後將流量轉回。
這個過程有多重保障措施,確保不會降低應用程式的可用性,AWS也有內部控制確保用户一次只會從一個可用區域轉移流量。AWS每週都會在基礎設施上演練轉移30分鐘,演練結束根據應用程式運作狀況,提供用户成功或是失敗的結果。
用户可以定義不希望進行轉移的時間段,同時還可以設定兩個Amazon CloudWatch警報在執行期間充當斷路器,一個是阻擋演練執行,另一個則是在演練執行期間監控應用程式運作狀況,當其中一個警報觸發,AWS會立即停止演練,並恢復所有可用區流量。
用户在啟用區域自動轉移時,需要確保所有可用區域都要部署足夠容量,以承受在特定可用區域故障時所產生的流量轉移。不過,在所有可用區域部署額外容量會產生成本,用户需要在應用程式的可用性和成本之間權衡。目前,區域自動轉移在中國和GovCloud之外的所有AWS地區中提供。