AWS 大當機內幕:Race Condition 拖垮全球網路 | S2E35

📌 AWS 大當機內幕:Race Condition 拖垮全球網路 | S2E35

容易懂 Easy Know

想像一下,亞馬遜雲端服務AWS就像一個超級大的發電廠,幫全世界很多網路服務供電。但在10月20日,這個發電廠最重要的一個區域US-East-1突然大當機了!就像是發電廠裡最重要的「電話簿」——DNS,告訴大家怎麼找到「資料庫」——DynamoDB,竟然被清空了。結果,所有需要查詢這本電話簿的服務都找不到路,像Snapchat、Zoom、甚至足球比賽的越位判斷系統都跟著卡住,整個網路世界有12%的流量都受影響,卡了足足15個小時!這就像一個小小的電話簿錯誤,讓很多地方都停擺了。工程師們花了很久才找到並修好這個錯誤,因為除了電話簿,還有很多其他東西也跟著壞掉。這次事件告訴我們,就算是再厲害的服務,也需要有備用計畫,就像你家發電廠有問題時,也要有太陽能發電來支援一樣,這樣才不會因為一個小問題就全部停擺。

====================

總結 Overall Summary

亞馬遜雲端服務(AWS)的核心區域US-East-1於2021年10月20日發生了一場長達15小時的重大當機事件,對全球眾多線上服務造成廣泛衝擊。此次當機的直接起因是DynamoDB的DNS記錄因系統內部競態條件(Race Condition)被意外清除,導致所有內部及外部服務無法找到並連接到這個關鍵資料庫。

深入探討其根本原因,影片指出AWS內部負責管理DNS記錄的「DNS Planner」與「DNS Enactor」系統之間存在問題。當多個Enactor實例在處理DNS更新時,其中一個處理速度異常緩慢,導致它在抓取舊的更新計畫並試圖寫入時,其他Enactor已完成新計畫的寫入。慢速的Enactor在偵測到舊計畫後,誤將已更新的DNS記錄清空,從而使DynamoDB在網路上「消失」。

DynamoDB雖然在三小時後得以復原,但其後引發了一系列連鎖反應,導致復原過程耗時漫長。首先是EC2服務中的Droplet Workflow Manager因無法查詢DynamoDB的狀態,錯誤判斷所有虛擬機(Droplet)皆被佔用,導致新虛擬機無法啟動。工程師又花費三小時解決此問題。接著,網路服務的Network Manager也面臨類似的請求積壓問題,阻礙了路由資訊的更新,使得EC2雖然能啟動卻沒有網路連線,再次耗時五小時解決。最終,清理與解除API限流等後續工作又花了三小時,整個流程累計長達15小時。

這次當機的影響範圍極廣,包括Snapchat、WhatsApp、Zoom等社群與通訊平台,Coinbase、Robinhood等金融服務,多個政府網站及航空公司,甚至連英超足球聯賽的半自動越位系統也因此停用。AWS也因此需根據與客戶簽訂的服務等級協議(SLA)條款,向受影響客戶提供賠償或費用折抵。

為避免類似災難重演,影片建議AWS應持續改進其系統,特別是DNS更新機制。對於AWS客戶而言,最關鍵的策略是採用多區域(Multi-region)或多雲(Multi-cloud)部署,以確保單一區域或單一供應商故障時,服務仍能繼續運行。此外,所有企業都應建立完善的緊急應變SOP,並定期進行「Game Day」實戰演習,以提升團隊在面對突發事件時的應變能力與復原速度。儘管軟體工程領域無法完全杜絕意外,但這些措施能有效降低風險並加速服務復原。

====================

觀點 Viewpoints

