iT邦幫忙

2026 iThome 鐵人賽

DAY 27
0
自我挑戰組

30 天的 SAA 學習筆記系列 第 27 篇

Day 27 - 架構框架與應考策略 Well-Architected Framework:六大支柱總覽

  • 分享至 

  • xImage
  •  

AWS Well-Architected Framework 是 AWS 整理的一套雲端架構設計準則,把「好的架構」拆成六個面向,稱為六大支柱(pillar)。每個支柱各有一組設計原則與檢查問題,用來評估一個工作負載(workload,指共同提供某項業務功能的一組資源與程式,例如一個電商網站)在這個面向有沒有風險。

SAA 的官方 Exam Guide 開頭就說明,這個考試驗證的是「依 AWS Well-Architected Framework 設計解決方案」的能力。四個考試 Domain 的名稱和其中四個支柱一一對應,題目問題句裡的限定詞,也幾乎都能對回某一個支柱。


🏛️ 六大支柱

六個支柱都是用來評估同一個工作負載,只是各自從不同的面向檢查:

https://ithelp.ithome.com.tw/upload/images/20261011/20150978Zm6SfIH8oY.jpg

每個支柱的設計原則與對應的 AWS 做法:

支柱 關心的事 代表性的設計原則 對應的 AWS 做法
Operational Excellence(卓越營運) 系統怎麼部署、監控與變更,出問題時怎麼應對 以程式碼執行維運;頻繁、小幅、可回復的變更;預想故障並演練;從故障中學習 CloudFormation 建立環境;Systems Manager Automation 執行維運步驟;CloudWatch 告警
Security(安全性) 保護資料、系統與帳號 建立強健的身分基礎(最小權限);保持可追溯性;每一層都套用安全控制;傳輸中與靜態資料都加密;讓人員遠離資料 IAM role、SCP;CloudTrail、Config;Security Group 與 NACL;KMS、ACM
Reliability(可靠性) 元件故障時自動復原,需求變動時仍能正常服務 自動從故障中復原;測試復原程序;水平擴展,避免單點故障;停止猜測容量;以自動化管理變更 Multi-AZ;Auto Scaling 替換不健康的 instance;SQS 解耦;跨 Region 備援
Performance Efficiency(效能效率) 用合適的資源類型與規格,有效率地滿足效能需求 使用 AWS 受管的進階技術;在幾分鐘內部署到全球;使用 serverless 架構;多做實驗;依資料存取模式選擇技術 CloudFront、Global Accelerator;Lambda、DynamoDB;read replica;快取
Cost Optimization(成本最佳化) 以最低的成本提供業務價值 建立雲端財務管理(例如把成本歸屬到各團隊並定期檢視);採用依用量付費的模式;衡量整體效率;不把錢花在和業務無關的繁重工作上(例如自己維護機房);分析並歸屬支出 Auto Scaling、Spot、Savings Plans;S3 lifecycle;cost allocation tags、Cost Explorer
Sustainability(永續性) 降低工作負載對環境的影響 了解自己的影響;提高資源使用率;採用效率更高的新硬體與軟體;使用受管服務 調整到合適的規格;Graviton instance;serverless 與受管服務

🎯 支柱與考題的對應

考試 Domain 權重 對應的支柱 問題句常見的限定詞
Domain 1:Design Secure Architectures 30% 安全性 MOST secure、符合某項法規
Domain 2:Design Resilient Architectures 26% 可靠性 highest availability、without downtime、達成某個 RPO/RTO
Domain 3:Design High-Performing Architectures 24% 效能效率 lowest latency、MOST performant
Domain 4:Design Cost-Optimized Architectures 20% 成本最佳化 MOST cost-effective

另外兩個支柱沒有獨立的 Domain,但出現的方式不同:

  • 卓越營運分散在每個 Domain 裡。LEAST operational overhead(也常寫成 MOST operationally efficient)是考題最常見的限定詞之一,選項通常一邊是自己撰寫程式或手動操作,一邊是 AWS 受管服務或內建的自動化功能,後者勝出
  • 永續性很少作為限定詞。和它相關的做法(調整規格、使用受管服務)通常同時也是成本或效能上的最佳解

⚖️ 支柱之間的取捨

支柱之間經常互相衝突:Multi-AZ 提高可靠性,但資料庫費用大約加倍;把資料多複製一份到另一個 Region,可靠性更高,成本也更高。題目的四個選項通常都「能運作」,差別在於各自偏向哪一個支柱,問題句的限定詞決定由哪一個支柱勝出。

