

# 效能達成效率
<a name="performance-efficiency"></a>

 效能達成效率要件包括有效率地使用運算資源以滿足系統需求，並隨著需求變更與技術發展來保持該效率需求的能力。 

 效能達成效率支柱概述了設計原則、最佳實務和相關問題。您可以在[效能達成效率支柱白皮書](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp)中找到實作的指引。

**Topics**
+ [設計原則](perf-dp.md)
+ [定義](perf-def.md)
+ [最佳實務](perf-bp.md)
+ [資源](perf-resources.md)

# 設計原則
<a name="perf-dp"></a>

 雲端有五個設計原則來維持效能達成效率： 
+  **讓進階技術變得更普及**：將複雜的任務委派給雲端廠商，讓團隊更順暢地實作進階技術。與其要求 IT 團隊了解新技術的託管和執行方式，不如考慮使用技術即服務。例如，NoSQL 資料庫、媒體轉碼和機器學習均為需要專業知識的技術。在雲端，這些技術成為團隊可以使用的服務，讓團隊能夠專注於產品開發，而非資源佈建及管理。 
+  **在幾分鐘內將業務擴展到全球**：在全球多個 AWS 區域部署工作負載，讓您以最低的成本，為客戶提供更低延遲、更優質的體驗。 
+  **使用無伺服器架構**：採用無伺服器架構，您便無需執行和維護實體伺服器來完成傳統運算活動。例如，無伺服器儲存服務可以充當靜態網站 (因此無需 Web 伺服器)，而事件服務可以為您託管程式碼。如此一來，即可減輕管理實體伺服器的營運負擔，而且由於這些受管服務是在雲端規模上運行，因此還可以降低交易成本。 
+  **提高試驗頻率**：藉助虛擬及可自動化的資源，您可以使用不同類型的執行個體、儲存設備或組態，迅速完成比較測試。 
+  **考慮機械同感作用**：了解雲端服務的使用方式，並一律使用符合工作負載目標的技術方法。例如，在您選擇資料庫或儲存方法時，請考慮資料存取模式。 

# 定義
<a name="perf-def"></a>

 維持雲端效能達成效率的最佳實務有五個領域： 
+  **選擇架構** 
+  **運算與硬體** 
+  **資料管理** 
+  **網路與內容交付** 
+  **程序和文化** 

 採取資料驅動的方法來建置高效能架構。從高階設計到選取和設定資源類型，收集架構各方面的資料。 

 定期審查您的選擇，以確實充分利用不斷演進的 AWS 雲端。監控可確保您能察覺預期效能發生的任何偏差情形。在架構中做出權衡以改進效能，例如使用壓縮或快取，或放寬一致性要求。 

# 最佳實務
<a name="perf-bp"></a>

**Topics**
+ [選擇架構](perf-arch.md)
+ [運算與硬體](perf-compute.md)
+ [資料管理](perf-data.md)
+ [網路與內容交付](perf-networking.md)
+ [程序和文化](perf-process.md)

# 選擇架構
<a name="perf-arch"></a>

 適用於特定工作負載的最佳解決方案各不相同，而解決方案通常會結合多種方法。Well-Architected 工作負載會使用多種解決方案，並採用不同的功能以提升效能。 

 AWS 資源有多種類型和組態，可讓您更輕鬆地找到最符合需求的方法。您還可以發現使用內部部署基礎設施不易實現的選項。例如，Amazon DynamoDB 這種受管服務，可提供全受管的 NoSQL 資料庫及任何規模下的十毫秒內延遲時間。 

 下列問題著重於效能達成效率方面的這些考量。(如需效能達成效率問題和最佳實務的清單，請參閱 [Appendix](a-performance-efficiency.md)。)


| PERF 1:  How do you select appropriate cloud resources and architecture patterns for your workload? | 
| --- | 
|  Often, multiple approaches are required for more effective performance across a workload. Well-Architected systems use multiple solutions and features to improve performance.  | 

# 運算與硬體
<a name="perf-compute"></a>

 特定工作負載的最佳運算選擇會根據應用程式設計、使用模式和組態設定而有所不同。架構會針對不同元件使用不同運算選擇，並採用不同功能以提升效能。若選錯運算資源，可能使架構的效能達成效率降低。 

 在 AWS 中，提供了三種運算形式：執行個體、容器和函數。 
