跳到主要內容

從伊朗無人機攻擊事件中找出那些 AWS 沒跟你說的事

2026 年 3 月 1 日凌晨,伊朗對杜拜的無人機攻擊讓 AWS ME-CENTRAL-1(UAE)區域的兩座資料中心同時受創,引發了大規模的服務中斷。EC2、S3 、DynamoDB 、Lambda 、RDS、Kinesis等關鍵服務停擺,整個 Region 的基礎設施幾乎崩潰。

比事件本身更值得深究的是, AWS 的官方更新報告在字裡行間所洩露的訊息:那些平時被反覆引用的雲端架構承諾,在這次事件面前一個接一個地開始鬆動。

以下問題點,全部來自 AWS 親口說出的原文。

可用區域「貌離神合」

AWS 官方反覆強調每個可用區域(Availability Zone)是獨立的實體機房,有獨立的電力供應、網路連線和冷卻系統,彼此之間的故障不會相互影響。理論上,只要你把服務跑在正常的 AZ,就應該沒事。

"The third Availability Zone (mec1-az1) continues to operate normally, though some services have experienced indirect impact due to dependencies on the affected zones."

mec1-az1 實體上沒有受損,電力正常、機器還在跑,但因為服務層面的跨 AZ 依賴,它也跟著出問題了。AZ 的物理隔離確實存在,但「服務隔離」顯然是另一回事,而 AWS 在宣傳時常常讓這兩個概念混用。

“Amazon EC2 instance launches remain throttled in the ME-CENTRAL-1 Region and will be relaxed as foundational service recovery and capacity allow.”

假設一個企業服務在 ME-CENTRAL-1 使用 Multi-AZ Auto Scaling 部署,機器分散在 az1、az2、az3。目前 az2 和 az3 已經嚴重受損,導致這兩個 AZ 機器不可用,因此流量很可能會集中到仍然正常運作的 az1。

但 AWS 目前對 az1 新增機器的動作進行限制,Auto Scaling 很可能無法啟動新的機器來補充容量,因此剩餘的機器也無法承受原本的流量負載。

壞一個沒問題,那壞兩個呢?

AWS 在報告中表示 S3 的設計只保護你抵抗單一 AZ 全損。ME-CENTRAL-1 只有三個 AZ,一次失去兩個,S3 的冗餘設計直接失效。

"Amazon S3 is a regional service and designed to withstand the total loss of a single Availability Zone while maintaining S3's durability and availability… As the second AZ became impaired, S3 error rates increased. With two Availability Zones significantly impacted, customers are seeing high failure rates for data ingest and egress."

另外AWS S3 的招牌賣點是 99.999999999% 的資料耐久性。這個數字出現在無數銷售簡報、架構討論和客戶提案之中,暗示你的資料幾乎不可能丟失。

"Full recovery of GET operations for pre-existing data remains dependent on restoring the affected infrastructure."

你金庫裡有錢,但櫃員跟你說現在不能領。耐久性(Durability)描述資料不會遺失,可用性(Availability)描述你能不能存取它,這兩個概念在客戶心中模糊化,讓人誤以為「資料不會丟」等於「隨時讀得到」。

有福同享,有難同當

雲端服務的模組化設計是重要賣點之一,每個服務獨立部署、獨立擴展、獨立容錯。客戶可以「只用 Lambda」或「只用 RDS」,服務之間理應有清楚的邊界。

"AWS Lambda, Amazon Kinesis, Amazon CloudWatch, Amazon RDS, and a number of other AWS services that were impacted by this event remain degraded. The availability of these services is dependent on the recovery of our foundational services — primarily Amazon S3 and Amazon DynamoDB — and we expect to see improvement across these services as that recovery progresses."

Lambda、Kinesis、CloudWatch、RDS⋯⋯這些在 AWS 服務目錄上看起來各自獨立的產品,骨子裡全都依賴同一批基礎服務(S3 和 DynamoDB)。
一旦基礎服務倒下,這些「獨立服務」就像牌樓一樣跟著倒。雲端服務的模組化在功能層面是真的,在故障隔離層面卻遠不如宣傳的那樣完善。