同樣是「一個 RDS 資料庫」,限定詞不同,正解就不同:

https://ithelp.ithome.com.tw/upload/images/20261011/20150978V5ReFhQNEc.jpg

題目的需求與限定詞 偏向的支柱 選擇
開發環境,可以接受數小時的停機,MOST cost-effective 成本最佳化 Single-AZ,搭配自動備份
正式環境,AZ 故障時自動切換,highest availability 可靠性 Multi-AZ
報表查詢拖慢交易處理,交易處理要維持低延遲 效能效率 Read replica,報表改連 replica
不想自己管理資料庫的修補與備份,LEAST operational overhead 卓越營運 從 EC2 上自行安裝的資料庫改成 RDS

作答時先讀問題句的限定詞,確定要用哪一個支柱判斷,再回頭讀情境,找出會讓其他選項出局的條件。下一節把這個過程拆開來看。


🧩 用支柱判斷選項:先刪,再比

用途:把「知道各支柱在意什麼」轉成實際作答的方法。

SAA 的錯誤選項大致有三種:

  • 做不到:對功能的誤解,例如以為 Multi-AZ 的 standby 能分擔讀取
  • 違反條件:能運作,但違反了題目明確寫出的某個要求
  • 比較輸了:符合所有要求,但在限定詞的比較中輸給正解

前兩種可以直接刪掉,第三種要比較,所以判斷分成兩步:

https://ithelp.ithome.com.tw/upload/images/20261011/20150978HWTPEnoHMd.jpg

  1. 先刪:刪掉做不到的選項;再找出題目明確寫出的要求,例如「不能修改應用程式」「停機不能超過 10 分鐘」「資料不能經過網際網路」,刪掉違反這些要求的選項。通常會剩下兩個
  2. 再比:剩下的選項都能運作,這時看問題句的限定詞,用對應的支柱比較,選出比較好的那一個

每個限定詞的正解與錯誤選項,各有常見的樣子:

限定詞 正解通常是 常見的錯誤選項
MOST cost-effective 剛好滿足需求的最低配置 最便宜,但違反了某個條件,例如 Spot 用在不能中斷的工作
LEAST operational overhead、MOST operationally efficient AWS 內建的功能、受管服務 能做到,但要自己寫程式監控或手動操作
highest availability 分散到多個 AZ,故障時自動切換 換更大的機器,或在同一個 AZ 加機器
MOST secure 權限剛好夠用、流量走私有路徑 能運作,但權限開太大或經過網際網路
lowest latency 把資料放近一點、讀寫分開 只把資料庫換成更大的規格

拆解一題

某公司在 EC2 上執行訂單 API,資料庫是 Single-AZ 的 Amazon RDS for MySQL。公司要求資料庫所在的 AZ 故障時能自動恢復,而且不能遺失任何已經確認的訂單。

哪一個方案的維運負擔最低(LEAST operational overhead)?

A. 在另一個 AZ 建立 read replica,以 Lambda 監控主要資料庫,故障時自動把 replica 升級為主要資料庫
B. 把資料庫換成更大的 instance 類型並啟用自動備份,故障時從最新的備份還原
C. 把資料庫改為 Multi-AZ 部署
D. 在兩個 AZ 的 EC2 上自行安裝 MySQL 並設定同步複寫,再撰寫腳本在故障時切換

先刪:題目有兩個要求,「AZ 故障時自動恢復」與「不能遺失已經確認的訂單」。A 的 read replica 是非同步複製:主要資料庫確認一筆訂單後,replica 可能還沒收到,這時發生故障,最後幾筆訂單就會遺失,違反第二個要求。B 的資料庫仍在單一 AZ,從備份還原要人工操作,而且會遺失最後一次備份之後的資料,兩個要求都不符合。剩下 C 和 D。

再比:C 的 Multi-AZ 以同步方式把每筆寫入複製到另一個 AZ 的 standby,D 也設定了同步複寫,兩者都能在故障時自動切換且不遺失資料。限定詞是 LEAST operational overhead,對應卓越營運:C 的複製、偵測與切換都由 RDS 處理,連線的 endpoint 也不變;D 要自己維護兩台 EC2 上的 MySQL、複寫設定與切換腳本。正解是 C。