+  **執行個體**是虛擬化伺服器，可讓您使用按鈕或 API 呼叫來變更其功能。由於在雲端中，資源決策不是固定的，您可以使用不同的伺服器類型進行試驗。在 AWS 上，這些虛擬伺服器執行個體具有不同系列和大小，並且可提供眾多不同功能，包括固態硬碟 (SSD) 和圖形處理單元 (GPU)。
+  **容器**是將作業系統虛擬化的一種方法，可讓您在隔離資源的程序中執行應用程式及其相依性。AWS Fargate 是容器的無伺服器運算，或者，如果您需要控制運算環境的安裝、組態和管理，則可使用 Amazon EC2。您也可以從多個容器協調平台中選擇：Amazon Elastic Container Service (ECS) 或 Amazon Elastic Kubernetes Service (EKS)。 
+  **函數**可從您想套用的程式碼中將執行環境抽象化。例如，AWS Lambda 可讓您不需執行執行個體就能執行程式碼。

 下列問題著重於效能達成效率方面的這些考量。


| PERF 2:  How do you select and use compute resources in your workload? | 
| --- | 
| The more efficient compute solution for a workload varies based on application design, usage patterns, and configuration settings. Architectures can use different compute solutions for various components and turn on different features to improve performance. Selecting the wrong compute solution for an architecture can lead to lower performance efficiency. | 

# 資料管理
<a name="perf-data"></a>

 特定系統的最佳資料管理解決方案會根據資料類型 (區塊、檔案或物件)、存取模式 (隨機或循序)、所需輸送量、存取頻率 (線上、離線、封存)、更新頻率 (WORM、動態) 及可用性和耐用性限制而有所不同。Well-Architected 工作負載會使用專用資料存放區，這些存放區採用不同的功能以提升效能。 

 在 AWS 中，儲存有三種形式：物件、區塊和檔案： 
+  **物件儲存**提供可擴展且耐用的平台，以便使用者從任何網際網路位置存取資料，用於使用者產生的內容、作用中封存、無伺服器運算、大數據儲存或備份與復原。Amazon Simple Storage Service (Amazon S3) 是一種物件儲存服務，可提供領先業界的可擴展性、資料可用性、安全性和效能。Amazon S3 的設計可提供 99.999999999% (11 個 9) 的耐久性，並為全球公司存放數百萬個應用程式資料。
+  **區塊儲存**可為每個虛擬主機提供高可用性、一致性、低延遲的區塊儲存，而且類似於直接連結存放裝置 (DAS) 或存放區域網路 (SAN)。Amazon Elastic Block Store (Amazon EBS) 是專為需要 EC2 執行個體存取持久性儲存的工作負載所設計，可協助您以適當的儲存容量、效能和成本來調整應用程式。
+  **檔案儲存**可讓您跨多個系統存取共用檔案系統。如 Amazon Elastic File System (Amazon EFS) 這類檔案儲存解決方案非常適合大型內容儲存庫、開發環境、媒體存放區或使用者主目錄等使用案例。Amazon FSx 可讓您以高效率且經濟實惠的方式啟動和執行熱門的檔案系統，因此您可以利用廣泛使用的開放原始碼和商業授權檔案系統的豐富功能集和快速效能。

 下列問題著重於效能達成效率方面的這些考量。


| PERF 3:  How do you store, manage, and access data in your workload? | 
| --- | 
|  The more efficient storage solution for a system varies based on the kind of access operation (block, file, or object), patterns of access (random or sequential), required throughput, frequency of access (online, offline, archival), frequency of update (WORM, dynamic), and availability and durability constraints. Well-architected systems use multiple storage solutions and turn on different features to improve performance and use resources efficiently.  | 

# 網路與內容交付
<a name="perf-networking"></a>

 工作負載的最佳聯網解決方案會根據延遲、輸送量需求、抖動和頻寬而有所不同。實體限制 (例如使用者或內部部署資源) 會決定位置選項。這些限制可能隨著邊緣節點或資源位置而有所差異。 

 在 AWS 上，聯網以虛擬化方式存在，並提供多種不同的類型和組態。如此就能更容易滿足您的聯網需求。AWS 提供了多種產品功能 (例如，增強型聯網、經 Amazon EC2 聯網最佳化的執行個體、Amazon S3 Transfer Acceleration 和動態 Amazon CloudFront)，可最佳化網路流量。AWS 還提供了聯網功能 (例如，Amazon Route 53 延遲路由、Amazon VPC 端點、AWS Direct Connect 和 AWS Global Accelerator)，可減少網路距離或抖動。 

 下列問題著重於效能達成效率方面的這些考量。


| PERF 4:  How do you select and configure networking resources in your workload? | 
| --- | 
|  This question includes guidance and best practices to design, configure, and operate efficient networking and content delivery solutions in the cloud.  | 

# 程序和文化
<a name="perf-process"></a>

 在架構工作負載時，您可以採取一些原則和實務，來更有效率地執行高效能雲端工作負載。為了培養高效能雲端工作負載的文化，請考慮下列重要原則和實務。 

 打造這類文化時，請考慮以下重要原則： 