當最需要你的時候,你卻不在了

災難發生時,維運人員的第一直覺是登入 Console 或執行 CLI 來啟動備援計畫、修改 DNS 路由或是開始進行跨區域備份(如果平常沒設定)。由於兩個 AZ 的失效,導致 Console 與 CLI 工具同樣受到影響。

"We can confirm that the AWS Management Console and command line interface (CLI) are disrupted by the failure of two Availability Zones."

當你 Console 登不進去、CLI 也無法執行的時候,如果企業沒有事先準備完全自動化的容錯移轉(例如設定 Route53 failover, Terraform deploy)、或資料跨區雙向同步,手動撤離幾乎是不可能的任務。

雖然在 Well-Architeure 中的可用性支柱有提到控制平面可能會無法使用:

Consider scenarios where the primary site and its control plane are inaccessible. Verify that recovery actions can be performed independently without reliance on the primary site.

但實務上有多少企業或開發者會想的到呢?

誰叫你平常不買保險,出事不能怪我

這是整個事件報告中最微妙、也最值得深思的一點。從第一份重大更新開始,AWS 就持續在報告末尾附上同樣的段落:

"We strongly recommend that customers with workloads running in the Middle East take action now to migrate those workloads to alternate AWS Regions. Customers should enact their disaster recovery plans, recover from remote backups stored in other Regions, and update their applications to direct traffic away from the affected Regions."

這段話的弦外之音是:如果你沒有 DR 計畫,尤其是跨 Region 的 DR,那就是你的問題。而跨 Region 的備援架構代表著高昂的額外成本,在成本壓力之下,可以理解許多中小企業或開發者並未採用。

雲端就是別人的電腦

面對無人機直接攻擊資料中心這種前所未有的事件,不管是 AWS、GCP、Azure 還是任何一個雲端供應商恐怕都難以全身而退。工程師在極端惡劣的條件下持續更新狀態、嘗試軟體層面的補救方案,這份努力值得肯定。

但作為使用者,我們需要從這次事件中了解到:雲端服務的「高可用性」宣傳,有其明確的邊界條件,而這些邊界條件不會出現在銷售簡報上,往往被隱藏在技術文件的細節裡。

在中東戰爭局勢升溫的今天,任何在該區域有業務的企業,都應該重新審視自己的雲端架構。不是因為 AWS 不好,而是因為真正的韌性從來不依賴單一供應商的承諾。

留言

這個網誌中的熱門文章

2025 GCP Associate Cloud Engineer 題型分享

考試時間:2025/07 考試時長:2 小時 權限設定相關問題佔比重大:Organization、IAM 和 Service Account 至少十題以上 帳單分析:透過 Export 功能結合 BigQuery Spanner 全球關聯式資料庫核心概念 gcloud Compute 常用指令 SSH 安全連線最佳實踐 Cloud Run 服務特性與應用場景 GKE 基礎架構與使用方式 Load Balancer 類型與應用(內部/外部、全球/區域) Storage Bucket 版本控制與生命週期管理 Storage Data Lake 應用(結構化與非結構化資料儲存) AlloyDB 特點與優勢(增強版 PostgreSQL) Filestore 作為 VM 的 NFS 解決方案 GCP 現代化與全託管服務特性 Pub/Sub 訊息系統與其他服務整合應用 VPC 網路架構與 Landing Zone 網路設計