一、 AWS核心區域US-East-1的當機影響廣泛。作為AWS最早且最大的區域,其故障導致全球約12%的網路流量受影響,涵蓋社群媒體、金融、政府及體育賽事等多元領域。
二、 DynamoDB的DNS記錄清除是此次當機的最初觸發點。因內部DNS Planner與Enactor系統的競態條件,導致舊的DNS更新計畫意外清除了正確的記錄,使此關鍵資料庫在網路世界中消失。
三、 此次當機是複合性、層層遞進的系統故障。首先是DynamoDB的DNS問題,接著影響EC2虛擬機的Droplet管理系統,使其無法正常分配資源,最後連帶造成網路層的路由更新瓶頸,使得修復過程耗時甚鉅。
四、 服務等級協議(SLA)的存在確保了客戶權益。AWS需根據合約向受影響的付費客戶提供賠償或費用折抵,這凸顯了雲端服務供應商的責任。
五、 採取多區域或多雲策略是提升系統韌性的關鍵。客戶不應過度依賴單一雲端供應商或單一區域,透過跨區域甚至跨雲的部署,能有效降低大規模當機的衝擊。
六、 完善的緊急應變SOP及定期演習至關重要。企業應預先制定詳細的應變手冊,並透過「Game Day」等模擬演練,確保團隊能在突發事件發生時,迅速有效地復原服務。
七、 強制離線事件有時也具備正面意義。儘管系統當機帶來不便,但對於過度依賴社群媒體的現代人而言,短暫的「被迫離線」反而可能帶來清閒與反思的機會。

====================

摘要 Abstract

✅ 2021年10月20日,AWS核心區域US-East-1發生了長達15小時的大規模服務當機。
⚠️ DynamoDB的DNS記錄因內部競態條件被錯誤清除,成為此次當機的最初原因。
📌 當機引發連鎖效應,EC2的虛擬機管理系統與網路連線服務也相繼遭遇瓶頸。
🌐 此次事件波及Snapchat、Coinbase、英超足球賽的半自動越位系統等多個重要領域。
💰 AWS須根據服務等級協議(SLA)向受影響的客戶提供賠償或折抵費用。
💡 為增強系統穩定性,客戶端應考慮採用多區域或多雲端的部署策略。
🛡️ 企業應制定詳細的緊急應變SOP並定期進行「Game Day」演練以提升應變能力。
🔄 軟體系統無法絕對避免故障,關鍵在於降低發生機率並加速故障後的復原。
💭 影片建議,有時意外的「被迫離線」也可能為人們帶來遠離螢幕、清淨身心的機會。

====================

FAQ 測驗

第一題
導致AWS本次15小時大規模當機的最初直接原因是什麼?
A. 駭客對AWS基礎設施發動了大規模分散式阻斷服務(DDoS)攻擊。
B. AWS資料中心電力系統發生嚴重故障,導致所有伺服器離線。
C. DynamoDB的DNS記錄因系統內部競態條件被錯誤地清空。
D. AWS內部員工惡意操作,故意刪除了關鍵資料庫服務。

正確答案:C
解釋:影片明確指出,當機的直接觸發點是DynamoDB的DNS記錄因DNS Planner與Enactor之間的競態條件被意外清除。

第二題
為了避免未來類似AWS大規模當機事件對服務造成衝擊,客戶端最推薦採取的策略是什麼?
A. 將所有服務集中部署在單一AWS區域,以簡化管理。
B. 大幅增加單一區域內的伺服器數量,提升處理能力。
C. 採用多區域(Multi-region)或多雲(Multi-cloud)的部署策略。
D. 完全停止使用雲端服務,回歸自建實體資料中心。

正確答案:C
解釋:影片強調,分散風險是關鍵。採用多區域部署可以在一個區域故障時,服務切換到其他正常區域;而多雲策略則進一步分散了對單一雲端供應商的依賴。

第三題
AWS此次當機事件中,從DynamoDB故障開始,導致服務復原耗時漫長的連鎖瓶頸依序為何?
A. 電力系統損壞 -> 儲存裝置故障 -> 應用程式錯誤。
B. DNS記錄清空 -> EC2虛擬機啟動障礙 -> 網路連線中斷。
C. 網路攻擊 -> 伺服器過載 -> 資料庫損毀。
D. 內部軟體衝突 -> 用戶端無法登入 -> 安全漏洞。

正確答案:B
解釋:影片詳細描述了當機過程中的層層遞進問題:首先是DynamoDB的DNS被清空,接著導致EC2的Droplet系統無法正常工作,即便EC2修復後又發現網路連線失效,這三個瓶頸是導致整個復原過程長達15小時的主要原因。

✡ Oli小濃縮 Summary bot 為您濃縮重點 ✡

https://youtu.be/qoeM362JSws

*

張貼留言 (0)
較新的 較舊

廣告1

廣告2