

# AWS Well-Architected Framework
<a name="welcome"></a>

發布日期：**2024 年 11 月 6 日** ([文件修訂](document-revisions.md))

AWS Well-Architected Framework 可協助您了解在 AWS 上建置系統時所做決策的優缺點。透過使用架構，您將了解在雲端設計和操作可靠、安全、有效率、經濟實惠且永續的系統的架構最佳實務。

## 簡介
<a name="introduction"></a>

 AWS Well-Architected Framework 可協助您了解在 AWS 上建置系統時所做決策的優缺點。透過此架構，您將了解架構的最佳實務，以便在 AWS 雲端 設計和操作安全、可靠、有效率、經濟實惠且永續的工作負載。其可讓您根據最佳實務以一致的方式來衡量架構，並識別需要改善的區域。審核架構的程序是與架構決策相關的建設性討論，而不是稽核機制。我們相信，擁有架構良好的系統可大幅提高企業成功的可能性。

 AWS 解決方案架構師對於橫跨廣泛的各種垂直業務和使用案例建構解決方案，已累積多年經驗。我們已協助設計及審查數千套客戶在 AWS 上的架構。從這些經驗當中，我們已識別在雲端建構系統的最佳實務和核心策略。

 AWS Well-Architected Framework 記錄一組基本問題，有助於您了解特定架構是否妥善符合雲端最佳實務的條件。該架構提供一致的方針，可依照您預計自現代雲端系統可獲得的品質來評估系統，並能得知欲達到此等品質會需要的修補措施。AWS 持續在演進當中，我們也不斷地從與客戶一同工作之中學到更多，因此架構完善的定義會始終精進下去。

 本架構適用於擔任技術職務的人員，例如技術長 (CTO)、架構師、開發人員和營運團隊成員。內容說明設計及操作雲端工作負載時運用的 AWS 最佳實務和策略，並提供連結，可取得進一步實作的詳細資訊，和架構模式。如需詳細資訊，請參閱 [AWS Well-Architected 首頁](https://aws.amazon.com/architecture/well-architected/?ref=wellarchitected-wp)。

 AWS 也免費提供您審查工作負載的服務。[AWS Well-Architected Tool](https://aws.amazon.com/well-architected-tool/?ref=wellarchitected-wp) (AWS WA Tool) 是雲端服務，可為您提供一致的程序以審查和測量使用 AWS Well-Architected Framework 的架構。AWS WA Tool 提供的建議可讓工作負載更可靠、安全、有效率且經濟實惠。

 為協助您套用最佳實務，我們已建立 [AWS Well-Architected 實驗室](https://www.wellarchitectedlabs.com/?ref=wellarchitected-wp)，它可為您提供程式碼與文件儲存庫，給您實作最佳實務的實際經驗。我們也與精選 AWS 合作夥伴網路 (APN) 合作夥伴組成團隊並肩合作，而這些合作夥伴是 [AWS Well-Architected 合作夥伴計畫](https://aws.amazon.com/architecture/well-architected/partners/?ref=wellarchitected-wp)的成員。這些 AWS 合作夥伴對 AWS 擁有深入的知識，能協助您審查和改進工作負載。

# 定義
<a name="definitions"></a>

 AWS 的專家每一天都在輔助客戶進行系統架構，善用雲端的最佳實務。當您的設計演進時，有我們一同進行架構上的權衡。您將這些系統部署至即時環境後，我們可得知這些系統的效能狀況，以及這些權衡形成的後果。

 我們便是基於得到的專業知識建立起 AWS Well-Architected Framework，其提供一套一致的最佳實務，供客戶和合作夥伴評估架構；並提供一份問題，您可用來評估架構與 AWS 最佳實務的吻合程度。

 AWS Well-Architected Framework 以六個支柱為基礎：卓越營運、安全性、可靠性、效能達成效率、成本最佳化和永續性。

 **表 1. AWS Well-Architected Framework 的支柱** 


|  **\$1.Name**  |  **描述**  | 
| --- | --- | 
|  卓越營運  |  可有效支援開發和執行工作負載、深入了解其營運狀況，以及持續改善支援流程和程序以產生商業價值的能力。 | 
|  安全  | 安全支柱描述如何利用雲端技術來保護資料、系統和資產，從而改善您的安全狀態。 | 
|  可靠性  |  可靠性支柱包括工作負載如預期般正確、一致地執行其預期功能的能力。包括在整個生命週期中執行及測試工作負載。本白皮書深入說明在 AWS 上實作可靠工作負載的相關事項，提供最佳實務指引。 | 
|  效能效率  |  能夠有效率地使用運算資源，以滿足系統需求，並隨著需求變更與技術發展來保持該效率需求。 | 
|  成本最佳化  |  能夠以最低的價格執行系統來提供商業價值。 | 
|  永續性  |  能夠透過獲取所佈建資源的最大效益，並將所需的總資源數降至最低，而減少工作負載所有組件的能源消耗、提高效率，最終持續改善永續性影響。 | 

 在 AWS Well-Architected Framework 中，我們會使用下列術語：
+  **元件**：程式碼、組態及 AWS 資源，這些會一起交付以滿足需求。一個元件往往是技術擁有的單元，並自其他元件所解偶。
+  術語**工作負載**是指一組一起提供業務價值的元件。工作負載通常是商業和技術領導人溝通所談及的最細節的內容。
+  我們心目中的**架構**是指工作負載之中元件一同運作的方式。元件通訊與互動的方式往往成為架構圖的焦點。
+  **里程碑**標示架構於產品生命週期之中演進的重要改變 (設計、實作、測試、上線，投入生產)。
+  在組織內，**技術組合**是業務運作所需工作負載的集合。
+ **工作量**是將任務針對實作所需的時間、工作和複雜性進行分類。每個組織都需要考慮團隊的大小和專業知識，以及工作負載的複雜性，以取得其他內容，將組織的工作量適當地分類。
  + **高：**工作可能需要數週或數個月。這可以分成多個案例、版本和任務。
  + **中：**工作可能需要數天或數週。這可以分成多個版本和任務。
  + **低：**工作可能需要數小時或數天。這可以分成多個任務。

 建立工作負載的架構時，您可依照業務環境，在各支柱之間作出權衡。這些業務決策可以讓您了解工程設計的優先順序。您可以最佳化以開發環境中的可靠性作為代價改善永續性影響並降低成本，或者針對關鍵任務解決方案，以較高成本和永續性影響達到可靠性的最佳化。在電子商務解決方案中，效能能影響營收和客戶購買的傾向。安全和卓越營運通常不會因其他要件而被犧牲。

# 論架構
<a name="on-architecture"></a>

 在內部部署環境中，客戶經常具備負責技術架構的集中團隊 (而技術架構將疊覆在其他產品或功能團隊上) 以確認其過程遵照最佳實務。技術架構團隊通常包含一組角色，例如技術架構師 (基礎設施)、解決方案架構師 (軟體)、資料架構師、聯網架構師和安全架構師。這些團隊經常使用 [TOGAF](https://en.wikipedia.org/wiki/The_Open_Group_Architecture_Framework) 或 [Zachman 框架](https://zachman-feac.com/zachman/about-the-zachman-framework)作為企業架構能力的部分。

 在 AWS 上，我們偏好將能力分散至團隊中，不以集中團隊具備該項能力。選擇將決策權分散有其風險存在，例如為了確認團隊符合內部標準之際。我們以兩種方式降低這類風險。首先，我們*演練* (做事方式、程序、標準，及可接受的規範)，目的是讓各個團隊具備該項能力，並且聘用專家，確認該團隊提高所需符合標準的標竿。第二，我們實作*機制*來實施自動化檢查，確認其符合標準。

****  
 Jeff Bezos 說道「立意良好是不夠的，需要以良好的機制才能有所實現」。

這相當於將人為的盡力取代為機制，其能夠檢查是否遵循規則或程序 (經常為自動化形式)。這種分散式的作法受到 [Amazon 領導方針](https://www.amazon.jobs/en/principles?ref=wellarchitected-wp)的支援，遍及所有角色培養一種*返向工作*從客戶需求出發的文化。返向工作是我們創新程序的基礎部分。我們從客戶及其期望著手，根據之定義並主導我們的工作方向。以客戶為尊的團隊會因應客戶的需要建置產品。

 對架構而言，這表示我們期望每個團隊皆有能力建立架構，並且遵照最佳實務。為協助新團隊獲得這些能力，或讓現有團隊提高標竿，我們促成與首席工程師的虛擬社群聯繫，委請審查團隊的設計，並協助團隊了解有哪些 AWS 最佳實務。首席工程設計社群使得最佳實務成為可見並可取得。例如，他們的一種作法是藉由午餐會報，專講將最佳實務套用至實際範例。這些會報經過錄製，可作為新進團隊成員的到任參考資料。

 AWS 最佳實務源自我們以網際網路規模執行數千套系統所累積的經驗。我們偏好以資料定義最佳實務，不過也會起用主題專家，例如首席工程師進行訂定。首席工程師會在看見新的最佳實務出現時，採取社群方式進行工作，以確認團隊會遵守這些實務。假以時日，這些最佳實務會正式列入我們內部的審查程序，同時成為落實合規的機制。Well-Architected 架構是我們內部審查程序面向客戶的實作版，透過我們遍及領域的角色例如「解決方案架構」和內部工程設計團隊，將首席工程設計思維予以編撰。Well-Architected 架構是可擴展的機制，讓您能夠善用這些學習成果帶來的優勢。

 依循這種對於架構的責任採取分散形式的首席工程設計社群作法，我們相信 Well-Architected 企業架構能因應客戶的需要而成形。技術領導者 (例如技術長或開發經理) 遍及您所有工作負載執行 Well-Architected 審查，讓您更了解技術組合所具的風險。採行此方式之下，您可看出遍及團隊的主題，您的組織能以機制、培訓或午餐會報妥善顧及，如此一來首席工程師可向多個團隊分享對於特定領域的想法。

# 一般設計原則
<a name="general-design-principles"></a>

 Well-Architected 架構會確定一組一般設計原則，以促進在雲端進行良好的設計︰ 
+  **停止猜測您的容量需求**：如果您在部署工作負載時做出糟糕的容量決定，可能最後變成坐擁昂貴的閒置資源，或處理容量有限的效能影響。而利用雲端運算，這些問題都會消失。您可依照需要使用大小不拘的容量，並自動擴展和縮減。
+  **生產規模測試系統**：在雲端，您可隨需建立生產規模的測試環境、完成測試，再將資源除役。因為您只為執行中的測試環境付費，所以能以與內部部署測試相較之下相當微小比例的成本來模擬即時環境。
+  **考量架構試驗的自動化**：自動化可讓您用低成本建立並複製工作負載，避免產生人工開支。您可追蹤自動化的變更，稽核其影響，並可視需要還原為先前參數。
+  **考量演進的架構**：在傳統環境中，架構上的決策往往實作成為靜態的一次性活動，其生命週期當中只有系統的少數主要版本。隨著業務及其環境持續改變，這些初始決定可能妨礙系統，無法符合不斷改變的業務要求。在雲端，按需自動化與測試的能力，可降低因設計變更而形成衝擊的風險。如此可讓系統隨時間演進，因此企業能以標準實務的形式享有創新的優勢。
+  **使用資料來驅動架構**：在雲端，您可收集架構上的選擇對於工作負載的行為有何影響的資料。如此可讓您為如何提升工作負載，做出以事實為根據的決策。您的雲端基礎設施為程式碼，因此可隨時間利用該資料得知基礎設施的適當選擇及提升。
+  **透過演練日進行改進**：為測試您的架構與程序的執行情況，可定期排定演練日，以模擬生產中的活動。如此可協助您了解何處有改善空間，並能協助發展組織處理活動的經驗。