AWS 與 GCP VPN 窮連與富連設定

  在工作場景中,自己接觸到很多客戶透過VPN來連結多雲架構,於是決定實作連結AWS和GCP。 這篇文章整理 GCP Cloud VPN 與 AWS Site-to-Site VPN 的對接架構,並分別省錢版與企業版。 情境一:只是想連線測試或主管叫我省錢 這是省錢版,當你只是想測試連線功能,或主管叫你要省錢。 AWS 端設定 一個 Customer Gateway 填入GCP的固定IP 一個 Virtual Private Gateway 建立並與要測試連線的 VPC 關聯 一個 VPN Connection 因為 GCP Classic VPN Gateway 已經不支援BGP動態路由 ,因此設定 Routing options 時要選擇Static,並填上GCP要測試的 VPC 網段 確認Connection Static Route頁面有出現VPC網段 要測試連線的VPC子網路由表啟用Route Propagation(或手動加上要測試的網段) GCP 端設定 一個固定IP 建立一個固定IP 一個Classic VPN Gateway 因為在GCP建立VPN Gateway預設會啟用HA設定(也就是給你兩個Interface),所以必須手動調整為建立Classic VPN Gateway 一條VPN Tunnel 按照AWS Tunnel 1 or 2的資訊來填入Remote peer IP address(也就是Outside IP address)、Remote network IP ranges(也就是Inside IPv4 CIDR)、IKE PSK Key(下載配置檔從裡面得到Key) Routes 當你看到兩邊的Tunnel都亮綠燈時,想要用Ping測試連線,卻發現怎麼連不上 因為前面是設定靜態路由,所以我們還需要手動加上回AWS的路由 Destination IPv4 range > AWS子網網段 Next hop > 選擇建立的VPN Tunnel 注意事項 注意Tunnel 的IKE version一致 AWS預設一個 VPN Connection就會給你兩條Tunnel,你也不能更改,不管有沒有兩條都用都收一樣的錢(一個 Connection 跟兩...

YouTube Music 無法一鍵按讚整個播放清單?這個 Chrome 擴充功能解決它

如果你剛從 Spotify 或 Apple Music 搬歌單到 YouTube Music,你很可能與我面對同一個問題: 那幾千首的 Liked Songs Playlist,要一首一首手動按讚嗎? 問題出在哪裡? 最近把 Spotify 歌單搬移到 YouTube Music,過程中發現一個讓人頭痛的地方,Spotify 的 Liked Songs (那個你一首一首按愛心的清單),搬過來之後,會以「新建立播放清單」的方式出現。但 YouTube Music 本身也有一個預設的 Liked Songs 清單,而且是完全分開的兩個東西。 更麻煩的是,目前所有的轉移工具都沒辦法把歌曲直接匯入那個「預設清單」。YouTube Music 也沒有提供「對整個播放清單一鍵按讚」的功能。 也就是說,如果你有 1000 首歌,你只能一首一首手動按讚,太辛苦了。 網路上有解法嗎? 搜尋了一圈,發現這個問題其實非常多人遇到,但答案都不太讓人滿意。 有人說「只能手動」,有人分享了 JavaScript 腳本,但不是已經過時跑不起來,就是需要自己打開 DevTools 手動執行,對一般使用者來說門檻太高。 既然沒有好用的現成工具,那就自己做。 用 Chrome 擴充功能來解決這件事 透過 AI 協助開發,我做出一個 Chrome 擴充功能,可以自動對 YouTube Music 播放清單裡的所有歌曲按讚。 不需要任何技術背景,安裝完就能直接使用。 為了讓大家能直接從 Chrome 線上應用程式商店搜尋下載,花了 5 美元購買了上架資格。雖然只是一筆小錢,目的就是讓整個流程盡量簡單。你不用懂程式、不用開終端機,搜尋、安裝、點一下,完成。 使用方式 前往 Chrome 線上應用程式商店,搜尋並安裝擴充功能(點此前往) 開啟並登入 YouTube Music,複製你想要批次按讚播放清單的網址 點擊擴充功能按鈕,貼上網址,讓它自動幫你完成剩下的事 總結 這個擴充功能適合你,如果你符合以下任一條件: 剛從某個音樂串流平台搬到 YouTube Music 想把播放清單裡的歌一次加入 Liked Songs 不想一首一首手動按讚 歡迎試用,如果有問題或建議也非常歡迎留言回饋 🙌 更新 我在遞交1.1版...