+  **基礎設施即程式碼**：使用 AWS CloudFormation 範本等方法將您的基礎設施定義為程式碼。使用範本可讓您將基礎設施與應用程式程式碼和組態一起置於原始檔控制中。這可讓您在基礎設施中套用開發軟體時所使用的相同做法，進而快速進行迭代。 
+  **部署管道**：使用持續整合/持續部署 (CI/CD) 管道 (例如，原始程式碼儲存庫、建置系統、部署和測試自動化) 來部署您的基礎設施。這樣您就可以在反覆執行的過程中，採用可重複、一致且低成本的方式進行部署。 
+  **定義明確的指標**：設定並監控指標以擷取關鍵績效指標 (KPI)。我們建議您同時使用技術和業務指標。對於網站或行動應用程式，關鍵指標是擷取第一個位元組或轉譯的時間。其他一般適用的指標包括執行緒計數、垃圾回收率和等待狀態。業務指標 (例如每個請求的彙總累計成本) 會提示您降低成本的方法。仔細考慮您計劃如何解釋指標。例如，您可以選擇最大值或第 99 個百分位數，而非平均值。 
+  **自動執行效能測試**：在部署程序中，成功通過快速執行測試之後，就會自動開始進行效能測試。自動化應建立一個新的環境，設定如測試資料之類的初始條件，然後執行一系列基準測試和負載測試。這些測試的結果應與組建版本綁定，方便您追蹤長時間的效能變化。對於長期執行的測試，您可以讓管道的這個部分與組建版本的其餘部分不同步。或者，您可以使用 Amazon EC2 Spot 執行個體在夜間執行效能測試。 
+  **負載產生**：您應建立一系列的測試指令碼來複寫綜合性或預錄的使用者旅程。這些指令碼應該以冪等及非耦合的形式呈現，而且您可能需要納入*預熱型*指令碼才能產生有效的結果。您的測試指令碼應盡可能地複寫生產環境中的使用行為。您可以使用軟體或軟體即服務 (SaaS) 解決方案來產生負載。您可以考慮使用 [AWS Marketplace](https://aws.amazon.com/marketplace/) 解決方案和 [Spot 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html) — 它們會是負載產生的經濟實惠方式。 
+  **效能可見度**：關鍵指標應對您的團隊可見，尤其是針對每個組建版本的指標。這可讓您查看隨時間變化出現的任何顯著的正面或負面趨勢。您也應顯示錯誤或例外狀況數量的指標，以確保您測試的是可運作的系統。 
+ **視覺化**：使用視覺化技術可以清楚指出何處出現效能問題、熱點、等待狀態或較低的利用率。在架構圖上重疊效能指標 — 呼叫圖表或程式碼有助於快速識別問題。 
+  **定期審查程序**：架構效能不佳通常是效能審查程序不存在或中斷的結果。如果您的架構效能不佳，則實作效能審查程序可讓您不斷反覆進行改善。 
+  **持續最佳化**：培養文化以持續最佳化雲端工作負載效能達成效率。 

 下列問題著重於效能達成效率方面的這些考量。


| PERF 5:  What process do you use to support more performance efficiency for your workload?  | 
| --- | 
|  When architecting workloads, there are principles and practices that you can adopt to help you better run efficient high-performing cloud workloads. To adopt a culture that fosters performance efficiency of cloud workloads, consider these key principles and practices.  | 

# 資源
<a name="perf-resources"></a>

 請參閱以下資源，進一步了解我們的效能達成效率最佳實務。

## 文件
<a name="perf-doc"></a>
+  [Amazon S3 效能最佳化](https://docs.aws.amazon.com/AmazonS3/latest/dev/PerformanceOptimization.html?ref=wellarchitected-wp) 
+  [Amazon EBS 磁碟區效能](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSPerformance.html?ref=wellarchitected-wp) 

## 白皮書
<a name="perf-wp"></a>
+  [效能達成效率支柱](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp) 

## 影片
<a name="perf-video"></a>
+  [AWS re:Invent 2019：Amazon EC2 基礎 (CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019：領導者會議： 聯盟的儲存狀態 (STG201-L)](https://www.youtube.com/watch?v=39vAsGi6eEI&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019：領導者會議：AWS 專用資料庫 (DAT209-L)](https://www.youtube.com/watch?v=q81TVuV5u28&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019：與 AWS 和混合 AWS 網路架構的連線 (NET317-R1)](https://www.youtube.com/watch?v=eqW6CPb58gs&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019：支援下一代 Amazon EC2：深入探討 Nitro 系統 (CMP303-R2)](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019：擴充至首個 1,000 萬名使用者 (ARC211-R)](https://www.youtube.com/watch?v=kKjm4ehYiMs&ref=wellarchitected-wp) 