這題的錯誤選項各自代表一種常見的樣子:A 是「看起來能做到,但不符合題目的條件」,B 是「換更大的機器」,D 是「能做到,但要自己維護」。


🛠️ AWS Well-Architected Tool

用途:依六大支柱審查一個工作負載的設計與維運做法,找出風險並追蹤改善。

AWS Well-Architected Tool 是主控台中的免費服務,用來依六大支柱審查一個工作負載:

  1. 在工具中定義工作負載(名稱、環境、Region 等)
  2. 逐題回答各支柱的檢查問題,例如「如何偵測與調查安全事件」「如何備份資料」
  3. 工具依答案產生報告,列出高風險問題(high risk issue,HRI) 與中風險問題(medium risk issue,MRI),以及對應的改善建議

除了六大支柱的通用問題,還可以套用 lens:針對特定類型工作負載的額外檢查問題,例如 Serverless Lens、SaaS Lens。每次審查完可以存成 milestone,記錄當時的狀態,之後比較改善的進度。

題目描述「依 AWS 最佳實務定期審查架構、追蹤改善項目」時,對應的就是 Well-Architected Tool。


🔎 Trusted Advisor:自動檢查帳號中的資源

用途:自動找出帳號中不符合最佳實務的資源設定,例如閒置的資源、過度開放的 Security Group。

AWS Trusted Advisor 自動掃描帳號中實際存在的資源,找出不符合最佳實務的設定,檢查項目分成六類,和支柱大致對應:

類別 檢查的例子 對應的支柱
Cost optimization 閒置的 load balancer、使用率低的 EC2、未關聯的 Elastic IP 成本最佳化
Performance 使用率過高的 EC2、CloudFront 設定 效能效率
Security Security Group 對所有 IP 開放特定 port、root user 沒有 MFA、公開的 EBS snapshot 安全性
Fault tolerance 沒有跨 AZ 的資源、沒有啟用備份的 RDS、EBS 沒有近期的 snapshot 可靠性
Service limits 用量接近服務配額(service quota)上限 可靠性
Operational excellence 維運相關的設定,例如 API Gateway 沒有啟用執行日誌 卓越營運

可以使用的檢查項目取決於 AWS Support 方案。Basic 方案只有 service limits 類別的全部檢查,以及 security、fault tolerance 類別中的部分檢查;Business Support+ 以上的方案才能使用全部檢查、以 AWS Support API 程式化取得結果,並以組織檢視彙整 AWS Organizations 中所有帳號的結果。(舊的 Developer 與 Business 方案自 2025 年 12 月起不再開放新訂閱,2027 年 1 月 1 日停止;較舊的教材與考題會寫成「Business 以上」。)

Well-Architected Tool 和 Trusted Advisor 的差別在於檢查的對象:前者由人回答問卷,檢查的是做法;後者自動掃描,檢查的是實際存在的資源。

https://ithelp.ithome.com.tw/upload/images/20261011/20150978evL15xOptR.jpg

Well-Architected Tool Trusted Advisor
檢查什麼 架構設計與維運做法 帳號中實際存在的資源設定
怎麼檢查 人回答問卷 自動掃描
例子 「有沒有定期演練復原程序」 「這個 Security Group 對 0.0.0.0/0 開放 22 port」

摘要:選項通常都能運作。先刪掉做不到的與違反題目條件的,再用限定詞對應的支柱比較剩下的選項。


🧠 AI 出題

問題 1

某公司在 AWS 上執行 12 個工作負載,分別由不同團隊負責。架構團隊每半年要審查每個工作負載的設計與維運做法,例如是否定期演練復原程序、發生安全事件時如何調查。除了 AWS 的最佳實務,公司另有一套自訂的架構規範,例如新系統上線前必須通過資安團隊的設計審查,也要在同一次審查中一併檢查,並能和上一次的結果比較。

哪一個方案的維運負擔最低(LEAST operational overhead)?

  • A. 啟用 AWS Trusted Advisor 的全部檢查,並以 AWS Config custom rules 檢查公司自訂的規範,每半年匯出結果比較
  • B. 在 AWS Well-Architected Tool 建立收錄公司規範的 custom lens,與 AWS 的 lens 一起套用到每個工作負載
  • C. 以 AWS Config 部署 conformance pack,加入以 Lambda 撰寫的 custom rules 表達公司規範,再以 aggregator 彙整
  • D. 以 AWS Well-Architected Tool 審查各工作負載,公司自訂的規範另外製作問卷試算表,每半年寄給各團隊填寫

