

# 選擇
<a name="perf-sel"></a>

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

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

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


| PERF 1：您如何選擇效能最佳的架構？ | 
| --- | 
|  欲讓工作負載達到最佳效能通常需要採用多種方法。Well-Architected 系統會使用多重解決方案和功能以提升效能。 | 

 使用資料驅動的方法，為您的架構選取模式和實作，並達成具有成本效益的解決方案。AWS 解決方案架構師、AWS 參考架構和 AWS 合作夥伴網路 (APN) 合作夥伴，可根據產業知識協助您選取架構，不過必須使用透過基準化分析或負載測試獲得的資料，為架構進行優化。 

 您的架構可能會結合許多不同的架構方法 (例如，事件驅動、ETL 或管道)。實作架構將使用專屬於您的架構效能優化的 AWS 服務。在以下各節中，我們將討論您應該考慮的四大主要資源類型 (運算、儲存、資料庫和網路)。 

# 運算
<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：您如何選取運算解決方案？ | 
| --- | 
| 工作負載的最佳運算解決方案會根據應用程式設計、使用模式和組態設定而有所不同。架構可針對不同元件使用不同運算解決方案並啟用不同功能，以提升效能。為架構選錯運算解決方案，可能使效能達成效率降低。 | 

 在建立使用運算的架構時，您應利用可用的彈性機制來確保您有足夠的容量，可在需求變更時維持效能。

# 儲存
<a name="perf-storage"></a>

 雲端儲存是雲端運算中很重要的元件之一，儲存了工作負載所使用的資訊。雲端儲存通常比傳統內部部署的儲存系統更為可靠、可擴展且安全。為您的工作負載選擇物件、區塊和檔案儲存服務，以及雲端資料遷移選項。

 在 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 (EFS) 這類檔案儲存解決方案非常適合大型內容儲存庫、開發環境、媒體存放區或使用者主目錄等使用案例。Amazon FSx 可讓您以輕鬆且經濟實惠的方式啟動和執行熱門的檔案系統，因此您可以利用廣泛使用的開放原始碼和商業授權檔案系統的豐富功能集和快速效能。

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


| PERF 3：您如何選取儲存解決方案？ | 
| --- | 
|  系統的最佳儲存解決方案會根據存取方法類型 (區塊、檔案或物件)、存取模式 (隨機或連續)、所需傳輸量、存取頻率 (線上、離線、封存)、更新頻率 (WORM、動態) 及可用性和耐用性限制而有所不同。Well-Architected 系統使用多重儲存解決方案，並啟用不同功能以提升效能並有效使用資源。  | 

 當您要選取儲存解決方案時，務必確保其符合您的存取模式，以達到您想要的效能。

# 資料庫
<a name="perf-db"></a>

 雲端提供專門打造的資料庫服務，可解決工作負載呈現的不同問題。您可以從許多專門打造的資料庫引擎中選擇，包括關聯式、鍵值、文件、記憶體內、圖形、時間序列和總帳資料庫。透過挑選最佳資料庫來解決特定問題 (或一組問題)，您可以擺脫限制性的「一體適用」單體資料庫，並專注在建置應用程式以滿足客戶的效能需求。

 在 AWS 中，您可以從多個專門打造的資料庫引擎中選擇，包括關聯式、鍵值、文件、記憶體內、圖形、時間序列和總帳資料庫。使用 AWS 資料庫，您無須擔心伺服器佈建、修補、設定、組態、備份或復原等資料庫管理任務。AWS 會持續監控您的叢集，透過自我修復的儲存和自動擴展來保持工作負載正常啟動和執行，讓您能專注於開發價值較高的應用程式。

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


| PERF 4：您如何選擇資料庫解決方案？ | 
| --- | 
|  系統的最佳資料庫解決方案可能會依可用性、一致性、分割容錯度、延遲、耐用性、可擴展性及查詢能力的需求而有所不同。許多系統針對不同子系統使用不同資料庫解決方案，並啟用不同功能以提升效能。為系統選錯資料庫解決方案和功能，可能使效能達成效率降低。 | 

 工作負載的資料庫方法對效能達成效率有重大影響。它通常是根據組織預設而非透過資料驅動的方法所選擇的區域。與儲存一樣，務必要考慮工作負載的存取模式，同時也務必要考慮其他非資料庫解決方案是否可以更有效地解決問題 (例如使用圖形、時間序列或記憶體中的儲存資料庫)。

# 網路
<a name="perf-network"></a>

 由於網路位於所有工作負載元件之間，因此對工作負載效能和行為都有極大的正面和負面影響。也有高度依賴網路效能的工作負載，例如高效能運算 (HPC)，其中深度了解網路對於提升叢集效能非常重要。您必須判斷頻寬、延遲、抖動和輸送量的工作負載需求。

 在 AWS 上，聯網是虛擬化的，並提供多種不同的類型和組態。這讓您可以更輕鬆地將聯網方法與需求進行匹配。AWS 提供了多種產品功能 (例如，增強型聯網、經 Amazon EBS 優化的執行個體、Amazon S3 Transfer Acceleration 和動態 Amazon CloudFront)，可對網路流量進行優化。AWS 還提供了聯網功能 (例如，Amazon Route 53 延遲路由、Amazon VPC 端點、AWS Direct Connect 和 AWS Global Accelerator)，可減少網路距離或抖動。

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


| PERF 5：您如何設定聯網解決方案？ | 
| --- | 
|  工作負載的最佳網路解決方案會根據延遲、輸送量需求、抖動和頻寬而有所不同。實體限制 (例如使用者或內部部署資源) 會決定位置選項。這些限制條件可以隨著節點或資源置放而位移。 | 

 部署網路時，您必須考慮位置。您可以選擇將資源置放在靠近資源用以減少距離的位置。隨著工作負載的演進，使用聯網指標變更聯網組態。透過利用區域、置放群組和邊緣服務，您可以顯著提高效能。雲端型網路可以快速重建或修改，因此隨著時間演進您的網路架構是維持效能達成效率的必要條件。