問題 2

某新創公司的 AWS 帳號使用 Basic Support 方案。安全長要求每天自動取得三類檢查結果並匯入公司內部的儀表板:使用率低的 EC2、閒置的 load balancer,以及 Security Group 對所有 IP 開放特定 port。工程師在 Trusted Advisor 主控台中發現,這些檢查項目大多顯示為無法使用。

哪一個方案能以最低的成本滿足這項需求?

  • A. 維持 Basic Support 方案,以 Lambda 每天呼叫 AWS Support API 取得 Trusted Advisor 的檢查結果並寫入儀表板
  • B. 升級到 Enterprise Support 方案,以 Lambda 每天呼叫 AWS Support API 取得 Trusted Advisor 的檢查結果
  • C. 升級到 Business Support+ 方案,以 Lambda 每天呼叫 AWS Support API 取得 Trusted Advisor 的檢查結果
  • D. 維持 Basic Support 方案,啟用 Amazon Inspector 掃描所有 EC2,並把 Inspector 的發現匯入儀表板

問題 3

某公司為內部的訂單系統建立開發環境,資料庫使用 Amazon RDS for PostgreSQL,正式環境已經是 Multi-AZ。開發環境只有工程師在平日上班時間使用,夜間與週末都沒有人存取;發生故障時可以接受數小時的停機,但需要能還原到最近 7 天內的任一時間點,以便重現與除錯。

哪一個方案最符合成本效益(MOST cost-effective)?

  • A. 以 Single-AZ 部署並保留 7 天的自動備份,以 EventBridge Scheduler 在下班後停止、上班前啟動
  • B. 以 Single-AZ 部署並保留 7 天的自動備份,讓 instance 全天候運作,方便工程師隨時連線測試
  • C. 以 Single-AZ 部署並另外建立一個 read replica,以 replica 保存最近 7 天的資料,供工程師重現問題與除錯
  • D. 以 Single-AZ 部署並停用自動備份,改由 Lambda 在每天下班後建立一份手動 snapshot 並保留 7 天

問題 4

某公司在 3 個 Region 部署相同的網站環境,包括 VPC、ALB、Auto Scaling group 與 IAM role。目前由工程師依照文件在主控台逐一建立,各 Region 的設定常有細微差異,曾因此在 failover 後網站無法正常運作。公司要求各 Region 的環境完全一致,之後每次變更也要能事先審查,並套用到所有 Region。

哪一個方案的維運負擔最低?

  • A. 把正式 Region 的 EC2 做成 AMI 並複製到另外兩個 Region,其餘的網路與權限資源依文件在主控台建立
  • B. 在 3 個 Region 以 AWS Config rules 檢查各項設定,發現設定不一致時通知工程師依照文件手動修正
  • C. 為每個 Region 撰寫一份 Systems Manager Automation runbook,每次變更時由工程師依序在各 Region 執行
  • D. 把整套環境寫成 CloudFormation 範本並納入版本控制,以 StackSets 把同一份範本部署到 3 個 Region

問題 5

某公司的網站部署在單一 AZ 的一台 m5.4xlarge EC2 上,網站不保存使用者狀態。為了應付每年兩次的促銷活動,這台 instance 的規格是依過去的尖峰流量挑選的,平常的 CPU 使用率不到 10%。去年這台 instance 所在的 AZ 發生故障,網站停擺了 3 小時。

哪一個方案能提供最高的可用性(highest availability),而且不必再依尖峰預先準備容量?

  • A. 把 instance 換成更大的 m5.8xlarge,並建立 CloudWatch alarm 在底層硬體故障時自動 recover 這台 instance
  • B. 在同一個 AZ 再啟動一台相同規格的 instance,以 ALB 平均分配流量,並啟用 cross-zone load balancing
  • C. 建立跨 3 個 AZ 的 Auto Scaling group 掛在 ALB 後方,以 target tracking 依 CPU 使用率增減 instance
  • D. 在另一個 AZ 以相同規格建立一台 standby instance,並以 Route 53 failover 記錄在主要 instance 故障時切換

💡 解答

1. B

Well-Architected Tool 依各支柱的問題審查工作負載的設計與維運做法,「是否演練復原程序」這類做法上的問題,只能用問卷的方式檢查。公司自訂的規範可以寫成 custom lens:以 JSON 定義自己的問題與最佳實務,發布後和 AWS 的 lens 一起套用到工作負載,同一次審查就能涵蓋兩者;每次審查後存成 milestone,就能和上一次比較。

A 和 C 都以 Config 的 custom rules 表達公司規範,但 Config 只能評估資源的設定,回答不了「是否演練復原程序」「上線前是否通過設計審查」這類做法上的問題;A 的 Trusted Advisor 同樣只檢查資源。D 的方向對了一半:AWS 的最佳實務用 WA Tool 審查,公司規範卻另外用試算表處理,要人工彙整與比較,維運負擔高於把規範做成 custom lens。

2. C

Trusted Advisor 的全部檢查與 AWS Support API 都需要 Business Support+ 以上的方案;Basic 方案只有 service limits 類別的全部檢查,以及 security、fault tolerance 類別中的部分檢查。升級到 Business Support+,再以 Lambda 每天呼叫 Support API 取得結果,是滿足需求的方案中費用最低的。

A 是常見的誤解:Support API 不是每個方案都能使用,Basic 方案呼叫時會收到 SubscriptionRequiredException,而且就算拿得到,Basic 方案也沒有使用率低的 EC2 這類成本檢查。B 能做到,但 Enterprise Support 的費用遠高於 Business Support+,在成本的比較中輸了。D 的 Inspector 掃描的是 EC2 的軟體漏洞與網路暴露,不會指出使用率低的 EC2 或閒置的 load balancer,解的是另一個問題。

3. A

開發環境可以接受數小時的停機,Single-AZ 就夠了;保留 7 天的自動備份,就能做 point-in-time restore 到 7 天內的任一時間點。夜間與週末沒有人使用,以 EventBridge Scheduler 在下班後停止、上班前啟動 instance,停止期間不收 instance 的費用,只收儲存與備份的費用。RDS 停止期間仍會保留交易日誌,不影響 point-in-time restore;一次最多停止 7 天,週末停止兩天多不會碰到這個限制。

B 能滿足所有要求,但 instance 在沒有人使用的夜間與週末仍然計費,在成本的比較中輸給 A。C 是誤解:read replica 是持續同步的副本,只有「現在」的資料,誤刪的資料也會同步過去,無法回到 7 天內的某個時間點,還多付一個 instance 的費用。D 少了關鍵的一步:每天一份手動 snapshot 只能還原到 snapshot 建立的那一刻,無法還原到任一時間點,不符合除錯的需求。

4. D

把環境寫成 CloudFormation 範本,就是以程式碼執行維運:同一份範本建立的環境完全一致,範本放進版本控制後,每次變更都能先審查差異再部署。StackSets 以一次操作把同一份範本部署到多個 Region(也能跨帳號),之後的更新也會套用到所有 Region。

A 只處理了 EC2,網路與權限仍然手動建立,設定差異的根源還在。B 能發現差異,但修正仍靠人工,下一次變更還是可能出錯。C 已經自動化,但每個 Region 一份 runbook,三份要各自維護並依序執行,維運負擔高於一份範本部署到所有 Region。

5. C

跨 3 個 AZ 的 Auto Scaling group 掛在 ALB 後方,任何一個 AZ 故障,其他 AZ 的 instance 仍然繼續服務,Auto Scaling 也會補上新的 instance。target tracking policy 依 CPU 使用率自動增減數量:平常只跑少量 instance,促銷時再擴展,不必依尖峰預先準備容量。網站不保存使用者狀態,所以可以直接水平擴展。

A 是垂直擴展,仍然是單一 instance、單一 AZ;recover 只處理底層硬體故障,整個 AZ 故障時無法恢復,規格也還是依尖峰挑選。B 的兩台 instance 在同一個 AZ,AZ 故障時一起停擺;cross-zone load balancing 只是讓流量跨 AZ 平均分配,兩台都在同一個 AZ 時沒有作用。D 能撐過 AZ 故障,但 standby 平常閒置、規格依尖峰準備,切換也受 DNS 快取影響,可用性與容量規劃都不如跨 AZ 的 Auto Scaling group。


上一篇
Day 26 - 成本優化 Cost Explorer 與 Budgets:成本分析、Savings Plans 與預算警示
下一篇
Day 28 - 架構框架與應考策略 情境題拆解:易混淆服務比一比
系列文
30 天的 SAA 學習筆記 共 29 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言