

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

效能達成效率支柱包括有效率地使用運算資源以滿足系統需求，並隨著需求變更與技術發展來保持該效率需求的能力。您可以在下列白皮書中找到規範指引： [效能達成效率支柱白皮書](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp)。

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

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

**Topics**
+ [PERF 1.如何為工作負載選取合適的雲端資源和架構？](perf-01.md)

# PERF 1.如何為工作負載選取合適的雲端資源和架構？
<a name="perf-01"></a>

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

**Topics**
+ [PERF01-BP01 了解可用的雲端服務和特徵](perf_architecture_understand_cloud_services_and_features.md)
+ [PERF01-BP02 使用雲端供應商或適當合作夥伴提供的指引，了解架構模式和最佳實務](perf_architecture_guidance_architecture_patterns_best_practices.md)
+ [PERF01-BP03 將成本因素納入架構決策](perf_architecture_factor_cost_into_architectural_decisions.md)
+ [PERF01-BP04 評估權衡如何影響客戶和架構效率](perf_architecture_evaluate_trade_offs.md)
+ [PERF01-BP05 使用政策和參考架構](perf_architecture_use_policies_and_reference_architectures.md)
+ [PERF01-BP06 使用基準化分析來推動架構決策](perf_architecture_use_benchmarking.md)
+ [PERF01-BP07 針對架構選擇使用資料驅動的方法](perf_architecture_use_data_driven_approach.md)

# PERF01-BP01 了解可用的雲端服務和特徵
<a name="perf_architecture_understand_cloud_services_and_features"></a>

 持續了解並探索可用的服務和組態，有助您做出更完善的架構決策，並提升工作負載架構的效能效率。 

 **常見的反模式：** 
+  您可以使用雲端作為並置資料中心。 
+  遷移到雲端後，您沒有現代化應用程式。 
+  對於需要保留的所有項目，您只使用一種儲存類型。 
+  您使用的執行個體類型與目前標準最相符，但大於需求。 
+  您會部署和管理可做為受管服務的技術。 

 **建立此最佳實務的優勢：** 透過考慮新的服務和組態，您可以大幅改善效能、降低成本，並最佳化維護工作負載所需的工作量。這麼做也可幫助您縮短具有雲端功能之產品的價值實現時間。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 AWS 持續推出可改善效能並降低雲端工作負載成本的新服務和特徵。即時掌握這些新服務和特徵的資訊，對於在雲端中維持效能效用至關重要。現代化工作負載架構也可有助您加速生產力、推動創新，並發掘更多成長機會。 

### 實作步驟
<a name="implementation-steps"></a>
+  清查工作負載軟體和架構以存放相關服務。決定要深入了解的產品類別。 
+  探索 AWS 供應項目，以識別並了解相關服務和組態選項，這些選項可協助您改善效能，並降低成本和操作複雜性。 
  +  [AWS 有哪些最新消息？](https://aws.amazon.com/new/) 
  +  [AWS 部落格](https://aws.amazon.com/blogs/) 
  +  [AWS Skill Builder](https://skillbuilder.aws/) 
  +  [AWS 活動和研討會](https://aws.amazon.com/events/) 
  +  [AWS 培訓 和認證](https://www.aws.training/) 
  +  [AWS Youtube 頻道](https://www.youtube.com/channel/UCd6MoB9NC6uYN2grvUNT-Zg) 
  +  [AWS 研討會](https://workshops.aws/) 
  +  [AWS 社群](https://aws.amazon.com/events/asean/community-and-events/) 
+  使用沙盒 (非生產) 環境來學習和試驗新服務，而不會產生額外成本。 

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

 **相關文件：** 
+  [AWS 架構中心](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 解決方案程式庫](https://aws.amazon.com/solutions/) 
+  [AWS 知識中心](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [建置 AWS 現代化應用程式](https://aws.amazon.com/modern-apps/) 

 **相關影片：** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **相關範例：** 
+  [AWS 範例](https://github.com/aws-samples) 
+  [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP02 使用雲端供應商或適當合作夥伴提供的指引，了解架構模式和最佳實務
<a name="perf_architecture_guidance_architecture_patterns_best_practices"></a>

 憑藉文件、解決方案架構師、專業服務或適當的合作夥伴等雲端公司資源，來引導您做出架構決策。這些資源可協助檢閱和改善架構，以實現最佳效能。 

 **常見的反模式：** 
+  您使用 AWS 作為常見的雲端供應商。 
+  您使用 AWS 服務的方式與其設計宗旨不符。 
+  您遵循所有指引，但未考量自身的業務環境。 

 **建立此最佳實務的優勢：** 運用雲端供應商或適當合作夥伴的指引，有助您選擇適合工作負載的正確架構，並對自己的決策充滿信心。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 AWS 提供廣泛的指引、文件和資源，有助您建置和管理有效率的雲端工作負載。AWS 文件提供程式碼範例、教學課程和詳細的服務說明。除了文件外，AWS 提供培訓和認證計畫、解決方案架構師和專業服務，有助客戶探索雲端服務的不同層面，並在 AWS 上實作有效的雲端架構。 

 利用這些資源，深入了解寶貴的知識和最佳實務、節省時間，並運用 AWS 雲端 取得更好的成果。 

### 實作步驟
<a name="implementation-steps"></a>
+  檢閱 AWS 文件和指引，並遵循最佳實務。這些資源可協助您有效選擇和設定服務，並取得更好的效能。 
  +  [AWS 文件](https://docs.aws.amazon.com/) (如使用者指南和白皮書) 
  +  [AWS 部落格](https://aws.amazon.com/blogs/) 
  +  [AWS 培訓 和認證](https://www.aws.training/) 
  +  [AWS Youtube 頻道](https://www.youtube.com/channel/UCd6MoB9NC6uYN2grvUNT-Zg) 
+  參加 AWS 合作夥伴活動 (例如 AWS 全球高峰會、AWS re:Invent、使用者群組和研討會)，向 AWS 專家學習使用 AWS 服務的最佳實務。 
  +  [AWS 活動和研討會](https://aws.amazon.com/events/) 
  +  [AWS 研討會](https://workshops.aws/) 
  +  [AWS 社群](https://aws.amazon.com/events/asean/community-and-events/) 
+  當您需要其他指引或產品資訊時，請聯絡 AWS 尋求協助。AWS 解決方案架構師和 [AWS 專業服務](https://aws.amazon.com/professional-services/) 會為實作解決方案提供指導 [AWS 合作夥伴](https://aws.amazon.com/partners/) 會提供 AWS 專業知識，協助您提升業務的靈活性和創新性。 
+  使用 [支援](https://aws.amazon.com/contact-us/) 如果您需要技術支援才能有效使用服務。 [我們的支援計劃](https://aws.amazon.com/premiumsupport/plans/) 旨在為您提供適當的工具組合和專業知識，以便您在最佳化效能、管理風險並控制成本的同時，透過 AWS 取得成功。 

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

 **相關文件：** 
+  [AWS 架構中心](https://aws.amazon.com/architecture/) 
+  [AWS 解決方案程式庫](https://aws.amazon.com/solutions/) 
+  [AWS 知識中心](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [AWS 企業支援](https://aws.amazon.com/premiumsupport/plans/enterprise/) 

 **相關影片：** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **相關範例：** 
+  [AWS 範例](https://github.com/aws-samples) 
+  [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP03 將成本因素納入架構決策
<a name="perf_architecture_factor_cost_into_architectural_decisions"></a>

 將成本因素納入架構決策中，以提高雲端工作負載的資源使用率和效能效率。當您意識到雲端工作負載的成本影響時，您就更有可能利用有效的資源並減少浪費的做法。 

 **常見的反模式：** 
+  您只能使用一個執行個體系列。 
+  您沒有根據開放原始碼解決方案，來評估授權解決方案。 
+  您沒有定義儲存生命週期政策。 
+  您沒有檢閱 AWS 雲端 的新服務和特徵。 
+  您只能使用區塊儲存。 

 **建立此最佳實務的優勢：** 將成本因素納入決策中，可讓您使用更有效率的資源並探索其他投資選擇。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 針對成本最佳化工作負載可以提高資源利用率，並避免雲端工作負載的浪費。將成本納入架構決策中，通常包括適當調整工作負載元件的大小和啟用彈性，進而提高雲端工作負載效能效率。 

### 實作步驟
<a name="implementation-steps"></a>
+  建立成本目標，例如雲端工作負載的預算限制。 
+  找出造成工作負載成本增加的關鍵元件 (例如執行個體和儲存)。您可以使用 [AWS 定價計算工具](https://calculator.aws/#/) 和 [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) 找出造成工作負載中成本增加的關鍵因素。 
+  使用 [AWS Well-Architected 成本最佳化最佳實務](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/welcome.html) 最佳化這些關鍵元件的成本。 
+  持續監控和分析成本，以找出工作負載中成本最佳化的機會。 
  +  使用 [AWS Budgets](https://aws.amazon.com/aws-cost-management/aws-budgets/) 在產生無法接受的成本時收到提醒。 
  +  使用 [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 或者 [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/) 取得成本最佳化建議。 
  +  使用 [AWS 成本異常偵測](https://aws.amazon.com/aws-cost-management/aws-cost-anomaly-detection/) 取得自動化的成本異常偵測和根本原因分析。 

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

 **相關文件：** 
+  [成本智慧儀表板的詳細概要](https://aws.amazon.com/blogs/aws-cloud-financial-management/a-detailed-overview-of-the-cost-intelligence-dashboard/) 
+  [AWS 架構中心](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 解決方案程式庫](https://aws.amazon.com/solutions/) 
+  [AWS 知識中心](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **相關影片：** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [最佳化 AWS 運算的效能和成本](https://www.youtube.com/watch?v=zt6jYJLK8sg&ref=wellarchitected) 

 **相關範例：** 
+  [AWS 範例](https://github.com/aws-samples) 
+  [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples) 
+  [在 Compute Optimizer 和記憶體使用率已啟用的情況下適當調整大小](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer 示範程式碼](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF01-BP04 評估權衡如何影響客戶和架構效率
<a name="perf_architecture_evaluate_trade_offs"></a>

 在評估與效能相關的改善之處時，請判斷哪些選擇將對客戶和工作負載效率產生影響。例如，如果使用鍵值資料存放區可提高系統效能，請務必評估此變更最終一致性本質對客戶的影響。 

 **常見的反模式：** 
+  即使實作過程中有所取捨，您都假設應實作所有效能增益。 
+  您只會在效能問題達到臨界點時才會評估工作負載變更。 

 **建立此最佳實務的優勢：** 評估與效能相關的潛在改善時，您必須決定進行此變更的優缺點是否符合工作負載需求。在某些情況下，您可能需要實作其他控制來彌補權衡。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 根據對效能和客戶造成的影響，找出架構中的關鍵領域。確定如何進行改進、這些改進帶來的權衡，以及它們如何影響系統和使用者體驗。例如，實作快取資料有助於大幅提升效能，但需要明確的策略來確定更新或使快取資料失效的方式和時間，以防止不正確的系統行為。 

### 實作步驟
<a name="implementation-steps"></a>
+  了解工作負載需求和 SLA。 
+  清楚定義評估因素。因素可能涉及工作負載的成本、可靠性、安全性和效能。 
+  選擇可滿足您需求的架構和服務。 
+  進行試驗和概念驗證 (POC)，以評估權衡因素以及對客戶和架構效率的影響。通常，高可用性、高效能且安全的工作負載會耗用更多雲端資源，但能夠提供更完善的客戶體驗。 

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

 **相關文件：** 
+  [Amazon 建置者資料中心](https://aws.amazon.com/builders-library) 
+  [Quick KPI](https://docs.aws.amazon.com/quicksight/latest/user/kpi.html) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [X-Ray 文件](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+ [ 了解能在雲端中快速建構架構的彈性模式和權衡 ](https://aws.amazon.com/blogs/architecture/understand-resiliency-patterns-and-trade-offs-to-architect-efficiently-in-the-cloud/)

 **相關影片：** 
+  [制定監控計劃](https://www.youtube.com/watch?v=OMmiGETJpfU&ref=wellarchitected) 
+  [透過 Amazon CloudWatch RUM 最佳化應用程式](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Amazon CloudWatch Synthetics 的示範](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **相關範例：** 
+  [使用 Amazon CloudWatch Synthetics 測量頁面載入時間](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Amazon CloudWatch RUM Web 用戶端](https://github.com/aws-observability/aws-rum-web) 

# PERF01-BP05 使用政策和參考架構
<a name="perf_architecture_use_policies_and_reference_architectures"></a>

 選擇服務和組態時，使用內部政策和現有的參考架構，以便在設計和實作工作負載提高效率。 

 **常見的反模式：** 
+  您允許各種可能會影響公司管理開銷的技術。 

 **建立此最佳實務的優勢：** 建立架構、技術和供應商選擇的政策，讓您快速做出決策。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 在選擇資源和架構時，制定內部政策可讓您在選擇架構時有可遵循的標準和準則。這些指導方針則可簡化在選擇合適的雲端服務時的決策流程，並提高效能效率。使用政策或參考架構來部署工作負載。將服務整合到雲端部署，然後使用效能測試以確保您可以繼續滿足效能需求。 

### 實作步驟
<a name="implementation-steps"></a>
+  清楚了解雲端工作負載的需求。 
+  檢閱內部和外部政策，以找出最相關的政策。 
+  使用由 AWS 或業界最佳實務提供的適當參考架構。 
+  針對常見情況，建立包含政策、標準、參考架構和規範性指引的連續體。這樣做可加快團隊的應變速度。為產業量身打造資產 (如果適用)。 
+  針對沙盒環境中的工作負載驗證這些政策和參考架構。 
+  隨時掌握產業標準和 AWS 更新，確保政策和參考架構有助最佳化雲端工作負載。 

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

 **相關文件：** 
+  [AWS 架構中心](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 解決方案程式庫](https://aws.amazon.com/solutions/) 
+  [AWS 知識中心](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **相關影片：** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **相關範例：** 
+  [AWS 範例](https://github.com/aws-samples) 
+  [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP06 使用基準化分析來推動架構決策
<a name="perf_architecture_use_benchmarking"></a>

 基準化分析現有工作負載的效能，以了解工作負載在雲端的效能，並根據該資料推動架構決策。 

 **常見的反模式：** 
+  您依賴的常見基準化分析未能反映工作負載特性。 
+  您依賴客戶意見回饋和感受作為唯一的基準化分析。 

 **建立此最佳實務的優勢：** 基準化分析目前的實作，可協助您衡量效能改善之處。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 使用基準化分析搭配綜合測試，以評估工作負載元件執行情況。與負載測試相比，基準化分析通常速度更快；要評估特定元件的技術時，會使用基準化分析。當您缺少執行負載測試的完整解決方案時，通常可在新專案開始時使用基準化分析。 

 您可以建置自己的自訂基準化分析測試，或者使用產業標準測試，例如 [TPC-DS](http://www.tpc.org/tpcds/)，以基準化您的工作負載。比較環境時，產業基準化分析很有幫助。對於確定您希望在架構中進行的特定營運類型，自訂基準化分析非常實用。 

 基準化分析時，務必要預熱測試環境，以獲得有效的結果。多次執行相同的基準化分析，以確保您已擷取到隨著時間出現的任何變化。 

 由於基準化分析的速度通常比負載測試要快，因此可以在部署管道中盡早使用基準化分析，以便能更快提供有關效能偏差的回饋。當您評估元件或服務中的重大變更時，藉助基準化分析，您可以更快速地查看所做的變更是否合理。請務必使用基準化分析搭配負載測試，因為負載測試會告訴您工作負載在生產中的效能。 

### 實作步驟
<a name="implementation-steps"></a>
+  定義指標 (例如 CPU 使用率、延遲或輸送量)，以評估工作負載效能。 
+  找出並設定工作負載適用的基準化分析工具。您可以使用 AWS 服務 (例如 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html))，或與工作負載相容的第三方工具。 
+  在測試期間執行基準化分析並監控指標。 
+  分析並記錄基準化分析結果，以找出任何瓶頸和問題。 
+  使用測試結果做出架構決策並調整工作負載。這可能包括變更服務或採用新功能。 
+  調整後重新測試工作負載。 

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

 **相關文件：** 
+  [AWS 架構中心](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 解決方案程式庫](https://aws.amazon.com/solutions/) 
+  [AWS 知識中心](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 

 **相關影片：** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [透過 Amazon CloudWatch RUM 最佳化應用程式](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Amazon CloudWatch Synthetics 的示範](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **相關範例：** 
+  [AWS 範例](https://github.com/aws-samples) 
+  [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples) 
+  [分散式負載測試](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 
+  [使用 Amazon CloudWatch Synthetics 測量頁面載入時間](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Amazon CloudWatch RUM Web 用戶端](https://github.com/aws-observability/aws-rum-web) 

# PERF01-BP07 針對架構選擇使用資料驅動的方法
<a name="perf_architecture_use_data_driven_approach"></a>

 為架構選擇定義清晰、資料驅動的方法，以確認是否使用正確的雲端服務和組態，來滿足特定業務需求。 

 **常見的反模式：** 
+  您假設目前的架構是靜態的，且不應隨著時間而更新。 
+  架構選擇是根據猜測和假設。 
+  您會隨時間導入架構變更，而且無需理由佐證。 

 **建立此最佳實務的優勢：** 透過採用明確定義的方法來做出架構選擇，您使用資料來影響工作負載設計，並隨著時間的推移做出明智的決策。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 使用內部經驗和雲端知識，或使用外部資源 (例如已發佈的使用案例或白皮書)，以選擇架構中的資源和服務。您應有定義明確的流程，有助試驗和基準化分析可在工作負載中使用的服務。 

 關鍵工作負載的待辦項目不僅只包括使用者案例 (提供與業務和使用者相關的功能)，還應包括構成工作負載架構跑道的技術案例。這條跑道掌握技術和新服務的新進展，並根據資料和適當的理由而採用這些技術和新服務。這證明架構仍然是與時俱進，不會停滯不前。 

### 實作步驟
<a name="implementation-steps"></a>
+  與關鍵利害關係人互動，以定義工作負載需求，包括效能、可用性和成本考量。考慮工作負載的使用者數量和使用模式等因素。 
+  建立架構跑道或技術待辦項目，系統會優先處理這些項目與功能待辦事項。 
+  評估不同的雲端服務 (如需詳細資訊，請參閱 [PERF01-BP01 了解可用的雲端服務和特徵](perf_architecture_understand_cloud_services_and_features.md))。 
+  探索符合效能需求的不同架構模式，例如微服務或無伺服器 (如需更多詳細資訊，請參閱 [PERF01-BP02 使用雲端供應商或適當合作夥伴提供的指引，了解架構模式和最佳實務](perf_architecture_guidance_architecture_patterns_best_practices.md))。 
+  諮詢其他團隊、架構圖表和資源，例如 AWS 解決方案架構設計師、 [AWS 架構中心](https://aws.amazon.com/architecture/)和 [AWS Partner Network](https://aws.amazon.com/partners/)，以協助您選擇適合工作負載的架構。 
+  定義輸送量和回應時間等效能指標，以協助您評估工作負載的效能。 
+  試驗並使用定義的指標，來驗證所選架構的效能。 
+  視需要持續監控並進行調整，以維持架構的最佳效能。 
+  記錄您選擇的架構和決策，作為未來更新和學習的參考。 
+  根據經驗、新技術和指出目前方法中需要變更或問題的指標，持續檢閱和更新架構選擇方法。 

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

 **相關文件：** 
+  [AWS 解決方案程式庫](https://aws.amazon.com/solutions/) 
+  [AWS 知識中心](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **相關影片：** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **相關範例：** 
+  [AWS 範例](https://github.com/aws-samples) 
+  [AWS SDK 範例](https://github.com/awsdocs/aws-doc-sdk-examples) 

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

# PERF 2.如何在工作負載中選取和使用運算資源？
<a name="perf-02"></a>

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

**Topics**
+ [PERF02-BP01 選擇最適合您工作負載的運算選項](perf_compute_hardware_select_best_compute_options.md)
+ [PERF02-BP02 了解可用的運算組態和特徵](perf_compute_hardware_understand_compute_configuration_features.md)
+ [PERF02-BP03 收集與運算相關的指標](perf_compute_hardware_collect_compute_related_metrics.md)
+ [PERF02-BP04 設定運算資源及適當調整其大小](perf_compute_hardware_configure_and_right_size_compute_resources.md)
+ [PERF02-BP05 動態擴展運算資源](perf_compute_hardware_scale_compute_resources_dynamically.md)
+ [PERF02-BP06 使用最佳化的硬體型運算加速器](perf_compute_hardware_compute_accelerators.md)

# PERF02-BP01 選擇最適合您工作負載的運算選項
<a name="perf_compute_hardware_select_best_compute_options"></a>

 為工作負載選擇最合適的運算選項，可讓您改善效能、減少不必要的基礎架構成本，並降低維護工作負載所需的作業工作量。 

 **常見的反模式：** 
+  您使用曾用於內部部署的同一個運算選項。 
+  您不了解雲端運算選項、特徵以及解決方案，以及那些解決方案可以如何改善運算效能。 
+  您在替代運算選項更精確地符合工作負載特性時，過度佈建現有運算選項以符合擴展或效能需求。 

 **建立此最佳實務的優勢：** 您可以透過找出運算需求並根據可用選項進行評估，提高工作負載的資源效率。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 為了最佳化雲端工作負載以提高效能效率，請務必根據使用案例和效能需求選擇最合適的運算選項。AWS 提供多種運算選項，以滿足雲端中不同工作負載的需求。例如，您可以使用 [Amazon EC2](https://docs.aws.amazon.com/ec2/) 來啟動和管理虛擬伺服器，[AWS Lambda](https://docs.aws.amazon.com/lambda/?icmpid=docs_homepage_featuredsvcs) 無需佈建或管理伺服器便能執行程式碼。[Amazon ECS](https://aws.amazon.com/ecs/) 或者 [Amazon EKS](https://aws.amazon.com/eks/) 來執行和管理容器，或 [AWS Batch](https://aws.amazon.com/batch/) 來並行處理大量資料。根據擴展和運算需求，您應該根據自己的情況選擇並設定最佳的運算解決方案。您也可以考慮在單一工作負載中使用多種運算解決方案，因為每種運算解決方案都有優缺點。 

 下列步驟會引導您選擇正確的運算選項，以符合工作負載特性和效能需求。 

## 實作步驟
<a name="implementation-steps"></a>

1.  了解工作負載運算需求。要考量的關鍵需求包括處理需求、流量模式、資料存取模式、擴展需求，以及延遲需求。 

1.  了解在 AWS 上適用於工作負載的不同運算選項 (詳述於 [PERF01-BP01 了解可用的雲端服務和特徵](perf_architecture_understand_cloud_services_and_features.md)。以下是一些關鍵的 AWS 運算選項、其特性和常見使用案例：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_compute_hardware_select_best_compute_options.html)

1.  評估與每個運算選項相關聯的成本 (例如每小時費用或資料傳輸) 和管理開銷 (例如修補和調整規模)。 

1.  在非生產環境中執行試驗和基準化分析，以找出哪個運算選項最能滿足工作負載需求。 

1.  在您試驗和找出新的運算解決方案，請規劃遷移並驗證效能指標。 

1.  使用 AWS 監控工具，例如 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 以及最佳化服務，例如 [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 以便根據真實的使用模式，持續最佳化運算資源。 

 

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

 **相關文件：** 
+  [使用 AWS 進行雲端運算 ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [Amazon EC2 執行個體類型 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [Amazon EKS 容器：Amazon EKS 工作節點 ](https://docs.aws.amazon.com/eks/latest/userguide/worker.html?ref=wellarchitected) 
+  [Amazon ECS 容器：Amazon ECS 容器執行個體 ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html?ref=wellarchitected) 
+  [函數：Lambda 函數組態](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html?ref=wellarchitected#function-configuration) 
+ [容器的規範指引](https://aws.amazon.com/prescriptive-guidance/?apg-all-cards.sort-by=item.additionalFields.sortText&apg-all-cards.sort-order=desc&awsf.apg-new-filter=*all&awsf.apg-content-type-filter=*all&awsf.apg-code-filter=*all&awsf.apg-category-filter=categories%23containers&awsf.apg-rtype-filter=*all&awsf.apg-isv-filter=*all&awsf.apg-product-filter=*all&awsf.apg-env-filter=*all) 
+  [無伺服器的規範指引](https://aws.amazon.com/prescriptive-guidance/?apg-all-cards.sort-by=item.additionalFields.sortText&apg-all-cards.sort-order=desc&awsf.apg-new-filter=*all&awsf.apg-content-type-filter=*all&awsf.apg-code-filter=*all&awsf.apg-category-filter=categories%23serverless&awsf.apg-rtype-filter=*all&awsf.apg-isv-filter=*all&awsf.apg-product-filter=*all&awsf.apg-env-filter=*all) 

 **相關影片：** 
+  [如何為新創公司選擇運算選項](https://aws.amazon.com/startups/start-building/how-to-choose-compute-option/) 
+  [最佳化 AWS 運算的效能和成本 ](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Amazon EC2 基礎](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [支援下一代 Amazon EC2：深入探討 Nitro 系統 ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [部署適用於高效能和低成本推論的機器學習模型](https://www.youtube.com/watch?v=4FqHt5bmS2o) 
+  [更好、更快、更便宜的運算：成本最佳化 Amazon EC2](https://www.youtube.com/watch?v=_dvh4P2FVbw&ref=wellarchitected) 

 **相關範例：** 
+  [遷移 Web 應用程式至容器](https://application-migration-with-aws.workshop.aws/en/container-migration.html) 
+  [執行 Serverless Hello World](https://aws.amazon.com/getting-started/hands-on/run-serverless-code/) 

# PERF02-BP02 了解可用的運算組態和特徵
<a name="perf_compute_hardware_understand_compute_configuration_features"></a>

 了解運算服務的可用組態選項和特徵，有助您佈建適量的資源並提高效能效率。 

 **常見的反模式：** 
+  您沒有根據工作負載特性，評估運算選項或可用的執行個體系列。 
+  過度佈建運算資源以符合尖峰需求。 

** 建立此最佳實務的優勢：** 熟悉 AWS 運算特徵和組態，如此您就能使用為符合工作負載特性和需求而經最佳化的運算解決方案。

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 每個運算解決方案都有獨特的組態和特徵，可支援不同的工作負載特性和需求。了解這些選項如何與工作負載互補，以及判斷哪種組態選項最適合您的應用程式。這些選項的範例包括執行個體系列、大小、特徵 (GPU、I/O)、爆量、逾時、函數大小、容器執行個體，以及並行。如果工作負載使用相同運算選項的時間已超過四週，並且您預計特性未來仍將保持不變，您可以使用 [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/)  從 CPU 和記憶體的角度來判斷目前的運算選項是否適合此工作負載。 

## 實作步驟
<a name="implementation-steps"></a>

1.  了解工作負載需求 (例如 CPU 需求、記憶體和延遲)。 

1.  檢閱 AWS 文件和最佳實務，以了解可協助改善運算效能的建議組態選項。以下是一些需要考慮的關鍵組態選項：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_compute_hardware_understand_compute_configuration_features.html)

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

 **相關文件：** 
+  [使用 AWS 進行雲端運算 ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [Amazon EC2 執行個體類型 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [Amazon EC2 執行個體的處理器狀態控制 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html?ref=wellarchitected) 
+  [Amazon EKS 容器：Amazon EKS 工作節點 ](https://docs.aws.amazon.com/eks/latest/userguide/worker.html?ref=wellarchitected) 
+  [Amazon ECS 容器：Amazon ECS 容器執行個體 ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html?ref=wellarchitected) 
+  [函數：Lambda 函數組態](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html?ref=wellarchitected#function-configuration) 

 **相關影片：** 
+  [Amazon EC2 基礎](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [支援下一代 Amazon EC2：深入探討 Nitro 系統 ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [最佳化 AWS 運算的效能和成本](https://www.youtube.com/watch?v=zt6jYJLK8sg&ref=wellarchitected) 

 **相關範例：** 
+  [在 Compute Optimizer 和記憶體使用率已啟用的情況下適當調整大小](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer 示範程式碼](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF02-BP03 收集與運算相關的指標
<a name="perf_compute_hardware_collect_compute_related_metrics"></a>

 記錄並追蹤與運算相關的指標，進一步了解運算資源的效能，並改善效能及使用率。 

 **常見的反模式：** 
+  您只使用手動日誌檔案來搜尋指標。  
+  您只使用監控軟體記錄的預設指標。 
+  您只會在有問題時審查指標。 

 **建立此最佳實務的優勢：** 收集效能相關指標，可協助您符合應用程式效能與業務需求，確保滿足工作負載需求。這麼做也可以協助您持續改善工作負載中的資源效能和使用率。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 雲端工作負載可以產生大量資料，例如指標、日誌和事件。在 AWS 雲端 中，收集指標是提高安全性、成本效率、效能和可永續發展性的關鍵步驟。AWS 可使用監控服務提供各種效能相關的指標，例如 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 為您提供寶貴的洞察。CPU 使用率、記憶體使用率、磁碟 I/O 以及網路輸入和輸出等指標，可協助您深入了解使用率層級或效能瓶頸。將這些指標納入資料驅動的方法，以主動調整和優化工作負載的資源。  在理想的情況下，您應該在單一平台中收集與運算資源相關的所有指標，並實作保留政策，以支援成本和營運目標。 

## 實作步驟
<a name="implementation-steps"></a>

1.  找出與工作負載相關的效能相關指標。您應該收集與資源使用率和雲端工作負載運作方式有關的指標 (例如回應時間和輸送量)。 

   1.  [Amazon EC2 預設指標](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) 

   1.  [Amazon ECS 預設指標](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html) 

   1.  [Amazon EKS 預設指標](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/kubernetes-eks-metrics.html) 

   1.  [Lambda 預設指標](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-access-metrics.html) 

   1.  [Amazon EC2 記憶體和磁碟指標](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html) 

1.  為工作負載選擇並設定合適的記錄和監控解決方案。 

   1.  [AWS 原生可觀測性](https://catalog.workshops.aws/observability/en-US/aws-native) 

   1.  [適用於 OpenTelemetry 的 AWS Distro](https://aws.amazon.com/otel/) 

   1.  [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/grafana/latest/userguide/prometheus-data-source.html) 

1.  根據工作負載需求，為指標定義必要的篩選條件和彙總。 

   1.  [使用 Amazon CloudWatch Logs 和指標篩選條件，量化自訂應用程式指標](https://aws.amazon.com/blogs/mt/quantify-custom-application-metrics-with-amazon-cloudwatch-logs-and-metric-filters/) 

   1.  [使用 Amazon CloudWatch 策略標記收集自訂指標](https://aws.amazon.com/blogs/infrastructure-and-automation/collect-custom-metrics-with-amazon-cloudwatch-strategic-tagging/) 

1.  為指標設定資料保留政策，以符合安全性和營運目標。 

   1.  [CloudWatch 指標的預設資料保留](https://aws.amazon.com/cloudwatch/faqs/#AWS_resource_.26_custom_metrics_monitoring) 

   1.  [CloudWatch Logs 的預設資料保留](https://aws.amazon.com/cloudwatch/faqs/#Log_management) 

1.  如有必要，為指標建立警示和通知，以協助您主動回應效能相關問題。 

   1.  [使用 Amazon CloudWatch 異常偵測為自訂指標建立警示](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/create-alarms-for-custom-metrics-using-amazon-cloudwatch-anomaly-detection.html) 

   1.  [使用 Amazon CloudWatch RUM 為特定網頁建立指標和警示](https://aws.amazon.com/blogs/mt/create-metrics-and-alarms-for-specific-web-pages-amazon-cloudwatch-rum/) 

1.  使用自動化來部署指標和記錄彙總代理程式。 

   1.  [AWS Systems Manager 自動化](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html?ref=wellarchitected) 

   1.  [OpenTelemetry 收集器](https://aws-otel.github.io/docs/getting-started/collector) 

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

 **相關文件：** 
+  [Amazon CloudWatch 文件](https://docs.aws.amazon.com/cloudwatch/index.html?ref=wellarchitected) 
+  [使用 CloudWatch Agent 從 Amazon EC2 執行個體和內部部署伺服器收集指標和日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html?ref=wellarchitected) 
+  [存取 Amazon CloudWatch Logs 的 AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-logs.html?ref=wellarchitected) 
+  [搭配容器執行個體使用 CloudWatch Logs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_cloudwatch_logs.html?ref=wellarchitected) 
+  [發佈自訂指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html?ref=wellarchitected) 
+  [AWS Answers：集中式記錄](https://aws.amazon.com/answers/logging/centralized-logging/?ref=wellarchitected) 
+  [發佈 CloudWatch 指標的 AWS 服務](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html?ref=wellarchitected) 
+  [監控 AWS Fargate Amazon EKS](https://aws.amazon.com/blogs/containers/monitoring-amazon-eks-on-aws-fargate-using-prometheus-and-grafana/) 

 **相關影片：** 
+  [AWS 上的應用程式效能管理](https://www.youtube.com/watch?v=5T4stR-HFas&ref=wellarchitected) 

 **相關範例：** 
+  [Level 100：使用 CloudWatch 儀表板進行監控](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [Level 100：使用 CloudWatch 儀表板監控 Windows EC2 執行個體](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_windows_ec2_cloudwatch/) 
+  [Level 100：使用 CloudWatch 儀表板監控 Amazon Linux EC2 執行個體](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_linux_ec2_cloudwatch/) 

# PERF02-BP04 設定運算資源及適當調整其大小
<a name="perf_compute_hardware_configure_and_right_size_compute_resources"></a>

 設定運算資源及適當調整其大小，以符合工作負載的效能需求，並避免未充分使用資源或過度使用資源的情況。 

 **常見的反模式：** 
+  您忽略工作負載效能需求，導致過度佈建或佈建不足的運算資源。 
+  您只選擇適用於所有工作負載的最大或最小執行個體。 
+  為了方便管理，您只使用一個執行個體系列。 
+  您忽略來自 AWS Cost Explorer 或 Compute Optimizer 適當調整大小的建議。 
+  您沒有重新評估工作負載是否適用於新的執行個體類型。 
+  您只驗證組織的少量執行個體組態。 

 **建立此最佳實務的優勢：** 適當調整運算資源的大小，可避免過度佈建和佈建不足的資源，以確保雲端中的最佳作業。適當調整運算資源的大小，通常可以提高效能和增強客戶體驗，同時降低成本。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 適當調整大小可讓組織以有效率且符合成本效益的方式操作雲端基礎架構，同時滿足其業務需求。過度佈建雲端資源可能會導致額外成本，而佈建不足可能會導致低落的效能和不佳的客戶體驗。AWS 提供類似 [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 和 [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/) 之類的工具，這類工具會使用歷史資料，來提供適當調整運算資源大小的建議。 

### 實作步驟
<a name="implementation-steps"></a>
+  選擇最適合您需求的執行個體類型： 
  +  [如何為工作負載選擇適當的 Amazon EC2 執行個體類型？](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-instance-choose-type-for-workload/) 
  +  [Amazon EC2 機群的屬性型執行個體類型選取](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) 
  +  [使用屬性型執行個體類型選取建立 Auto Scaling 群組。](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) 
  +  [運用 Karpenter 整合，最佳化 Kubernetes 運算成本](https://aws.amazon.com/blogs/containers/optimizing-your-kubernetes-compute-costs-with-karpenter-consolidation/) 
+  分析工作負載的各種效能特性，以及這些特性與記憶體、網路和 CPU 使用量的關係。使用此資料，選擇最適合您工作負載設定檔和效能目標的資源。 
+  使用 Amazon CloudWatch 之類的 AWS 監控工具，監控資源使用情況。 
+  為運算資源選取適合的組態。 
  +  對於暫時性工作負載，請評估 [執行個體 Amazon CloudWatch 指標](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) (例如 `CPUUtilization` 以確認執行個體是否閒置或未充分利用。 
  +  對於穩定的工作負載，請定期檢查 AWS 適當調整大小的工具 (例如 AWS Compute Optimizer 和 AWS Trusted Advisor)，以找出對運算資源進行最佳化和適當調整大小的機會。 
    +  [Well-Architected 實驗室 - 適當調整大小的建議 ](https://wellarchitectedlabs.com/cost/100_labs/100_aws_resource_optimization/) 
    +  [Well-Architected 實驗室 - 使用 Compute Optimizer 適當調整大小 ](https://wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/) 
+  在即時環境中實作之前，先測試非生產環境中的組態變更。 
+  持續重新評估新的運算供應項目，並且根據工作負載需求進行比較。 

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

 **相關文件：** 
+  [使用 AWS 進行雲端運算](https://aws.amazon.com/products/compute/) 
+  [Amazon EC2 執行個體類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [Amazon ECS 容器：Amazon ECS 容器執行個體](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [Amazon EKS 容器：Amazon EKS 工作節點](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [函數：Lambda 函數組態](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 
+  [Amazon EC2 執行個體的處理器狀態控制](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 

 **相關影片：** 
+  [Amazon EC2 基礎](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [更好、更快、更便宜的運算：成本最佳化 Amazon EC2](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [部署適用於高效能和低成本推論的機器學習模型](https://www.youtube.com/watch?v=4FqHt5bmS2o) 
+  [最佳化 AWS 運算的效能和成本](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [支援下一代 Amazon EC2：深入探討 Nitro 系統](https://www.youtube.com/watch?v=rUY-00yFlE4) 
+  [使用無伺服器工具簡化資料處理以增強創新](https://aws.amazon.com/startups/start-building/how-to-choose-compute-option/) 

 **相關範例：** 
+  [在 Compute Optimizer 和記憶體使用率已啟用的情況下適當調整大小](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer 示範程式碼](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF02-BP05 動態擴展運算資源
<a name="perf_compute_hardware_scale_compute_resources_dynamically"></a>

 為滿足需求，請使用雲端的彈性，來動態擴充或縮減運算資源，並避免為工作負載佈建過多或過少的容量。 

 **常見的反模式：** 
+  您可以手動增加容量，對警示做出反應。 
+  您使用與內部部署相同的大小準則 (通常是靜態基礎結構)。 
+  您在擴展事件之後維持增加容量，而不是縮減規模。 

 **建立此最佳實務的優勢：** 設定和測試運算資源的彈性，可協助您節省成本、維持效能基準，並隨著流量變化改善可靠性。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 AWS 透過各種擴展機制，讓您能夠彈性動態擴充或縮減資源，以因應需求的變化。動態擴展與運算相關指標結合，讓工作負載能夠自動回應變更，並使用最佳的運算資源集來達成其目標。 

 您可以使用多種不同的方法達到資源的供需平衡。 
+  **目標追蹤法：**：監控擴展指標，並視需要自動增加或減少容量。
+  **預測擴展**：根據預測每日和每週趨勢進行擴展。
+  **排程法**：根據可預測的負載變更來設定您自己的擴展排程。
+  **服務擴展**：選擇可根據設計自動擴展的服務 (例如無伺服器)。

 您必須確保工作負載部署可以同時處理擴展和縮減事件。 

### 實作步驟
<a name="implementation-steps"></a>
+  運算執行個體、容器和函數提供了彈性機制，可能是與自動調整規模功能結合使用，或是作為服務功能提供。以下是自動擴展機制的幾個範例：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_compute_hardware_scale_compute_resources_dynamically.html)
+  我們常將擴展與 Amazon EC2 執行個體或 AWS Lambda 函數等運算服務一起討論。請務必同時考慮非運算服務的組態，例如， [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/auto-scaling.html) ，以符合需求。 
+  確認用於擴展的指標符合要部署之工作負載的特性。如果您要部署影片轉碼應用程式，則預期為 100% CPU 使用率，且不應做為您的主要指標。請改用轉碼任務佇列的深度。您可以將 [自訂指標](https://aws.amazon.com/blogs/mt/create-amazon-ec2-auto-scaling-policy-memory-utilization-metric-linux/) 用於擴展政策 (如有必要)。若要選擇正確的指標，請考量 Amazon EC2 的下列指引： 
  +  指標應為有效的使用率指標，並說明執行個體的忙碌程度。 
  +  指標值必須根據 Auto Scaling 群組中的執行個體數量按比例增加或減少。 
+  請確定您使用的是 [動態擴展](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html) 而非 [手動擴展](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-manual-scaling.html) 處理您的 Auto Scaling 群組。我們也建議您將 [目標追蹤擴展政策](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) 用於動態擴展中。 
+  確認工作負載部署可同時處理擴展事件 (擴充和縮減)。例如，您可以使用 [活動歷史](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-verify-scaling-activity.html) 來確認 Auto Scaling 群組的擴展活動。 
+  評估工作負載以取得可預測模式，並在預計發生預測中的變化和隨需規劃變化時主動擴展。透過預測擴展，可以避免過度佈建容量的需求。如需詳細資訊，請參閱 [Amazon EC2 Auto Scaling 的預測擴展](https://aws.amazon.com/blogs/compute/introducing-native-support-for-predictive-scaling-with-amazon-ec2-auto-scaling/)。 

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

 **相關文件：** 
+  [使用 AWS 進行雲端運算](https://aws.amazon.com/products/compute/) 
+  [Amazon EC2 執行個體類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [Amazon ECS 容器：Amazon ECS 容器執行個體](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [Amazon EKS 容器：Amazon EKS 工作節點](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [函數：Lambda 函數組態](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 
+  [Amazon EC2 執行個體的處理器狀態控制](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 
+  [深入探討 Amazon ECS 叢集 Auto Scaling](https://aws.amazon.com/blogs/containers/deep-dive-on-amazon-ecs-cluster-auto-scaling/) 
+  [介紹 Karpenter - 一個開放原始碼的高效能 Kubernetes Cluster Autoscaler](https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/) 

 **相關影片：** 
+  [Amazon EC2 基礎](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [更好、更快、更便宜的運算：成本最佳化 Amazon EC2](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [最佳化 AWS 運算的效能和成本](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [支援下一代 Amazon EC2：深入探討 Nitro 系統](https://www.youtube.com/watch?v=rUY-00yFlE4) 
+  [打造兼具成本、能源和資源優勢的運算環境](https://www.youtube.com/watch?v=8zsC5e1eLCg) 

 **相關範例：** 
+  [Amazon EC2 Auto Scaling 群組範例](https://github.com/aws-samples/amazon-ec2-auto-scaling-group-examples) 
+  [使用 Karpenter 實作自動擴展](https://www.eksworkshop.com/beginner/085_scaling_karpenter/) 

# PERF02-BP06 使用最佳化的硬體型運算加速器
<a name="perf_compute_hardware_compute_accelerators"></a>

 使用硬體加速器執行特定功能，比以 CPU 為基礎的替代方案更有效率。 

 **常見的反模式：** 
+  在工作負載中，您尚未基準化分析一般用途執行個體和專用執行個體，而專用執行個體可以改善效能和降低成本。 
+  您使用硬體型運算加速器來執行任務，比起使用以 CPU 為基礎的替代方案更有效率。 
+  未監控 GPU 使用率。 

**建立此最佳實務的優勢：** 透過使用硬體型加速器，例如圖形處理單元 (GPU) 和現場可程式化閘道陣列 (FPGA)，您就可以更有效率地執行特定處理功能。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 加速運算執行個體可讓您使用硬體型運算加速器，例如 GPU 和 FPGA。這些硬體加速器在執行某些功能 (例如圖形處理或資料模式比對) 時，會比 CPU 型加速器更有效率。許多加速工作負載 (例如轉譯、轉碼和機器學習) 在資源用量方面極為變化不定。只在需要時執行此硬體，不需要時便會自動除役，以改善整體效能效率。 

### 實作步驟
<a name="implementation-steps"></a>
+  識別哪些 [加速運算執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html) 可以滿足您的要求。 
+  針對機器學習工作負載，請利用專供工作負載使用的專用硬體，例如 [AWS Trainium](https://aws.amazon.com/machine-learning/trainium/)、 [AWS Inferentia](https://aws.amazon.com/machine-learning/inferentia/)，和 [Amazon EC2 DL1](https://aws.amazon.com/ec2/instance-types/dl1/)。AWS Inferentia 執行個體 (例如 Inf2 執行個體) [最多可提供比同類 Amazon EC2 執行個體高出 50% 的效能功耗比](https://aws.amazon.com/machine-learning/inferentia/)。 
+  收集加速運算執行個體的用量指標。例如，您可以使用 CloudWatch 代理程式來收集指標，像是 `utilization_gpu` 和 `utilization_memory` ，並將其用於您的 GPU，相關說明請見 [使用 Amazon CloudWatch 收集 NVIDIA GPU 指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-NVIDIA-GPU.html)。 
+  優化硬體加速器的程式碼、網路運作和設定，以確保系統會充分利用基礎硬體。 
  +  [優化 GPU 設定](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/optimize_gpu.html) 
  +  [Deep Learning AMI 中的 GPU 監控和優化](https://docs.aws.amazon.com/dlami/latest/devguide/tutorial-gpu.html) 
  +  [將 I/O 優化以針對 Amazon SageMaker AI 中的深度學習訓練進行 GPU 效能調校](https://aws.amazon.com/blogs/machine-learning/optimizing-i-o-for-gpu-performance-tuning-of-deep-learning-training-in-amazon-sagemaker/) 
+  使用最新的高效能程式庫和 GPU 驅動程式。 
+  使用自動化來釋出不使用的 GPU 執行個體。 

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

 **相關文件：** 
+  [GPU 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#gpu-instances) 
+  [使用 AWS Trainium 的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#aws-trainium-instances) 
+  [使用 AWS Inferentia的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#aws-inferentia-instances) 
+  [開始建構吧！ 使用自訂晶片和加速器來進行建構](https://aws.amazon.com/blogs/architecture/lets-architect-custom-chips-and-accelerators/) 
+  [加速運算](https://aws.amazon.com/ec2/instance-types/#Accelerated_Computing) 
+  [Amazon EC2 VT1 執行個體](https://aws.amazon.com/ec2/instance-types/vt1/) 
+  [如何為工作負載選擇適當的 Amazon EC2 執行個體類型？](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-instance-choose-type-for-workload/) 
+  [選擇最佳的 AI 加速器和模型編譯以 Amazon SageMaker AI 推斷電腦視覺](https://aws.amazon.com/blogs/machine-learning/choose-the-best-ai-accelerator-and-model-compilation-for-computer-vision-inference-with-amazon-sagemaker/) 

 **相關影片：** 
+  [如何為深度學習選取 Amazon EC2 GPU 執行個體](https://www.youtube.com/watch?v=4bVrIbgGWEA&ab_channel=AWSEvents) 
+  [部署經濟實惠的深度學習推斷](https://www.youtube.com/watch?v=WiCougIDRsw&ab_channel=AWSOnlineTechTalks) 

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

# PERF 3.如何在工作負載中儲存、管理和存取資料？
<a name="perf-03"></a>

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

**Topics**
+ [PERF03-BP01 使用最能滿足資料存取和儲存需求的專用資料存放區](perf_data_use_purpose_built_data_store.md)
+ [PERF03-BP02 評估資料存放區可用的組態選項](perf_data_evaluate_configuration_options_data_store.md)
+ [PERF03-BP03 收集並記錄資料存放區效能指標](perf_data_collect_record_data_store_performance_metrics.md)
+ [PERF03-BP04 實作策略以改善資料存放區中的查詢效能](perf_data_implement_strategies_to_improve_query_performance.md)
+ [PERF03-BP05 實作利用快取的資料存取模式](perf_data_access_patterns_caching.md)

# PERF03-BP01 使用最能滿足資料存取和儲存需求的專用資料存放區
<a name="perf_data_use_purpose_built_data_store"></a>

 了解資料特性 (例如可共用、大小、快取大小、存取模式、延遲、輸送量和資料的持續性)，為工作負載選擇適合的專用資料存放區 (儲存或資料庫)。 

 **常見的反模式：** 
+  由於具備某種特定類型資料庫解決方案的內部經驗和知識，您堅持使用某個資料存取區。 
+  您假設所有工作負載都有類似的資料儲存和存取需求。 
+  您未實作資料目錄以清查資料資產。 

 **建立此最佳實務的優勢：** 了解資料特性和需求，可協助您判斷能滿足工作負載需求的最有效率且效能最高的儲存技術。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 選取和實作資料儲存時，請確定查詢、擴展和儲存特性能滿足工作負載資料需求。AWS 提供多種資料儲存和資料庫技術，包括區塊儲存、物件儲存、串流儲存、檔案系統、關聯式、鍵值、文件、記憶體內、圖形、時間序列和帳本資料庫。每個資料管理解決方案都有選項和組態，可供您支援使用案例和資料模型。透過了解資料特性和需求，您就可以擺脫單一儲存技術和一體適用的限制性方法，專注於如何適當管理資料。 

### 實作步驟
<a name="implementation-steps"></a>
+  對工作負載現有的各種資料類型執行清查。 
+  了解並記錄資料特性和需求，包括： 
  +  資料類型 (非結構化、半結構化、關聯式) 
  +  資料量與成長 
  +  資料耐用性：持續性、暫時性、臨時 
  +  ACID (單元性、一致性、隔離行為、持續性) 需求 
  +  資料存取模式 (大量讀取或大量寫入) 
  +  延遲 
  +  輸送量 
  +  IOPS (每秒輸入/輸出操作次數) 
  +  資料保留期 
+  了解 AWS 上可用於工作負載的不同資料存放區，這些資料存放區可以滿足資料特性 (詳情請參閱 [PERF01-BP01 了解可用的雲端服務和特徵](perf_architecture_understand_cloud_services_and_features.md))。AWS 儲存技術及其重要特性的一些範例包含：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_data_use_purpose_built_data_store.html)
+  如果您要建置資料平台，請利用 [現代資料架構](https://aws.amazon.com/big-data/datalakes-and-analytics/modern-data-architecture/) (位於 AWS) 來整合資料湖、資料倉儲和專用的資料存放區。 
+  為工作負載選擇資料存放區時，需要考慮的關鍵問題如下：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_data_use_purpose_built_data_store.html)
+  在非生產環境中執行試驗和基準化分析，以找出哪個資料存放區能滿足工作負載需求。 

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

 **相關文件：** 
+  [Amazon EBS 磁碟區類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Amazon EC2 儲存](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS：Amazon EFS 效能](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Amazon FSx for Lustre 效能](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Amazon FSx for Windows File Server 效能](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+  [Amazon Glacier：Amazon Glacier 文件](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3：請求率和效能考量](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [AWS 的雲端儲存](https://aws.amazon.com/products/storage/) 
+  [Amazon EBS I/O 特性](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 
+  [AWS 的雲端資料庫 ](https://aws.amazon.com/products/databases/?ref=wellarchitected) 
+  [AWS 資料庫快取 ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [DynamoDB Accelerator](https://aws.amazon.com/dynamodb/dax/?ref=wellarchitected) 
+  [Amazon Aurora 最佳實務 ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Amazon Redshift 效能 ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Amazon Athena 10 大效能秘訣 ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Amazon Redshift Spectrum 最佳實務 ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/?ref=wellarchitected) 
+  [Amazon DynamoDB 最佳實務](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html?ref=wellarchitected) 
+  [在 Amazon EC2 和 Amazon RDS 之間選擇](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/comparison.html) 
+ [ 實作 Amazon ElastiCache 的最佳實務 ](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/BestPractices.html)

 **相關影片：** 
+  [深入探索 Amazon EBS](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [使用 Amazon S3 最佳化儲存效能](https://www.youtube.com/watch?v=54AhwfME6wI) 
+ [透過專用資料庫建置現代化應用程式](https://www.youtube.com/watch?v=V-DiplATdi0)
+ [ Amazon Aurora 儲存的奧秘：運作方式 ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+ [ Amazon DynamoDB 深入探討：進階設計模式 ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **相關範例：** 
+  [Amazon EFS CSI 驅動程式](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 
+  [Amazon EBS CSI 驅動程式](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 
+  [Amazon EFS 公用程式](https://github.com/aws/efs-utils) 
+  [Amazon EBS 自動擴展](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [Amazon S3 範例](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 
+  [使用 Amazon Redshift 資料共用來最佳化資料模式](https://wellarchitectedlabs.com/sustainability/300_labs/300_optimize_data_pattern_using_redshift_data_sharing/) 
+  [資料庫遷移](https://github.com/aws-samples/aws-database-migration-samples) 
+  [MS SQL Server - AWS Database Migration Service (AWS DMS) 複寫示範](https://github.com/aws-samples/aws-dms-sql-server) 
+  [資料庫現代化實際操作研討會](https://github.com/aws-samples/amazon-rds-purpose-built-workshop) 
+  [Amazon Neptune 範例](https://github.com/aws-samples/amazon-neptune-samples) 

# PERF03-BP02 評估資料存放區可用的組態選項
<a name="perf_data_evaluate_configuration_options_data_store"></a>

 了解並評估資料存放區可用的各種特徵和組態選項，以最佳化工作負載的儲存空間和效能。 

 **常見的反模式：** 
+  所有工作負載只能使用一種儲存類型，例如 Amazon EBS。 
+  您為所有工作負載使用佈建 IOPS，卻未針對所有儲存層進行實際測試。 
+  您未意識到所選資料庫管理解決方案的組態選項。 
+  僅依靠增加執行個體大小，而不查看其他可用的組態選項。 
+  未測試資料存放區的擴展特性。 

 **建立此最佳實務的優勢：** 藉由探索和試驗資料存放區組態，您能夠降低基礎架構成本、改善效能，以及減少維護工作負載所需的工作量。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 工作負載可以根據資料儲存和存取需求使用一或多個資料存放區。若要最佳化效能效率和成本，您必須評估資料存取模式，以判斷適當的資料存放區組態。在探索資料存放區選項時，請考量各種層面，例如儲存選項、記憶體、運算、讀取複本、一致性需求、連線共用，以及快取選項。試驗這些不同的組態選項來改善效能效率指標。 

### 實作步驟
<a name="implementation-steps"></a>
+  了解資料存放區的目前組態 (例如執行個體類型、儲存大小或資料庫引擎版本)。 
+  檢閱 AWS 文件和最佳實務，以了解可協助改善資料存放區效能的建議組態選項。要考慮的關鍵資料存放區選項如下：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_data_evaluate_configuration_options_data_store.html)
+  在非生產環境中執行試驗和基準化分析，以找出哪個組態選項能滿足工作負載需求。 
+  完成試驗之後，請規劃遷移並確認效能指標。 
+  使用 AWS 監控 (例如 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)) 和最佳化 (例如 [Amazon S3 Storage Lens](https://aws.amazon.com/s3/storage-lens/)) 工具，以透過實際使用模式持續最佳化資料存放區。 

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

 **相關文件：** 
+  [AWS 的雲端儲存](https://aws.amazon.com/products/storage/?ref=wellarchitected) 
+  [Amazon EBS 磁碟區類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Amazon EC2 儲存](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS：Amazon EFS 效能](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Amazon FSx for Lustre 效能](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Amazon FSx for Windows File Server 效能](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+  [Amazon Glacier：Amazon Glacier 文件](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3：請求率和效能考量](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [AWS 的雲端儲存](https://aws.amazon.com/products/storage/) 
+  [AWS 的雲端儲存](https://aws.amazon.com/products/storage/?ref=wellarchitected) 
+  [Amazon EBS I/O 特性](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 
+  [AWS 的雲端資料庫 ](https://aws.amazon.com/products/databases/?ref=wellarchitected) 
+  [AWS 資料庫快取 ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [DynamoDB Accelerator](https://aws.amazon.com/dynamodb/dax/?ref=wellarchitected) 
+  [Amazon Aurora 最佳實務 ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Amazon Redshift 效能 ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Amazon Athena 10 大效能秘訣 ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Amazon Redshift Spectrum 最佳實務 ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/?ref=wellarchitected) 
+  [Amazon DynamoDB 最佳實務](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html?ref=wellarchitected) 

 **相關影片：** 
+  [深入探索 Amazon EBS](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [使用 Amazon S3 最佳化儲存效能](https://www.youtube.com/watch?v=54AhwfME6wI) 
+ [透過專用資料庫建置現代化應用程式](https://www.youtube.com/watch?v=V-DiplATdi0)
+ [ 探究 Amazon Aurora 儲存的奧秘：運作方式 ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+ [ Amazon DynamoDB 深入探討：進階設計模式 ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **相關範例：** 
+  [Amazon EFS CSI 驅動程式](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 
+  [Amazon EBS CSI 驅動程式](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 
+  [Amazon EFS 公用程式](https://github.com/aws/efs-utils) 
+  [Amazon EBS 自動擴展](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [Amazon S3 範例](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 
+  [Amazon DynamoDB 範例](https://github.com/aws-samples/aws-dynamodb-examples) 
+  [AWS 資料庫遷移範例](https://github.com/aws-samples/aws-database-migration-samples) 
+  [資料庫現代化研討會](https://github.com/aws-samples/amazon-rds-purpose-built-workshop) 
+  [使用 Amazon RDS for Postgress 資料庫上的參數](https://github.com/awsdocs/amazon-rds-user-guide/blob/main/doc_source/Appendix.PostgreSQL.CommonDBATasks.Parameters.md) 

# PERF03-BP03 收集並記錄資料存放區效能指標
<a name="perf_data_collect_record_data_store_performance_metrics"></a>

 追蹤並記錄資料存放區的相關效能指標，以了解資料管理解決方案的成效。這些指標可協助您最佳化資料存放區、確認是否符合工作負載需求，並提供工作負載執行方式的清晰概觀。 

 **常見的反模式：** 
+  您只使用手動日誌檔案來搜尋指標。 
+  您只會將指標發佈至您團隊所使用的內部工具，而沒有工作負載的全貌。 
+  您只會使用所選監控軟體記錄的預設指標。 
+  您只會在有問題時審查指標。 
+  您只會監控系統層級指標，而不會擷取資料存取或用量指標。 

 **建立此最佳實務的優勢：** 建立效能基準可協助您了解正常行為和工作負載的要求。可以更快地識別和偵錯異常模式，進而改善資料存放區的效能和可靠性。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 若要監控資料存放區的效能，您必須記錄一段時間的多個效能指標。這可讓您偵測異常，以及針對業務指標測量效能，以確認是否符合工作負載需求。 

 指標應該同時包括支援資料存放區的基礎系統和資料庫指標。基礎系統指標可能包括 CPU 使用率、記憶體、可用磁碟儲存、磁碟 I/O、快取命中率和網路傳入和傳出指標，而資料存放區指標可能包括每秒交易數、熱門查詢、平均查詢率、回應時間、索引使用情況、表格鎖定、查詢逾時，以及開啟的連線數目。此資料對於了解工作負載的執行方式，以及資料管理解決方案的使用方式至關重要。將這些指標納入資料驅動的方法，以調整和最佳化工作負載的資源。  

 使用工具、程式庫和系統來記錄與資料庫效能有關的效能測量值。 

## 實作步驟
<a name="implementation-steps"></a>

1.  找出要追蹤的資料存放區關鍵效能指標。 

   1.  [Amazon S3 指標和維度](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metrics-dimensions.html) 

   1.  [監控 Amazon RDS 執行個體中的指標](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Monitoring.html) 

   1.  [在 Amazon RDS 上使用 Performance Insights 監控資料庫負載](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 

   1.  [增強型監控概觀](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html) 

   1.  [DynamoDB 指標和維度](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html) 

   1.  [監控 DynamoDB Accelerator](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.Monitoring.html) 

   1.  [使用 Amazon CloudWatch 進行監控 Amazon MemoryDB](https://docs.aws.amazon.com/memorydb/latest/devguide/monitoring-cloudwatch.html) 

   1.  [我應該監控哪些指標？](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheMetrics.WhichShouldIMonitor.html) 

   1.  [監控 Amazon Redshift 叢集效能](https://docs.aws.amazon.com/redshift/latest/mgmt/metrics.html) 

   1.  [Timestream 指標和維度](https://docs.aws.amazon.com/timestream/latest/developerguide/metrics-dimensions.html) 

   1.  [Amazon Aurora Amazon CloudWatch 指標](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html) 

   1.  [在 Amazon Keyspaces (for Apache Cassandra) 中的記錄和監控](https://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring.html) 

   1.  [監控 Amazon Neptune 資源](https://docs.aws.amazon.com/neptune/latest/userguide/monitoring.html) 

1.  使用核准的記錄和監控解決方案來收集這些指標。 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 可以收集架構中各種資源的指標。您還可以收集和發佈自訂指標以顯示業務或衍生指標。使用 CloudWatch 或第三方解決方案，來設定可指出何時超過閾值的警示。 

1.  檢查資料存放區監控是否能從可偵測效能異常的機器學習解決方案中獲益。 

   1.  [Amazon RDS Amazon DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-rds.overview.how-it-works.html) 可讓您查看效能問題，並做出更正動作的建議。 

1.  在監控和記錄解決方案中設定資料保留，以符合安全性和營運目標。 

   1.  [CloudWatch 指標的預設資料保留](https://aws.amazon.com/cloudwatch/faqs/#AWS_resource_.26_custom_metrics_monitoring) 

   1.  [CloudWatch Logs 的預設資料保留](https://aws.amazon.com/cloudwatch/faqs/#Log_management) 

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

 **相關文件：** 
+  [AWS 資料庫快取](https://aws.amazon.com/caching/database-caching/) 
+  [Amazon Athena 10 大效能秘訣](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/) 
+  [Amazon Aurora 最佳實務](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html) 
+  [DynamoDB Accelerator](https://aws.amazon.com/dynamodb/dax/) 
+  [Amazon DynamoDB 最佳實務](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+  [Amazon Redshift Spectrum 最佳實務](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/) 
+  [Amazon Redshift 效能](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html) 
+  [AWS 的雲端資料庫](https://aws.amazon.com/products/databases/) 
+  [Amazon RDS Performance Insights](https://aws.amazon.com/rds/performance-insights/) 

 **相關影片：** 
+  [AWS 專用資料庫](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Amazon Aurora 儲存的奧秘：運作方式](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+  [Amazon DynamoDB 深入探討：進階設計模式](https://www.youtube.com/watch?v=6yqfmXiZTlM) 
+  [在 Amazon ElastiCache 上監控 Redis 工作負載的最佳實務](https://www.youtube.com/watch?v=c-hTMLN35BY&ab_channel=AWSOnlineTechTalks) 

 **相關範例：** 
+  [Level 100：使用 CloudWatch 儀表板進行監控](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [AWS 資料集擷取指標收集架構](https://github.com/awslabs/aws-dataset-ingestion-metrics-collection-framework) 
+  [Amazon RDS 監控研討會](https://www.workshops.aws/?tag=Enhanced%20Monitoring) 

# PERF03-BP04 實作策略以改善資料存放區中的查詢效能
<a name="perf_data_implement_strategies_to_improve_query_performance"></a>

 實作策略以最佳化資料並改善資料查詢，以便為工作負載提供更高的可擴展性和更高效的效能。 

 **常見的反模式：** 
+  您沒有分割資料存放區中的資料。 
+  您在資料存放區中只使用一種檔案格式儲存資料。 
+  您沒有在資料存放區中使用索引。 

 **建立此最佳實務的優勢：** 最佳化資料和查詢效能可提高效率、降低成本並改善使用者體驗。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

資料最佳化和查詢調整是資料存放區中效能效率的關鍵層面，因為其會影響整個雲端應用程式工作負載的效能和回應能力。未經過最佳化的查詢可能會使用更多資源和造成更大的瓶頸，進而降低資料存放區的整體效率。

資料最佳化包括數個技術，以確保高效的資料儲存和存取。這也有助於改善資料存放區中的查詢效能。關鍵策略包括資料分割、資料壓縮和資料去常規化，這些有助於資料的儲存和存取達到最佳化。

### 實作步驟
<a name="implementation-steps"></a>
+  了解和分析在資料存放區中執行的重要資料查詢。 
+  找出資料存放區中執行速度緩慢的查詢，並使用查詢計畫了解其目前狀態。 
  +  [分析 Amazon Redshift 中的查詢計畫](https://docs.aws.amazon.com/redshift/latest/dg/c-analyzing-the-query-plan.html) 
  +  [在 Athena 中使用 EXPLAIN 和 EXPLAIN ANALYZE](https://docs.aws.amazon.com/athena/latest/ug/athena-explain-statement.html) 
+  實施策略以改善查詢效能。有些關鍵策略包括下列情況： 
  +  使用 [單欄檔案格式](https://docs.aws.amazon.com/athena/latest/ug/columnar-storage.html) (例如，Parquet 或 ORC)。 
  + 壓縮資料存放區中的資料以減少儲存空間和 I/O 作業。
  +  資料分割可將資料拆分為較小的部分並縮短資料掃描時間。 
    + [ 在 Athena 中分割資料 ](https://docs.aws.amazon.com/athena/latest/ug/partitions.html)
    + [ 分割區和資料分發 ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html)
  +  在查詢中對共同欄進行資料索引編制。 
  +  選擇正確的聯結作業以進行查詢。當您聯結兩個資料表時，請在聯結左側指定較大的資料表，並在聯結右側指定較小的資料表。 
  +  分散式快取解決方案可改善延遲並減少資料庫 I/O 操作的次數。 
  +  定期維護，例如執行統計。 
+  在非生產環境中試驗和測試策略。 

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

 **相關文件：** 
+  [Amazon Aurora 最佳實務 ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Amazon Redshift 效能 ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Amazon Athena 10 大效能秘訣](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [AWS 資料庫快取 ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [實作 Amazon ElastiCache 的最佳實務](https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html) 
+  [在 Athena 中分割資料](https://docs.aws.amazon.com/athena/latest/ug/partitions.html) 

 **相關影片：** 
+  [使用 Amazon Redshift 資料共用來最佳化資料模式](https://wellarchitectedlabs.com/sustainability/300_labs/300_optimize_data_pattern_using_redshift_data_sharing/) 
+  [使用新的查詢分析工具最佳化 Amazon Athena 查詢  ](https://www.youtube.com/watch?v=7JUyTqglmNU&ab_channel=AmazonWebServices) 

 **相關範例：** 
+  [Amazon EFS CSI 驅動程式](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 

# PERF03-BP05 實作利用快取的資料存取模式
<a name="perf_data_access_patterns_caching"></a>

 為快速擷取經常存取的資料，實作利用快取的存取模式。 

 **常見的反模式：** 
+  您快取的資料經常變更。 
+  您以為快取的資料能夠持久儲存且永遠可用，因而過於依賴。 
+  您未考慮快取資料的一致性。 
+  您未監控快取實作的效率。 

 **建立此最佳實務的優勢：** 將資料儲存在快取中可改善讀取延遲、讀取輸送量、使用者體驗和整體效率，並降低成本。 

 **未建立此最佳實務時的曝險等級**：中 

## 實作指引
<a name="implementation-guidance"></a>

 快取是軟體或硬體的元件，其用途在於儲存資料，以便未來請求相同的資料時，能夠更快且更有效率地提供服務。若儲存在快取中的資料遺失，可以透過重複先前的計算或從其他資料存放區提取的方式重新建構該資料。 

 資料快取可能是改善整體應用程式效能並減輕基礎主要資料來源負擔的最有效策略之一。資料可在應用程式中的多個層級快取，例如在進行遠端呼叫的應用程式內，稱為 *用戶端快取*，或者使用快速的次要服務來儲存資料，稱為 *遠端快取*。 

 **用戶端快取** 

 透過用戶端快取，每個用戶端 (查詢後端資料儲存的應用程式或服務) 都可將特定的查詢結果儲存在本機上，並在指定的時間內保留。這樣就能透過先查看本機用戶端快取，減少整體網路對資料儲存的請求數量。如果結果不存在，應用程式就可以查詢資料儲存，並將這些結果儲存在本機上。此模式可讓每個用戶端將資料儲存在最靠近的位置 (用戶端本身)，進而將延遲降至最低。用戶端也可在後端資料儲存無法使用時，繼續為部分查詢提供服務，以提高整體系統的可用性。 

 這種方法的缺點是，若有多個用戶端，則可能會將相同的快取資料儲存在本機上。這樣會導致這些用戶端之間發生重複使用儲存和資料不一致的情況。某一個用戶端可能快取了查詢的結果，而過了一分鐘後，另一個用戶端也可能執行相同的查詢，但得到不同的結果。 

 **遠端快取** 

 為了解決用戶端之間資料重複的問題，可使用快速的外部服務 (也稱為 *遠端快取)*來儲存查詢的資料。每個用戶端都會在查詢後端資料儲存之前查看遠端快取，而不會查看本機資料存放區。這種策略可讓用戶端之間的回應更趨一致、提高儲存資料的效率，以及增加快取的資料量，因為儲存空間的擴展與用戶端無關。 

 遠端快取的缺點是，整個系統可能產生較高的延遲，因為需要額外的網路跳轉來查看遠端快取。用戶端快取可與遠端快取一起使用，以提供多層次快取來改善延遲。 

### 實作步驟
<a name="implementation-steps"></a>

1.  找出可有效利用快取的資料庫、API 和網路服務。有大量讀取工作負載、高讀寫比例或擴展成本昂貴的服務，都適合使用快取。 
   +  [資料庫快取](https://aws.amazon.com/caching/database-caching/) 
   +  [啟用 API 快取以提升回應能力](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) 

1.  確定最適合您存取模式的適當快取策略類型。 
   +  [快取策略](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Strategies.html) 
   +  [AWS 快取解決方案](https://aws.amazon.com/caching/aws-caching/) 

1.  遵循適合您的資料存放區的 [快取最佳實務](https://aws.amazon.com/caching/best-practices/) 。 

1.  為所有資料設定快取失效策略，例如存留時間 (TTL)，以便在資料時效性與減輕後端資料儲存壓力之間取得平衡。 

1.  在用戶端中啟用像是自動連線重試、指數退避、用戶端逾時和連線共用等功能 (如果有的話)，因為這些功能可以改善效能和可靠性。 
   +  [最佳實務：Redis 用戶端和 Amazon ElastiCache (Redis OSS)](https://aws.amazon.com/blogs/database/best-practices-redis-clients-and-amazon-elasticache-for-redis/) 

1.  設定 80% 或更高的目標來監控快取命中率。較低的值可能表示快取大小不足，或存取模式無法有效利用快取。 
   +  [我應該監控哪些指標？](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheMetrics.WhichShouldIMonitor.html) 
   +  [在 Amazon ElastiCache 上監控 Redis 工作負載的最佳實務](https://www.youtube.com/watch?v=c-hTMLN35BY) 
   +  [使用 Amazon CloudWatch 監控 Amazon ElastiCache (Redis OSS) 的最佳實務](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/) 

1.  實作 [資料複寫](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.Redis.Groups.html) 將讀取卸載到多個執行個體，並改善資料讀取效能和可用性。 

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

 **相關文件：** 
+  [使用 Amazon ElastiCache Well-Architected Lens](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WellArchitechtedLens.html) 
+  [使用 Amazon CloudWatch 監控 Amazon ElastiCache (Redis OSS) 的最佳實務](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/) 
+  [我應該監控哪些指標？](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheMetrics.WhichShouldIMonitor.html) 
+  [使用 Amazon ElastiCache 大幅提高效能白皮書](https://docs.aws.amazon.com/whitepapers/latest/scale-performance-elasticache/scale-performance-elasticache.html) 
+  [快取挑戰和策略](https://aws.amazon.com/builders-library/caching-challenges-and-strategies/) 

 **相關影片：** 
+  [Amazon ElastiCache 學習路徑](https://pages.awscloud.com/GLB-WBNR-AWS-OTT-2021_LP_0003-DAT_AmazonElastiCache.html) 
+  [專為使用 Amazon ElastiCache 最佳實務獲得成功而設計](https://youtu.be/_4SkEy6r-C4) 

 **相關範例：** 
+  [使用 Amazon ElastiCache (Redis OSS) 大幅提高 MySQL 資料庫效能](https://aws.amazon.com/getting-started/hands-on/boosting-mysql-database-performance-with-amazon-elasticache-for-redis/) 

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

# PERF 4.如何在工作負載中選取和設定網路資源？
<a name="perf-04"></a>

 系統的最有效資料庫解決方案會根據可用性、一致性、分割容錯度、延遲、耐用性、可擴展性及查詢能力的需求而有所不同。許多系統針對不同的子系統使用不同的資料庫解決方案，並啟用不同功能以提升效能。若選錯資料庫解決方案和功能，可能使系統的效能達成效率降低。 

**Topics**
+ [PERF04-BP01 了解聯網如何影響效能](perf_networking_understand_how_networking_impacts_performance.md)
+ [PERF04-BP02 評估可用的聯網功能](perf_networking_evaluate_networking_features.md)
+ [PERF04-BP03 為您的工作負載選擇適當的專用連線或 VPN](perf_networking_choose_appropriate_dedicated_connectivity_or_vpn.md)
+ [PERF04-BP04 使用負載平衡將流量分配到多個資源](perf_networking_load_balancing_distribute_traffic.md)
+ [PERF04-BP05 選擇網路通訊協定以提高效能](perf_networking_choose_network_protocols_improve_performance.md)
+ [PERF04-BP06 根據網路需求選擇工作負載的位置](perf_networking_choose_workload_location_network_requirements.md)
+ [PERF04-BP07 根據指標最佳化網路組態](perf_networking_optimize_network_configuration_based_on_metrics.md)

# PERF04-BP01 了解聯網如何影響效能
<a name="perf_networking_understand_how_networking_impacts_performance"></a>

 分析並了解網路相關決策如何影響您的工作負載，以提供高效率的效能並改善使用者體驗。 

 **常見的反模式：** 
+  通過現有資料中心的所有流量。 
+  您讓所有流量路由經過中央防火牆，而非使用雲端原生網路安全工具。 
+  您佈建 AWS Direct Connect 連線，但不了解實際用量需求。 
+  在定義聯網解決方案時，您未考慮工作負載特性和加密負擔。 
+  您將內部部署概念和策略用於雲端中的聯網解決方案。 

 **建立此最佳實務的優勢：** 了解聯網如何影響工作負載效能協助您識別潛在的瓶頸、改善使用者體驗、提高可靠性，以及隨著工作負載的變更降低營運維護成本。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 網路負責處理應用程式元件、雲端服務、邊緣網絡和內部部署資料之間的連線，因此對工作負載效能可能有大幅的影響。除了工作負載效能外，使用者體驗也可能受到網路延遲、頻寬、通訊協定、位置、網路擁塞、抖動、輸送量和路由規則的影響。 

 具有來自工作負載的聯網要求的記錄清單，包括延遲、封包大小、路由規則、通訊協定和支援的流量模式。檢閱可用的聯網解決方案，並識別哪個服務符合您的工作負載聯網特性。雲端型網路可以快速重建，因此隨著時間演進您的網路架構是改善效能達成效率的必要條件。 

### 實作步驟：
<a name="implementation-steps"></a>

1.  定義並記錄聯網效能需求，包括網路延遲、頻寬、通訊協定、位置、流量模式 (峰值和頻率)、輸送量、加密、檢查，以及路由規則等指標。 

1.  了解關鍵 AWS 聯網服務，如 [VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)、[AWS Direct Connect](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/aws-direct-connect.html)、[Elastic Load Balancing (ELB)](https://aws.amazon.com/elasticloadbalancing/)和 [Amazon Route 53](https://aws.amazon.com/r53/)。 

1.  擷取下列主要聯網特性：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_networking_understand_how_networking_impacts_performance.html)

1.  對網路效能進行基準測試： 

   1.  [基準](https://aws.amazon.com/premiumsupport/knowledge-center/network-throughput-benchmark-linux-ec2/) 網路輸送量，當執行個體位於同一 VPC 時，有些因素可能會影響 Amazon EC2 網路效能。測量同一 VPC 中 Amazon EC2 Linux 執行個體之間的網路頻寬。 

   1.  執行 [負載測試](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 以試驗各種聯網解決方案和選項。 

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

 **相關文件：** 
+  [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Linux 上的 EC2 增強型聯網](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+  [Windows 上的 EC2 增強型聯網](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+  [EC2 置放群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [在 Linux 執行個體上啟用搭配彈性網路轉接器 (ENA) 的增強型聯網](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+  [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [AWS 的聯網產品](https://aws.amazon.com/products/networking/) 
+  [Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+  [轉換到 Amazon Route 53 中以延遲為基礎的路由](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+  [VPC 端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+  [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

 **相關影片：** 
+  [與 AWS 和混合 AWS 網路架構的連線](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+  [最佳化 Amazon EC2 執行個體的網路效能](https://www.youtube.com/watch?v=DWiwuYtIgu0) 
+  [改善應用程式的全球網路效能](https://youtu.be/vNIALfLTW9M) 
+  [EC2 執行個體和優化效能最佳實務](https://youtu.be/W0PKclqP3U0) 
+  [最佳化 Amazon EC2 執行個體的網路效能](https://youtu.be/DWiwuYtIgu0) 
+  [搭配 Well-Architected Framework 的聯網最佳實務和秘訣](https://youtu.be/wOMNpG49BeM) 
+  [大規模遷移中的 AWS 聯網最佳實務](https://youtu.be/qCQvwLBjcbs) 

 **相關範例：** 
+  [AWS Transit Gateway 和可擴展的安全解決方案](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 聯網研討會](https://networking.workshop.aws/) 

# PERF04-BP02 評估可用的聯網功能
<a name="perf_networking_evaluate_networking_features"></a>

評估雲端中可能提升效能的聯網功能。透過測試、指標和分析來測量這些功能的影響。例如，利用可用的網路層級功能來降低延遲、網路距離或抖動。

 **常見的反模式：** 
+ 您只在單一區域中活動，這是因為該區域是您總部的所在區域。
+ 您使用防火牆而非安全群組來篩選流量。
+ 您透過中斷 TLS 來檢測流量，而非使用安全群組、端點政策和其他雲端原生功能。
+ 您只使用子網路來分隔，而非採用安全群組的方式。

 **建立此最佳實務的優勢：** 評估所有服務功能和選項可提高工作負載效能、降低基礎架構成本、減少維護工作負載所需的人力，以及提升整體安全狀態。您可以使用全球 AWS 骨幹來為客戶提供最佳的聯網體驗。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 AWS 提供 [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/) 和 [Amazon CloudFront](https://aws.amazon.com/cloudfront/) 等服務，可協助提高網路效能，而大多數 AWS 服務都有產品功能 (例如 [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration/) 功能) 可用來最佳化網路流量。 

 檢閱您可以使用哪些網路相關組態選項，及其對工作負載可能有何影響。效能最佳化取決於了解這些選項如何與您的架構互動，以及這些選項對衡量效能與使用者體驗的影響。 

### 實作步驟
<a name="implementation-steps"></a>
+  建立工作負載元件清單。 
  +  考慮在建置統一的全球網路時，使用 [AWS 雲端 WAN](https://aws.amazon.com/cloud-wan/) 來建置、管理和監控您組織的網路。 
  +  監控您的全球和核心網路，方法是使用 [Amazon CloudWatch Logs 指標](https://docs.aws.amazon.com/network-manager/latest/tgwnm/monitoring-cloudwatch-metrics.html)。利用 [Amazon CloudWatch RUM](https://aws.amazon.com/about-aws/whats-new/2021/11/amazon-cloudwatch-rum-applications-client-side-performance/)，它提供了洞見來幫助您識別、了解和強化使用者的數位體驗。 
  +  檢視 AWS 區域 與可用區域之間的彙總網路延遲，以及每個可用區域內的網路延遲，使用 [AWS Network Manager](https://aws.amazon.com/transit-gateway/network-manager/) 獲得洞見，讓您深入了解應用程式效能與基礎 AWS 網路效能的關係。 
  +  使用現有的組態管理資料庫 (CMDB) 工具或 [AWS Config](https://aws.amazon.com/config/) 之類的服務，建立工作負載的庫存及了解其設定方式。 
+  如果這是現有的工作負載，請識別並記載效能指標的基準，並將重心放在瓶頸和有待改善的領域上。每個工作負載的效能相關聯網指標，都會隨著業務要求和工作負載特性而不同。一開始對您的工作負載而言，下列指標可能都是必須檢閱的：頻寬、延遲、封包遺失、抖動和重新傳輸。 
+  如果這是新的工作負載，請執行 [負載測試](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 以找出效能瓶頸。 
+  對於您找出的效能瓶頸，請檢閱您解決方案的組態選項，以找出改善效能的機會。參考下列主要聯網選項和功能：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_networking_evaluate_networking_features.html)

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

 **相關文件：** 
+ [Amazon EBS - 最佳化的執行個體 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html)
+ [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)
+ [Linux 上的 EC2 增強型聯網 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html)
+ [Windows 上的 EC2 增強型聯網 ](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html)
+ [EC2 置放群組 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
+ [在 Linux 執行個體上啟用搭配彈性網路轉接器 (ENA) 的增強型聯網 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html)
+ [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)
+ [AWS 的聯網產品](https://aws.amazon.com/products/networking/)
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)
+ [轉換到 Amazon Route 53 中以延遲為基礎的路由](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html)
+ [VPC 端點](https://docs.aws.amazon.com/vpc/latest/privatelink/concepts.html)
+ [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)

 **相關影片：** 
+ [與 AWS 和混合 AWS 網路架構的連線](https://www.youtube.com/watch?v=eqW6CPb58gs)
+ [最佳化 Amazon EC2 執行個體的網路效能](https://www.youtube.com/watch?v=DWiwuYtIgu0)
+ [AWS Global Accelerator](https://www.youtube.com/watch?v=Docl4julOQw)

 **相關範例：** 
+ [AWS Transit Gateway 和可擴展的安全解決方案 ](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions)
+ [AWS 聯網研討會](https://catalog.workshops.aws/networking/en-US)

# PERF04-BP03 為您的工作負載選擇適當的專用連線或 VPN
<a name="perf_networking_choose_appropriate_dedicated_connectivity_or_vpn"></a>

 需要混合式連線來連接內部部署和雲端資源時，請佈建足夠的頻寬來滿足您的效能需求。預估混合工作負載的頻寬和延遲需求。您的規模調整需求取決於這些數字。 

 **常見的反模式：** 
+  您只針對網路加密需求評估 VPN 解決方案。 
+  您未評估備份或備援連線選項。 
+  您無法識別所有工作負載需求 (加密、通訊協定、頻寬和流量需求)。 

 **建立此最佳實務的優勢：** 選取和設定適當的連線解決方案將提高工作負載的可靠性，並充分利用效能。藉由識別工作負載需求、提前規劃和評估混合解決方案，就能盡可能減少昂貴的實體網路變更和營運負擔，同時實現更高的價值。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 根據您的頻寬要求開發混合式聯網架構。[Direct Connect](https://aws.amazon.com/directconnect/) 可讓您將內部部署網路與 AWS 進行私密連線。需要高頻寬且低延遲，同時可達到一致效能時，適合這個選項。VPN 連線會建立透過網際網路的安全連線。使用時機包括：只需要臨時連線、須考量成本因素，或是在使用 Direct Connect 的情況下，等待建立彈性實體網路連線時做為緊急應變措施。 

 如果您的頻寬需求很高，可以考慮多個 Direct Connect 或 VPN 服務。流量可在服務之間達到負載平衡，雖然因為延遲和頻寬的差異，我們不建議在 Direct Connect 和 VPN 之間達到負載平衡。 

### 實作步驟
<a name="implementation-steps"></a>

1.  預估現有應用程式的頻寬和延遲需求。 

   1.  針對移至 AWS 的現有工作負載，利用來自您的內部網路監控系統的資料。 

   1.  針對您沒有監控資料的新或現有工作負載，請諮詢產品擁有者以決定適當的效能指標，並且提供良好的使用者體驗。 

1.  選取專用連線或 VPN 做為您的連線選項。根據所有工作負載要求 (加密、頻寬和流量需求)，您可以選擇 AWS Direct Connect 或 [Site-to-Site VPN](https://aws.amazon.com/vpn/) (或兩者)。下圖可協助您選擇適當的連線類型。 

   1.  [AWS Direct Connect](https://aws.amazon.com/directconnect/) 使用專用連線或託管連線，為 AWS 環境提供速度從 50 Mbps 到 100 Gbps 的專用連線。這可為您提供受管和受控的延遲以及佈建頻寬，因此您的工作負載可以有效率地連線到其他環境。使用 AWS Direct Connect 合作夥伴，您就可以擁有來自多個環境的端對端連線能力，提供擴充的網路和一致的效能。AWS 提供使用原生 100 Gbps、連結彙總群組 (LAG) 或 BGP 等價多路徑 (ECMP) 的擴展直接連線連線頻寬。 

   1.  AWS [Site-to-Site VPN](https://aws.amazon.com/vpn/) 提供受管 VPN 服務，支援網際網路通訊協定安全性 (IPsec)。建立 VPN 連線時，每個 VPN 連線都包含兩個通道以獲得高可用性。 

1.  依照 AWS 文件中所述，選擇適當的連線選項： 

   1.  如果您決定使用 Direct Connect，請為您的連線選取適當的頻寬。 

   1.  如果您跨多個位置使用 AWS Site-to-Site VPN 連線至 AWS 區域，請使用 [加速 Site-to-Site VPN 連線](https://docs.aws.amazon.com/vpn/latest/s2svpn/accelerated-vpn.html) 以創造改善網路效能的機會。 

   1.  如果您的網路設計包含 [透過 AWS Direct Connect 的 IPsec VPN 連線](https://aws.amazon.com/directconnect/)請考慮使用私有 IP VPN 來提高安全性並實現區隔。 [AWS Site-to-Site 私有 IP VPN](https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-aws-site-to-site-vpn-private-ip-vpns/) 是以傳輸虛擬介面 (VIF) 為基礎進行部署。 

   1.  [AWS Direct Connect SiteLink](https://aws.amazon.com/blogs/aws/new-site-to-site-connectivity-with-aws-direct-connect-sitelink/) 可讓您在位於全世界的資料中心之間建立低延遲的冗餘連線，方法是在 [AWS Direct Connect 位置之間利用最快速的路徑傳送資料，](https://aws.amazon.com/directconnect/locations/)並略過 AWS 區域。 

1.  在部署到生產環境之前，先驗證您的連線設定。進行安全性和效能測試，確保其符合您的頻寬、可靠性、延遲和合規需求。 

1.  定期監控連線效能和使用情況，並視需要最佳化。 

![\[流程圖說明您在判斷在您的網路中是否需要決定性效能時，應該考慮的選項。\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/images/deterministic-networking-flowchart.png)


 

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

 **相關文件：** 
+ [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)
+ [AWS 的聯網產品 ](https://aws.amazon.com/products/networking/)
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)
+ [ 轉換到 Amazon Route 53 中以延遲為基礎的路由 ](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html)
+ [ VPC 端點 ](https://docs.aws.amazon.com/vpc/latest/privatelink/concepts.html)
+  [Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) 
+  [建置可擴展且安全的多 VPC AWS 網路基礎設施](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/welcome.html) 
+  [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 
+  [用戶端 VPN](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html) 

 **相關影片：** 
+ [ 與 AWS 和混合 AWS 網路架構的連線 ](https://www.youtube.com/watch?v=eqW6CPb58gs)
+ [ 最佳化 Amazon EC2 執行個體的網路效能 ](https://www.youtube.com/watch?v=DWiwuYtIgu0)
+  [AWS Global Accelerator](https://www.youtube.com/watch?v=lAOhr-5Urfk) 
+  [Direct Connect](https://www.youtube.com/watch?v=DXFooR95BYc&t=6s) 
+  [AWS Transit Gateway Connect](https://www.youtube.com/watch?v=_MPY_LHSKtM&t=491s) 
+  [VPN 解決方案](https://www.youtube.com/watch?v=qmKkbuS9gRs) 
+  [使用 VPN 解決方案保護安全](https://www.youtube.com/watch?v=FrhVV9nG4UM) 

 **相關範例：** 
+  [AWS Transit Gateway 和可擴展的安全解決方案](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 聯網研討會](https://networking.workshop.aws/) 

# PERF04-BP04 使用負載平衡將流量分配到多個資源
<a name="perf_networking_load_balancing_distribute_traffic"></a>

 在多個資源或服務之間分配流量，以讓您的工作負載能夠利用雲端提供的彈性。您也可以使用負載平衡來卸載加密終止，以提升效能、可靠性，以及有效管理和路由流量。 

 **常見的反模式：** 
+  您在選擇負載平衡器類型時未考慮工作負載需求。 
+  您未利用負載平衡器功能來進行效能最佳化。 
+  工作負載在不使用負載平衡器的情況下，直接公開到網際網路。 
+  您可以透過現有的負載平衡器路由所有網際網路流量。 
+  您可以使用一般 TCP 負載平衡，並讓每個運算節點處理 SSL 加密。 

 **建立此最佳實務的優勢：** 負載平衡器會處理單一可用區域中或跨多個可用區域的應用程式流量不同的負載，並實現高可用性、自動擴展及更充分利用您的工作負載。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 負載平衡器會做為您的工作負載的進入點，從該處將您的流量分散到後端目標，例如運算執行個體或容器，以提高使用率。 

 選擇正確的負載平衡器類型是最佳化架構的第一步。從列出您的工作負載特性開始，例如通訊協定 (例如 TCP、HTTP、TLS 或 WebSockets)、目標類型 (例如執行個體、容器或無伺服器)、應用程式要求 (例如長時間執行連線、使用者身分驗證或黏性) 和置放 (例如 Region、Local Zone、Outpost 或區域隔離)。 

 AWS 為您的應用程式提供了多種模型來使用負載平衡。[Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 最適合 HTTP 和 HTTPS 流量的負載平衡，並提供了針對現代應用程式架構 (包括微型服務和容器) 交付的進階請求路由。 

 [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 最適合需要極高效能的 TCP 流量的負載平衡。它能夠每秒處理數百萬個請求，同時保持超低延遲性，並且還進行優化，可處理突發的和不穩定的流量模式。 

 [Elastic Load Balancing](https://aws.amazon.com/elasticloadbalancing/) 提供整合的憑證管理和 SSL/TLS 解密，讓您能夠靈活地集中管理負載平衡器的 SSL 設定，並從工作負載中卸載 CPU 密集型工作。 

 選擇正確的負載平衡器之後，您可以開始利用其功能來減少後端為流量提供服務所需投入的工作量。 

 例如，同時使用 Application Load Balancer (ALB) 和 Network Load Balancer (NLB)，您可以執行 SSL/TLS 加密卸載，這是避免您的目標完成 CPU 密集型 TLS 交握，並且改善憑證管理的機會。 

 在您的負載平衡器中設定 SSL/TLS 卸載時，它會負責將往返用戶端的流量進行加密，同時將未加密的流量交付給您的後端，釋放您的後端資源並且改善用戶端的回應時間。 

 Application Load Balancer 也可以為 HTTP/2 流量提供服務，不需要在您的目標上支援它。這個簡單的決策可以改善您的應用程式回應時間，因為 HTTP/2 更有效率地使用 TCP 連線。 

 定義架構時，應考慮您的工作負載延遲要求。例如，如果您有對延遲敏感的應用程式，您可能會決定使用 Network Load Balancer，以獲得極低的延遲。另外，您可能會決定讓工作負載更靠近您的客戶，也就是利用 Application Load Balancer ( [AWS Local Zones 中)](https://aws.amazon.com/about-aws/global-infrastructure/localzones/) 或甚至是 [AWS Outposts](https://aws.amazon.com/outposts/rack/)。 

 對延遲敏感的工作負載的另一個考慮是跨區域負載平衡。使用跨區域負載平衡，每個負載平衡器節點會將已註冊目標之間的流量分散到所有允許的可用區域中。 

 使用與您的負載平衡器整合的 Auto Scaling。效能效率系統的其中一個關鍵層面與適當調整後端資源的規模有關。若要完成此操作，您可以利用後端目標資源的負載平衡器整合。使用與 Auto Scaling 群組整合的負載平衡器，目標會視需要從負載平衡器新增或移除，以因應傳入流量。負載平衡器也可以與 [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) 和 [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html) 整合，以提供容器化工作負載。 
+  [Amazon ECS - 服務負載平衡](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) 
+  [Amazon EKS 上的應用程式負載平衡](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html) 
+  [Amazon EKS 上的網路負載平衡](https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html) 

### 實作步驟
<a name="implementation-steps"></a>
+  定義您的負載平衡需求，包括理想的資料量、可用性和應用程式可擴展性。 
+  為您的應用程式選擇正確的負載平衡器類型。 
  +  針對 HTTP/HTTPS 工作負載使用 Application Load Balancer。 
  +  針對在 TCP 或 UDP 上執行的非 HTTP 工作負載使用 Network Load Balancer。 
  +  使用兩者的組合 ([ALB 做為 NLB 的目標](https://aws.amazon.com/blogs/networking-and-content-delivery/application-load-balancer-type-target-group-for-network-load-balancer/))，這樣就能利用兩種產品的功能。例如，如果您想要搭配使用 NLB 的靜態 IP 與來自 ALB 的 HTTP 標題型路由，或者如果您想要將您的 HTTP 工作負載公開到  [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-share-your-services.html)就可以這麼做。 
  +  如需負載平衡器的完整比較，請參閱 [ELB 產品比較](https://aws.amazon.com/elasticloadbalancing/features/)。 
+  盡可能使用 SSL/TLS 卸載。 
  +  設定 HTTPS/TLS 接聽程式， [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html) 和 [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html) 兩者都與 [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/)整合。 
  +  請注意，基於合規理由，某些工作負載可能需要端對端加密。在此情況下，必須允許在目標進行加密。 
  +  如需安全最佳實務，請參閱 [SEC09-BP02 強制傳輸中加密](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_protect_data_transit_encrypt.html)。 
+  選取正確的路由演算法 (僅 ALB)。 
  +  路由演算法可以造成您的後端目標的妥善使用程度和它們影響效能程度的差異。例如，ALB 提供 [兩個路由演算法的選項](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#modify-routing-algorithm)： 
  +  **最低未解決請求：** 針對應用程式的請求因複雜性而異，或目標因處理功能而異的情況，用來讓負載更妥善地分散到您的後端目標。 
  +  **輪詢均衡：** 當請求和目標類似，或是如果您需要在目標之間平均分散請求時使用。 
+  考慮跨區域或區域隔離。 
  +  針對延遲改善和區域失敗網域使用跨區域關閉 (區域隔離)。在 NLB 中預設為關閉， [在 ALB 中您可以依據各個目標群組來關閉](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/disable-cross-zone.html)。 
  +  使用跨區域開啟來增加可用性和彈性。根據預設，ALB 的跨區域為開啟， [在 NLB 中您可以依據各個目標群組來開啟](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-cross-zone.html)。 
+  為您的 HTTP 工作負載開啟 HTTP keep-alives (僅 ALB)。使用這項功能，負載平衡器可以重複使用後端連線，直到 keep-alive 逾時到期，改善您的 HTTP 請求和回應時間，同時減少您的後端目標上的資源使用率。如需如何針對 Apache 和 Nginx 執行此操作的詳細資訊，請參閱 [使用 Apache 或 NGINX 做為 ELB 的後端伺服器的最佳設定是什麼？](https://aws.amazon.com/premiumsupport/knowledge-center/apache-backend-elb/) 
+  開啟負載平衡器的監控功能。 
  +  為您的 [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/enable-access-logging.html) 和 [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-access-logs.html)開啟存取日誌。 
  +  針對 ALB 要考慮的主要欄位是 `request_processing_time`， `request_processing_time`，和 `response_processing_time`。 
  +  針對 NLB 要考慮的主要欄位是 `connection_time` 和 `tls_handshake_time`。 
  +  請準備好在您需要日誌時進行查詢。您可以使用 Amazon Athena 同時查詢 [ALB 日誌](https://docs.aws.amazon.com/athena/latest/ug/application-load-balancer-logs.html) 和 [NLB 日誌](https://docs.aws.amazon.com/athena/latest/ug/networkloadbalancer-classic-logs.html)。 
  +  建立效能相關指標的警示，例如 [`TargetResponseTime` (適用 ALB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html)。 

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

 **相關文件：** 
+  [ELB 產品比較 ](https://aws.amazon.com/elasticloadbalancing/features/) 
+  [AWS 全球基礎設施 ](https://aws.amazon.com/about-aws/global-infrastructure/) 
+  [使用可用區域親和性改善效能並且降低成本 ](https://aws.amazon.com/blogs/architecture/improving-performance-and-reducing-cost-using-availability-zone-affinity/) 
+  [使用 Amazon Athena 逐步執行日誌分析 ](https://github.com/aws/elastic-load-balancing-tools/tree/master/amazon-athena-for-elb) 
+  [查詢 Application Load Balancer 日誌](https://docs.aws.amazon.com/athena/latest/ug/application-load-balancer-logs.html) 
+  [監控您的 Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-monitoring.html) 
+  [監控您的 Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-monitoring.html) 
+  [使用 Elastic Load Balancing 在您的 Auto Scaling 群組中的執行個體之間分散流量](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) 

 **相關影片：** 
+  [AWS re:Invent 2018: Elastic Load Balancing: 深入探討和最佳實務](https://www.youtube.com/watch?v=VIgAT7vjol8) 
+  [AWS re:Invent 2021 - 如何為您的 AWS 工作負載選擇正確的負載平衡器 ](https://www.youtube.com/watch?v=p0YZBF03r5A) 
+  [AWS re:Inforce 2022 - 如何使用 Elastic Load Balancing 大規模增強您的安全態勢](https://www.youtube.com/watch?v=YhNc5VSzOGQ) 
+  [AWS re:Invent 2019：針對不同工作負載充分發揮 Elastic Load Balancing](https://www.youtube.com/watch?v=HKh54BkaOK0) 

 **相關範例：** 
+  [使用 Amazon Athena 進行日誌分析的 CDK 和 CloudFormation 範例 ](https://github.com/aws/elastic-load-balancing-tools/tree/master/log-analysis-elb-cdk-cf-template) 

# PERF04-BP05 選擇網路通訊協定以提高效能
<a name="perf_networking_choose_network_protocols_improve_performance"></a>

 根據對工作負載效能的影響，做出系統和網路間通訊協定的決策。 

 實現輸送量的延遲和頻寬之間存在關係。如果您的檔案傳輸使用傳輸控制協定 (TCP)，較高的延遲很可能會降低整體輸送量。有一些方法可以使用 TCP 調校和最佳化的傳輸通訊協定來解決這個問題，但有一個解決方案是透過使用者資料包協定 (UDP)。 

 **常見的反模式：** 
+  無論效能需求為何，您都可以將 TCP 用於所有工作負載。 

 **建立此最佳實務的優勢：** 確認針對使用者與工作負載元件之間的通訊使用適當的通訊協定，可協助改善您的應用程式的整體使用者體驗。例如，無連線 UDP 雖然達到高速，但卻失去重新傳輸能力或高可靠性。TCP 是功能完整的通訊協定，但需要更大的額外負荷來處理封包。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 如果您能夠為應用程式選擇不同的通訊協定，而且您有這方面的專業知識，請使用不同的通訊協定來最佳化您的應用程式和最終使用者體驗。請注意，這種方法伴隨著相當高的難度，只有在您已先利用其他方式最佳化應用程式之後，才應嘗試此方法。 

 改善您的工作負載效能的主要考慮是了解延遲和輸送量要求，然後選擇可最佳化效能的網路通訊協定。 

 **考慮使用 TCP 的時機** 

 TCP 提供可靠的資料交付，並且可用於可靠性和保證資料交付很重要的工作負載元件間通訊。許多 Web 式應用程式仰賴 TCP 型通訊協定 (例如 HTTP 和 HTTPS) 開啟 TCP 通訊端，以在應用程式元件之間進行通訊。電子郵件和檔案資料傳輸是常見的應用程式，同樣會使用 TCP，因為 TCP 是應用程式元件之間簡單又可靠的傳輸機制。使用 TLS 與 TCP 會對通訊增加一些負擔，導致提高延遲和降低輸送量，但也會帶來安全上的優勢。負擔主要來自交握處理的增加負擔，需要數個往返才能完成。一旦交握完成，加密和解密資料的負擔相對小。 

 **考慮使用 UDP 的時機** 

 UDP 是無連線導向的通訊協定，因此適用於需要快速、有效傳輸的應用程式，例如日誌、監控和 VoIP 資料。此外，如果您有會回應來自大量用戶端之小型查詢的工作負載元件，請考慮使用 UDP，以確保最佳工作負載效能。資料包傳輸層安全性 (DTLS) 是等同於 Transport Layer Security (TLS) 的 UDP。使用 DTLS 與 UDP 時，負擔是來自加密和解密資料，因為交握處理已簡化。DTLS 也會對 UDP 封包增加小量負擔，因為 DTLS 包含額外欄位，可指出安全參數及偵測竄改。 

 **考慮使用 SRD 的時機** 

 Scalable Reliable Datagram (SRD) 是針對高輸送量工作負載最佳化的網路傳輸通訊協定，能夠在多個路徑之間負載平衡流量，並且快速從封包捨棄或連結失敗復原。因此 SRD 最適合用於需要運算節點之間高輸送量和低延遲通訊的高效能運算 (HPC) 工作負載。這可能包含平行處理任務，例如牽涉到在節點之間大量資料傳輸的模擬、建模和資料分析。 

### 實作步驟
<a name="implementation-steps"></a>

1.  使用 [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/) 和 [AWS Transfer Family](https://aws.amazon.com/aws-transfer-family/) 服務來改善您的線上檔案傳輸應用程式的輸送量。AWS Global Accelerator 服務可協助您在用戶端裝置與 AWS 上工作負載之間實現較低的延遲。使用 AWS Transfer Family，您可以使用 TCP 型通訊協定，例如 Secure Shell File Transfer Protocol (SFTP) 和 File Transfer Protocol over SSL (FTPS)，安全地擴展和管理與 AWS 儲存服務之間的檔案傳輸。 

1.  使用網路延遲來判斷 TCP 是否適合工作負載元件之間的通訊。如果您的用戶端應用程式與伺服器之間的網路延遲高，則 TCP 三向交握會耗費一些時間，因此會影響您的應用程式的回應能力。例如到第一個位元組的時間 (TTFB) 和往返時間 (RTT) 等指標可用來測量網路延遲。如果您的工作負載為使用者提供動態內容的服務，請考慮使用 [Amazon CloudFront](https://aws.amazon.com/cloudfront/)，這會建立與每個動態內容來源的持久性連線，移除會拖慢每個用戶端請求速度的連線設定時間。 

1.  使用 TLS 與 TCP 或 UDP 會由於加密和解密的影響，導致對您的工作負載增加延遲和減少輸送量。針對此類工作負載，請考慮 [Elastic Load Balancing](https://aws.amazon.com/elasticloadbalancing/) 上的 SSL/TLS 卸載，藉由允許負載平衡器處理 SSL/TLS 加密和解密程序而不是讓後端執行個體進行處理，來改善工作負載效能。這可協助減少後端執行個體上的 CPU 使用率，可以改善效能和增加容量。 

1.  使用 [Network Load Balancer (NLB)](https://aws.amazon.com/elasticloadbalancing/network-load-balancer/) 來部署依賴 UDP 通訊協定的服務，例如身分驗證和授權、記錄、DNS、IoT 和串流媒體，改善您的工作負載的效能和可靠性。NLB 會在多個目標之間分散傳入 UDP 流量，讓您水平地擴展工作負載、增加容量以及減少單一目標的負擔。 

1.  針對您的高效能運算 (HPC) 工作負載，請考慮使用 [彈性網路介面卡 (ENA) 快速版](https://aws.amazon.com/about-aws/whats-new/2022/11/elastic-network-adapter-ena-express-amazon-ec2-instances/) 功能，該功能使用 SRD 通訊協定來改善網路效能，方法是針對 EC2 執行個體之間的網路流量，提供較高的單一流量頻寬 (25Gbps) 和較低的尾端延遲 (99.9 百分位數)。 

1.  使用 [Application Load Balancer (ALB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 來路由和負載平衡工作負載元件之間的 gRPC (遠端程序呼叫) 流量或 gRPC 用戶端與服務之間的流量。gRPC 會使用 TCP 型 HTTP/2 通訊協定進行傳輸，並且提供如較輕網路足跡、壓縮、有效二進位序列化、支援多種語言和雙向串流的優點。 

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

 **相關文件：** 
+  [Amazon EBS - 最佳化的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) 
+  [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Linux 上的 EC2 增強型聯網](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+  [Windows 上的 EC2 增強型聯網](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+  [EC2 置放群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [在 Linux 執行個體上啟用搭配彈性網路轉接器 (ENA) 的增強型聯網](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+  [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [AWS 的聯網產品](https://aws.amazon.com/products/networking/) 
+  [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+  [轉換到 Amazon Route 53 中以延遲為基礎的路由](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+  [VPC 端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+  [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

 **相關影片：** 
+  [與 AWS 和混合 AWS 網路架構的連線](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+  [最佳化 Amazon EC2 執行個體的網路效能](https://www.youtube.com/watch?v=DWiwuYtIgu0) 

 **相關範例：** 
+  [AWS Transit Gateway 和可擴展的安全解決方案](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 聯網研討會](https://networking.workshop.aws/) 

# PERF04-BP06 根據網路需求選擇工作負載的位置
<a name="perf_networking_choose_workload_location_network_requirements"></a>

評估資源置放的選項以減少網路延遲和提高輸送量，藉由減少頁面載入和資料傳輸時間來提供最佳的使用者體驗。

 **常見的反模式：** 
+  您可以將所有工作負載資源合併到單一地理位置。 
+  您選擇的區域最接近您的位置，但不是最接近工作負載最終使用者。 

 **建立此最佳實務的優勢：** 使用者體驗因使用者與您的應用程式之間的延遲而大受影響。透過使用適當的 AWS 區域 和 AWS 私有全球網路，就可以減少延遲並為遠程使用者提供更優質的體驗。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 例如 Amazon EC2 執行個體的資源會放到下列各處的可用區域內： [AWS 區域](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)、[AWS Local Zones](https://aws.amazon.com/about-aws/global-infrastructure/localzones/)、[AWS Outposts](https://aws.amazon.com/outposts/)或 [AWS Wavelength](https://aws.amazon.com/wavelength/) 區域。此位置的選擇會影響來自特定使用者位置的網路延遲和輸送量。例如 [Amazon CloudFront](https://aws.amazon.com/cloudfront/) 和 [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/) 等邊緣服務也可以用來改善網路效能，方法是在邊緣節點快取內容，或透過 AWS 全球網路為使用者提供工作負載的最佳路徑。 

 Amazon EC2 提供了適用於聯網的置放群組。置放群組是執行個體的邏輯分組，可降低延遲。使用搭配支援的執行個體類型以及彈性網路轉接器 (ENA) 的置放群組，可讓工作負載加入低延遲、低抖動的 25 Gbps 網路。建議將置放群組用於受益於低網路延遲、高網路輸送量或兩者兼而有之的工作負載。 

 對延遲敏感的服務是在邊緣位置使用 AWS 全球網路交付，例如 [Amazon CloudFront](https://aws.amazon.com/cloudfront/)。這些節點通常可提供如內容交付網路 (CDN) 和網域名稱系統 (DNS) 之類的服務。透過將這些服務置於邊緣，工作負載就可以在低延遲的情況下回應內容或 DNS 解析的請求。這些服務還提供地理服務，例如內容的地理定位 (根據最終使用者的位置提供不同的內容)，或以延遲為基礎的路由，將最終使用者定向到最近區域的 (最小延遲)。 

 使用邊緣服務來減少延遲及啟用內容快取。為 DNS 和 HTTP/HTTPS 正確設定快取控制，以從這些方法中獲得最大的效益。 

### 實作步驟
<a name="implementation-steps"></a>
+  擷取與往返網路介面的 IP 流量有關的資訊。 
  + [ 使用 VPC Flow Logs 記錄 IP 流量 ](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)
  + [ 在 AWS Global Accelerator 中保留用戶端 IP 地址的方式 ](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.headers.html)
+  分析您工作負載中的網路存取模式，以識別使用者如何使用您的應用程式。 
  +  使用監控工具，例如 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 和 [AWS CloudTrail](https://aws.amazon.com/cloudtrail/)，收集關於網路活動的資料。 
  +  分析資料以識別網路存取模式。 
+  根據下列關鍵元素，為您的工作負載部署選取區域： 
  +  **資料所在位置：** 對於資料密集型應用程式 (例如大數據和機器學習)，應用程式碼執行時應盡可能接近資料。
  +  **使用者所在的位置**：對於面向使用者的應用程式，請選擇接近工作負載使用者的一或多個區域。
  +  **其他限制**：請考量成本和合規性等限制，相關說明請見 [為工作負載選取區域時應考慮的事項。](https://aws.amazon.com/blogs/architecture/what-to-consider-when-selecting-a-region-for-your-workloads/)
+  使用 [AWS Local Zones](https://aws.amazon.com/about-aws/global-infrastructure/localzones/) 執行如影片轉譯等工作負載。Local Zones 可讓您因運算和儲存資源更接近最終使用者而獲益。 
+  使用 [AWS Outposts](https://aws.amazon.com/outposts/) 適用於需要保持內部部署的工作負載，而您希望該工作負載能夠與 AWS 中的其他工作負載無縫執行。 
+  像是高解析度即時影片串流、高保真度音訊和擴增實境或虛擬實境 (AR/VR) 等應用程式，需要 5G 裝置的極低延遲。針對此類應用程式，請考慮 [AWS Wavelength](https://aws.amazon.com/wavelength/)。AWS Wavelength 會將 AWS 運算及儲存服務嵌入 5G 網路，為開發、部署和擴展極低延遲應用程式提供行動裝置邊緣運算基礎設施。 
+  使用本機快取或 [AWS 快取解決方案](https://aws.amazon.com/caching/aws-caching/) 取得常用的資產，以提升效能、減少資料移動，以及降低環境影響。     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_networking_choose_workload_location_network_requirements.html)
+  使用可協助您在更接近工作負載使用者的位置執行程式碼的服務，如下所示：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_networking_choose_workload_location_network_requirements.html)
+  某些應用程式需要藉由減少第一個位元組延遲和抖動並且增加輸送量，來獲得固定的進入點或較高的效能。這些應用程式可以從在邊緣節點提供靜態任播 IP 地址和 TCP 終止的網路服務獲益。[AWS Global Accelerator](https://aws.amazon.com/global-accelerator/) 可以提升您的應用程式效能高達 60%，並且提供多區域架構的快速容錯移轉。AWS Global Accelerator 提供靜態任播 IP 地址，可做為一或多個 AWS 區域 中託管應用程式的固定進入點。這些 IP 地址允許流量傳入盡可能靠近您的使用者的 AWS 全球網路。AWS Global Accelerator 會藉由建立用戶端與最接近用戶端之 AWS 邊緣節點之間的 TCP 連線，減少初始連線設定時間。請檢閱 AWS Global Accelerator 的使用情形，以改善您的 TCP/UDP 工作負載的效能，並且提供多區域架構的快速容錯移轉。 

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

 **相關的最佳實務：** 
+ [ COST07-BP02 根據成本實作區域 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_pricing_model_region_cost.html)
+ [ COST08-BP03 實作可降低資料傳輸成本的服務 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_data_transfer_implement_services.html)
+ [ REL10-BP01 將工作負載部署至多個位置 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_fault_isolation_multiaz_region_system.html)
+ [ REL10-BP02 為您的多位置部署選取適當位置 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_fault_isolation_select_location.html)
+ [ SUS01-BP01 根據業務需求和永續性目標選擇區域 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_region_a2.html)
+ [ SUS02-BP04 根據工作負載的聯網需求最佳化其地理位置 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_user_a5.html)
+ [ SUS04-BP07 盡可能減少跨網路的資料移動 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_data_a8.html)

 **相關文件：** 
+ [AWS 全球基礎設施 ](https://aws.amazon.com/about-aws/global-infrastructure/)
+ [AWS Local Zones 和 AWS Outposts，為您的邊緣工作負載選擇正確的技術 ](https://aws.amazon.com/blogs/compute/aws-local-zones-and-aws-outposts-choosing-the-right-technology-for-your-edge-workload/)
+ [ 置放群組 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
+ [AWS Local Zones ](https://aws.amazon.com/about-aws/global-infrastructure/localzones/)
+ [AWS Outposts](https://aws.amazon.com/outposts/)
+ [AWS Wavelength](https://aws.amazon.com/wavelength/)
+ [ Amazon CloudFront ](https://aws.amazon.com/cloudfront/)
+ [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/)
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/)
+ [AWS Site-to-Site VPN](https://aws.amazon.com/vpn/site-to-site-vpn/)
+ [ Amazon Route 53 ](https://aws.amazon.com/route53/)

 **相關影片：** 
+ [AWS Local Zones 解說影片 ](https://www.youtube.com/watch?v=JHt-D4_zh7w)
+ [AWS Outposts：概觀和運作方式 ](https://www.youtube.com/watch?v=ppG2FFB0mMQ)
+ [AWS re:Invent 2021 - AWS Outposts：在內部部署環境帶來 AWS 體驗 ](https://www.youtube.com/watch?v=FxVF6A22498)
+ [AWS re:Invent 2020：AWS Wavelength：在 5G 邊緣以極低延遲執行應用程式 ](https://www.youtube.com/watch?v=AQ-GbAFDvpM)
+ [AWS re:Invent 2022 - AWS Local Zones：為分散的邊緣建置應用程式 ](https://www.youtube.com/watch?v=bDnh_d-slhw)
+ [AWS re:Invent 2021 - 使用 Amazon CloudFront 建置低延遲網站 ](https://www.youtube.com/watch?v=9npcOZ1PP_c)
+ [AWS re:Invent 2022 - 使用 AWS Global Accelerator 改善效能與可用性 ](https://www.youtube.com/watch?v=s5sjsdDC0Lg)
+ [AWS re:Invent 2022 - 使用 AWS 建置您的全球廣域網路 ](https://www.youtube.com/watch?v=flBieylTwvI)
+ [AWS re:Invent 2020：使用 Amazon Route 53 進行全球流量管理 ](https://www.youtube.com/watch?v=E33dA6n9O7I)

 **相關範例：** 
+ [AWS Global Accelerator 研討會 ](https://catalog.us-east-1.prod.workshops.aws/workshops/effb1517-b193-4c59-8da5-ce2abdb0b656/en-US)
+ [ 使用邊緣功能處理重新撰寫和重新導向 ](https://catalog.us-east-1.prod.workshops.aws/workshops/814dcdac-c2ad-4386-98d5-27d37bb77766/en-US)

# PERF04-BP07 根據指標最佳化網路組態
<a name="perf_networking_optimize_network_configuration_based_on_metrics"></a>

 使用收集和分析的資料來做出有關最佳化網路組態的明智決策。 

 **常見的反模式：** 
+  您假設所有效能相關問題都與應用程式有關。 
+  您只能從靠近已部署工作負載的位置測試網路效能。 
+  您針對所有網路服務使用預設組態。 
+  您過度佈建網路資源來提供足夠的容量。 

 **建立此最佳實務的優勢：** 收集您的 AWS 網路的必要指標和實作網路監控工具，可讓您了解網路效能和最佳化網路組態。 

 **未建立此最佳實務時的曝險等級：** 低 

## 實作指引
<a name="implementation-guidance"></a>

 監控往返 VPC、子網路或網路界面的流量，對於了解如何利用 AWS 網路資源和如何最佳化網路組態而言非常重要。使用下列 AWS 聯網工具，即可進一步檢查流量用量、網路存取和日誌的相關資訊。 

### 實作步驟
<a name="implementation-steps"></a>
+  確定要收集的關鍵績效指標，例如延遲或封包遺失。AWS 提供了幾種工具，可幫助您收集這些指標。使用下列工具，即可進一步檢查流量用量、網路存取和日誌的相關資訊：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_networking_optimize_network_configuration_based_on_metrics.html)
+  使用 VPC 和 AWS Transit Gateway Flow Logs 找出最活躍的發言者和應用程式流量模式。 
+  評估並最佳化目前的網路架構，包括 VPC、子網路和路由。例如，您可以評估不同的 VPC 對等互連或 AWS Transit Gateway 如何協助您改善架構中的網路。 
+  評估網路中的路由路徑，以確認目的地之間一律使用最短路徑。Network Access Analyzer 可幫助您實現這點。 

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

 **相關文件：** 
+  [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 
+  [公有 DNS 查詢記錄](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html) 
+  [什麼是 IPAM？](https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html) 
+  [什麼是 Reachability Analyzer？](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 
+  [什麼是 Network Access Analyzer？](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/what-is-network-access-analyzer.html) 
+  [您的 VPC 的 CloudWatch 指標](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cloudwatch.html) 
+  [使用 Apache Parquet 格式的 VPC Flow Logs 針對網路分析最佳化效能和降低成本 ](https://aws.amazon.com/blogs/big-data/optimize-performance-and-reduce-costs-for-network-analytics-with-vpc-flow-logs-in-apache-parquet-format/) 
+  [使用 Amazon CloudWatch 指標監控您的全球和核心網路](https://docs.aws.amazon.com/vpc/latest/tgwnm/monitoring-cloudwatch-metrics.html) 
+  [持續監控網路流量和資源](https://docs.aws.amazon.com/whitepapers/latest/security-best-practices-for-manufacturing-ot/continuously-monitor-network-traffic-and-resources.html) 

 **相關影片：** 
+  [搭配 AWS Well-Architected Framework 的聯網最佳實務和秘訣 ](https://www.youtube.com/watch?v=wOMNpG49BeM) 
+  [監控網路流量並對其進行疑難排解 ](https://www.youtube.com/watch?v=Ed09ReWRQXc) 

 **相關範例：** 
+  [AWS 聯網研討會](https://networking.workshop.aws/) 
+  [AWS 網路監控](https://github.com/aws-samples/monitor-vpc-network-patterns) 

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

# PERF 5.您的組織實務和文化如何促進工作負載的效能達成效率？
<a name="perf-05"></a>

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

**Topics**
+ [PERF05-BP01 建立關鍵績效指標 (KPI) 以衡量工作負載健康狀態和效能](perf_process_culture_establish_key_performance_indicators.md)
+ [PERF05-BP02 使用監控解決方案了解效能扮演關鍵作用的領域](perf_process_culture_use_monitoring_solutions.md)
+ [PERF05-BP03 定義提高工作負載效能的程序](perf_process_culture_workload_performance.md)
+ [PERF05-BP04 對工作負載執行負載測試](perf_process_culture_load_test.md)
+ [PERF05-BP05 使用自動化主動修復效能相關問題](perf_process_culture_automation_remediate_issues.md)
+ [PERF05-BP06 即時更新工作負載和服務的狀態](perf_process_culture_keep_workload_and_services_up_to_date.md)
+ [PERF05-BP07 定期檢閱指標](perf_process_culture_review_metrics.md)

# PERF05-BP01 建立關鍵績效指標 (KPI) 以衡量工作負載健康狀態和效能
<a name="perf_process_culture_establish_key_performance_indicators"></a>

 找出定量和定性衡量工作負載效能的 KPI。KPI 可協助您衡量與業務目標相關之工作負載的健康狀態和效能。 

 **常見的反模式：** 
+  您只監控系統層級指標，以洞悉工作負載，但不了解對這些指標的業務影響。 
+  您假設 KPI 已發佈，並作為標準指標資料分享。 
+  您未定義可量化且可衡量的 KPI。 
+  您沒有將 KPI 與業務目標或策略保持一致。 

 **建立此最佳實務的優勢：** 找出代表工作負載健康狀態和效能的特定 KPI，有助團隊以一致的標準排定優先事項並定義成功的業務成果。與所有部門分享這些指標，可提供對閾值、期望和業務影響的可見性和一致性。 

 **未建立此最佳實務時的曝險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 KPI 可讓業務和工程團隊以一致的標準衡量目標和策略，以及將這些因素結合以產生商業成果的方式。例如，網站工作負載可能使用頁面載入時間，作為整體效能的指示。此指標將是衡量最終使用者體驗的多個資料點之一。除了找出頁面載入時間閾值外，您還應該記錄未符合理想效能時預期的成果或業務風險。較長的頁面載入時間會直接影響最終使用者，降低他們的使用者體驗評級，並可能導致客戶流失。當您定義 KPI 閾值時，請同時結合業界基準和最終使用者期望。例如，如果目前業界基準是網頁在兩秒內載入，但最終使用者期望網頁在一秒內載入，則您在建立 KPI 時應將這兩個資料點都列入考慮。 

 團隊必須使用即時精密資料和歷史資料作為參考，來評估工作負載 KPI，並建立儀表板，針對 KPI 資料執行指標數學，以衍生營運和使用率洞察。KPI 應該加以記錄，並包含支援業務目標和策略的 KPI 和閾值，以及對應到受監控的指標。當業務目標、策略或最終使用者要求變更時，應該重新檢視 KPI。   

## 實作步驟
<a name="implementation-steps"></a>

1.  找出並記錄關鍵業務利害關係人。 

1.  與利害關係人合作，以定義和記錄工作負載的目標。 

1.  檢閱業界最佳實務，以找出符合您工作負載目標的相關 KPI。 

1.  使用業界最佳實務和工作負載目標，為工作負載 KPI 設立目標。使用此資訊，來設定嚴重性或警示層級的 KPI 閾值。 

1.  找出並記錄未符合 KPI 時的風險和影響。 

1.  找出並記錄可以幫助您建立 KPI 的指標。 

1.  使用監控工具，例如 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 或者 [AWS Config](https://aws.amazon.com/config/) 以收集指標和衡量 KPI。 

1.  使用儀表板將 KPI 視覺化並與利害關係人溝通。 

1.  定期檢閱和分析指標，以找出需要改善的工作負載領域。 

1.  當業務目標或工作負載效能變更時，請重新檢視 KPI。 

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

 **相關文件：** 
+  [CloudWatch 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [監控、記錄和效能 AWS Partner](https://aws.amazon.com/devops/partner-solutions/#_Monitoring.2C_Logging.2C_and_Performance) 
+  [X-Ray 文件](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [使用 Amazon CloudWatch 儀表板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html?ref=wellarchitected) 
+  [Quick KPI](https://docs.aws.amazon.com/quicksight/latest/user/kpi.html) 

 **相關影片：** 
+  [AWS re:Invent 2019：擴充至首個 1,000 萬名使用者](https://www.youtube.com/watch?v=kKjm4ehYiMs&ref=wellarchitected) 
+  [突破混沌的難題：掌握運作相關的情況和洞見](https://www.youtube.com/watch?v=nLYGbotqHd0&ref=wellarchitected) 
+  [制定監控計劃](https://www.youtube.com/watch?v=OMmiGETJpfU&ref=wellarchitected) 

 **相關範例：** 
+  [使用 Quick 建立儀表板](https://github.com/aws-samples/amazon-quicksight-sdk-proserve) 

# PERF05-BP02 使用監控解決方案了解效能扮演關鍵作用的領域
<a name="perf_process_culture_use_monitoring_solutions"></a>

 了解並找出提高工作負載效能將對效率或客戶體驗產生正面影響的地方。例如，具有大量客戶互動的網站可受益於邊緣服務的使用，因為這樣可以將內容交付移至更接近客戶的地方。 

 **常見的反模式：** 
+  您假設標準運算指標 (例如 CPU 使用率或記憶體壓力) 足以找出效能問題。 
+  您只會使用所選監控軟體記錄的預設指標。 
+  您只會在有問題時審查指標。 

 **建立此最佳實務的優勢：** 了解效能的關鍵領域，有助於工作負載擁有者監控 KPI 和優先處理具有高影響力的待改善之處。 

 **若未建立此最佳實務，暴露的風險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 設置端到端追蹤，以找出流量模式、延遲和關鍵的效能區域。監控資料存取模式是否有緩慢查詢或分段和分區不佳的資料。使用負載測試或監控來找出工作負載受限面向。 

 透過了解架構、流量模式和資料存取模式，來提高效能效率，並確定延遲和處理時間。找出隨著工作負載的成長，可能會影響客戶體驗的潛在瓶頸。當您已調查這些面向時，請審視自己可以部署哪個解決方案，來消除這些效能疑慮。 

### 實作步驟
<a name="implementation-steps"></a>

1.  設置端到端監控，來擷取所有工作負載組成部分和指標。以下是 AWS 上的監控解決方案的範例。     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-10-03/framework/perf_process_culture_use_monitoring_solutions.html)

1.  執行測試，來產生指標、確定流量模式、瓶頸和關鍵效能區域。以下是如何執行測試的幾個範例： 
   +  設定 [CloudWatch Synthetic Canaries](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 以程式設計方式使用 Linux Cron 任務或評分運算式，模擬以瀏覽器為基礎的使用者活動，以產生長期一致的指標。 
   +  使用 [AWS 分散式負載測試](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 解決方案，來產生尖峰流量或以預期成長速率測試工作負載。 

1.  評估指標和遙測，來找出關鍵的效能領域。與團隊檢視這些領域，討論監控和解決方案，來避免瓶頸。 

1.  進行效能改善的實驗，並透過資料來衡量這些變更。例如，您可以使用 [CloudWatch Evidently](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently.html) 測試對工作負載的新改進和效能影響。 

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

 **相關文件：** 
+  [Amazon 建置者資料中心](https://aws.amazon.com/builders-library) 
+  [X-Ray 文件](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/) 

 **相關影片：** 
+  [Amazon 建置者資料中心：25 年 Amazon 卓越營運](https://www.youtube.com/watch?v=DSRhgBd_gtw) 
+  [使用 Amazon CloudWatch Synthetics 進行應用程式的視覺監控](https://www.youtube.com/watch?v=_PCs-ucZz7E) 

 **相關範例：** 
+  [使用 Amazon CloudWatch Synthetics 測量頁面載入時間](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Amazon CloudWatch RUM Web 用戶端](https://github.com/aws-observability/aws-rum-web) 
+  [X-Ray SDK for Node.js](https://github.com/aws/aws-xray-sdk-node) 
+  [X-Ray SDK for Python](https://github.com/aws/aws-xray-sdk-python) 
+  [X-Ray SDK for Java](https://github.com/aws/aws-xray-sdk-java) 
+  [X-Ray SDK for .Net](https://github.com/aws/aws-xray-sdk-dotnet) 
+  [X-Ray SDK for Ruby](https://github.com/aws/aws-xray-sdk-ruby) 
+  [X-Ray 常駐程式](https://github.com/aws/aws-xray-daemon) 
+  [AWS 上的分散式負載測試](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 

# PERF05-BP03 定義提高工作負載效能的程序
<a name="perf_process_culture_workload_performance"></a>

 定義一個程序，以在新的服務、設計模式、資源類型和組態可用時對其進行評估。例如，對新的執行個體方案執行現有的效能測試，以判斷其是否可能改善工作負載。 

 **常見的反模式：** 
+  您假設目前的架構是靜態的，且不會隨著時間而更新。 
+  您會隨時間導入架構變更，而且無須指標佐證。 

 **建立此最佳實務的優勢：** 定義進行架構變更的程序後，您就能使用收集的資料，以隨著時間影響工作負載。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 工作負載的效能有一些關鍵限制。記錄這些內容，以便您知道哪種創新可以改善工作負載的效能。當新服務或技術可用時，請使用此資訊來找出緩解限制或瓶頸的方法。 

 找出工作負載的關鍵效能限制。記錄工作負載的效能限制，讓您知道哪些類型的創新可能會改善工作負載的效能。 

### 實作步驟
<a name="implementation-steps"></a>
+  找出工作負載效能 KPI 以設立工作負載基準 (步驟請參見 [PERF05-BP01 建立關鍵績效指標 (KPI) 以衡量工作負載健康狀態和效能](perf_process_culture_establish_key_performance_indicators.md) )，以設立工作負載基準。 
+  使用 [AWS 可觀測性工具](https://docs.aws.amazon.com/wellarchitected/latest/management-and-governance-guide/aws-observability-tools.html) ，以收集效能指標並衡量 KPI。 
+  執行深入分析，以找出工作負載中效能不佳的區域 (例如組態和應用程式程式碼)，步驟請參閱 [PERF05-BP02 使用監控解決方案了解效能扮演關鍵作用的領域](perf_process_culture_use_monitoring_solutions.md)。 
+  使用分析和效能工具，來找出效能最佳化策略。 
+  使用沙盒或生產前環境，來確認策略的有效性。 
+  實作生產中的變更，並持續監控工作負載的效能。 
+  記錄改善項目並與利害關係人溝通這些事項。 

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

 **相關文件：** 
+  [AWS 部落格](https://aws.amazon.com/blogs/) 
+  [AWS 最新消息](https://aws.amazon.com/new/?ref=wellarchitected) 

 **相關影片：** 
+  [AWS 活動 YouTube 頻道](https://www.youtube.com/channel/UCdoadna9HFHsxXWhafhNvKw) 
+  [AWS 線上技術會談 YouTube 頻道](https://www.youtube.com/user/AWSwebinars) 
+  [Amazon Web Services YouTube 頻道](https://www.youtube.com/channel/UCd6MoB9NC6uYN2grvUNT-Zg) 

 **相關範例：** 
+  [AWS Github](https://github.com/aws) 
+  [AWS Skill Builder](https://explore.skillbuilder.aws/learn) 

# PERF05-BP04 對工作負載執行負載測試
<a name="perf_process_culture_load_test"></a>

 對工作負載執行負載測試，以確認可以處理生產負載並找出任何效能瓶頸。 

 **常見的反模式：** 
+  您載入測試工作負載的個別部分，而非整個工作負載。 
+  您在與生產環境不同的基礎設施上載入測試。 
+  您只對預期的 (而非超標) 負載進行負載測試，以協助預測未來可能發生問題的位置。 
+  您可以直接執行負載測試，而無需諮詢 [Amazon EC2 測試政策](https://aws.amazon.com/ec2/testing/) 並提交模擬事件提交表格。這會導致測試無法執行，因為它看起來像拒絕服務事件。 

 **建立此最佳實務的優勢：** 在負載測試下測量效能時，會顯示負載增加時會受到影響的位置。這可在變更影響工作負載之前，讓您先預測所需的變更。 

 **未建立此最佳實務時的曝險等級：** 低 

## 實作指引
<a name="implementation-guidance"></a>

 雲端中的負載測試是在實際條件下，以預期的使用者負載來衡量雲端工作負載效能的程序。此程序包括佈建類似生產環境的雲端環境、使用負載測試工具產生負載，以及分析指標，以便評估您的工作負載處理實際負載的能力。必須使用生產資料的綜合或處理過的版本 (移除敏感或可識別身分的資訊) 執行負載測試。在交付管道中自動執行負載測試，並將結果與預先定義的 KPI 和閾值進行比較。此程序可幫助您繼續實現所需的效能。 

### 實作步驟
<a name="implementation-steps"></a>
+  根據生產環境設定測試環境。您可以使用 AWS 服務執行生產規模的環境，進而測試架構。 
+  選擇並設定適合您工作負載的負載測試工具。 
+  定義負載測試方案和參數 (如測試持續時間和使用者數量)。 
+  大規模執行測試方案。利用 AWS 雲端 測試工作負載，以發現無法擴展的地方或是否以非線性方式擴展。例如，使用 Spot 執行個體以低成本產生負載，並在生產中遇到瓶頸之前發現瓶頸。 
+  監控和記錄效能指標 (例如輸送量和回應時間)。Amazon CloudWatch 可以收集架構中各個資源的指標。您還可以收集和發佈自訂指標以顯示業務或衍生指標。 
+  分析結果以找出效能瓶頸和需要改善的區域。 
+  記錄和報告負載測試程序和結果。 

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

 **相關文件：** 
+  [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 
+  [AWS 上的分散式負載測試](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/welcome.html) 

 **相關影片：** 
+  [使用 AWS 解決方案解決問題：分散式負載測試](https://www.youtube.com/watch?v=Y-2rk0sSyOM) 
+  [透過 Amazon CloudWatch RUM 最佳化應用程式](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Amazon CloudWatch Synthetics 的示範](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **相關範例：** 
+  [AWS 上的分散式負載測試](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 

# PERF05-BP05 使用自動化主動修復效能相關問題
<a name="perf_process_culture_automation_remediate_issues"></a>

 使用關鍵績效指標 (KPI) 搭配監控和提醒系統，主動處理效能相關的問題。 

 **常見的反模式：** 
+  您只讓操作人員有能力對工作負載進行操作變更。 
+  您讓所有警示篩選到操作團隊，無須主動修復。 

 **建立此最佳實務的優勢：** 主動修復警示動作能夠讓支援人員專注在無法自動採取行動的項目上。有助操作人員處理所有警示，不會不堪負荷，而能專注在重要警示。 

 **未建立此最佳實務時的曝險等級：** 低 

## 實作指引
<a name="implementation-guidance"></a>

 使用警示觸發自動化動作，盡可能修復問題。如果無法自動回應，則將警示上報給能夠回應的人員。例如，您可能有可以預測關鍵績效指標 (KPI) 預期值，且會在超過特定閾值時發出警示的系統，或是在 KPI 超出預期值時可以自動停止或回復部署的工具。 

 實作可在工作負載執行時提供效能可見度的程序。建置監控儀表板並建立效能預期的基準規範，以確定工作負載是否以最佳狀態執行。 

### 實作步驟
<a name="implementation-steps"></a>
+  找出並了解可自動修復的效能問題。使用 AWS 監控解決方案 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 或 AWS X-Ray 等解決方案，以協助您更完整了解問題的根本原因。 
+  制定可用來自動修正問題的逐步修復計畫和程序。 
+  設定觸發程式以自動起始修復程序。例如，您可以定義觸發程式，在執行個體達到特定 CPU 使用率閾值時自動重新啟動執行個體。 
+  使用 AWS 服務和技術，自動化修復程序。例如， [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 提供安全且可擴展的方式，來自動化修復程序。 
+  在生產前環境中測試自動修復程序。 
+  測試後，在生產環境中實作修復程序，並持續監控以找出需要改善的領域。 

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

 **相關文件：** 
+  [CloudWatch 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [監控、記錄和效能 AWS Partner Network 合作夥伴](https://aws.amazon.com/devops/partner-solutions/#_Monitoring.2C_Logging.2C_and_Performance) 
+  [X-Ray 文件](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [使用 CloudWatch 中的警示和警示動作](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/cw-example-using-alarm-actions.html) 

 **相關影片：** 
+  [以智慧的方式自動化雲端操作](https://www.youtube.com/watch?v=m0S8eAF0l54) 
+  [在 AWS 環境中大規模設定控制項](https://www.youtube.com/watch?v=NkE9_okfPG8) 
+  [使用 AWS，自動化修補程式管理和合規性](https://www.youtube.com/watch?v=gL3baXQJvc0) 
+  [Amazon 如何使用更完善的指標來改善網站效能](https://www.youtube.com/watch?v=_uaaCiyJCFA&ab_channel=AWSEvents) 

 **相關範例：** 
+  [CloudWatch Logs 自訂警示](https://github.com/awslabs/cloudwatch-logs-customize-alarms) 

# PERF05-BP06 即時更新工作負載和服務的狀態
<a name="perf_process_culture_keep_workload_and_services_up_to_date"></a>

 掌握最新的雲端服務和特徵，以採用高效功能、解決問題，並改善工作負載的整體效能效率。 

 **常見的反模式：** 
+  您假設目前的架構是靜態的，且不會隨著時間而更新。 
+  您沒有任何系統或定期規律可評估更新的軟體與套件是否與您的工作負載相容。 

 **建立此最佳實務的優勢：** 透過建立程序掌握新服務和供應項目的最新資訊，您就可以採用新特徵和功能、解決問題並改善工作負載效能。 

 **未建立此最佳實務時的曝險等級：** 低 

## 實作指引
<a name="implementation-guidance"></a>

 當新服務、設計模式和產品特徵推出時，評估提升效能的方法。透過評估、內部討論或外部分析，確定哪些方法可以提高工作負載效能或效率。定義程序來評估與工作負載相關的更新、新功能和服務。例如，建立新技術的使用概念證明或與內部小組協商。嘗試新的想法或服務時，執行效能測試以衡量其對工作負載效能的影響。 

## 實作步驟
<a name="implementation-steps"></a>
+  清查工作負載軟體和架構，並識別需要更新的元件。 
+  找出與工作負載組成部分相關的新聞和更新來源。例如，您可以訂閱 [AWS 部落格的最新消息](https://aws.amazon.com/new/) 了解與其工作負載組成部分相符的產品。您可以訂閱 RSS 摘要或管理 [電子郵件訂閱](https://pages.awscloud.com/communication-preferences.html)。 
+  定義排程以評估工作負載的新服務和特徵。 
  +  您可以使用 [AWS Systems Manager 清查](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html) ，從您的 Amazon EC2 執行個體收集作業系統 (OS)、應用程式和執行個體中繼資料，並快速了解哪些執行個體正在執行您的軟體政策所需的軟體與組態，以及哪些執行個體需要更新。 
+  了解如何更新工作負載的元件。利用雲端的靈活性快速測試新特徵對工作負載有何改善，藉以提高效能效率。 
+  使用更新程序自動化，以減少部署新功能的工作量，並避免手動程序引起的錯誤。 
  +  您可以使用 [CI/CD](https://aws.amazon.com/blogs/devops/complete-ci-cd-with-aws-codecommit-aws-codebuild-aws-codedeploy-and-aws-codepipeline/) 自動更新 AMI、容器映像，以及其他與雲端應用程式有關的成品。 
  +  您可以使用工具，例如 [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 之類的工具自動執行系統更新的程序，並使用 [AWS Systems Manager 維護時段來排程活動](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html)。 
+  記錄您在評估更新和新服務的過程。向擁有者提供所需的時間和空間，來研究、測試、試驗和驗證更新及新服務。回顧所記錄的業務需求和 KPI，來協助排定哪個更新將帶來正面業務影響的優先順序。 

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

 **相關文件：** 
+  [AWS 部落格](https://aws.amazon.com/blogs/) 
+  [AWS 最新消息](https://aws.amazon.com/new/?ref=wellarchitected) 

 **相關影片：** 
+  [AWS 活動 YouTube 頻道](https://www.youtube.com/channel/UCdoadna9HFHsxXWhafhNvKw) 
+  [AWS 線上技術會談 YouTube 頻道](https://www.youtube.com/user/AWSwebinars) 
+  [Amazon Web Services YouTube 頻道](https://www.youtube.com/channel/UCd6MoB9NC6uYN2grvUNT-Zg) 

 **相關範例：** 
+  [Well-Architected 實驗室 - 庫存和修補程式管理](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/) 
+  [實驗室：AWS Systems Manager](https://mng.workshop.aws/ssm.html) 

# PERF05-BP07 定期檢閱指標
<a name="perf_process_culture_review_metrics"></a>

 作為日常維護或對事件或事故的回應，檢閱所收集的指標。透過這些審查來識別哪些指標是解決問題的關鍵，以及哪些其他指標 (如果被追蹤) 將有助找出、解決或預防問題。 

 **常見的反模式：** 
+  您讓指標長時間持續處於警示狀態。 
+  您建立自動化系統無法採取行動的警示。 

 **建立此最佳實務的優勢：** 持續審查正在收集的指標，以確認指標正確識別、處理或防止問題發生。如果讓指標長時間持續處於警示狀態，指標也會變得過時。 

 **未建立此最佳實務時的曝險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 不斷改進指標收集和監控。作為對事故或事件的回應的一部分，評估哪些指標有助於解決問題，哪些指標可以幫助解決問題但未被追蹤。使用此方法提高所收集指標的品質，從而防止事故發生或更快地解決將來的事故。 

 作為對事故或事件的回應的一部分，評估哪些指標有助於解決問題，哪些指標可以幫助解決問題但未被追蹤。使用此方法提高所收集指標的品質，進而防止事故發生或更快地解決將來的事故。 

### 實作步驟
<a name="implementation-steps"></a>

1. 定義與您的工作負載目標一致的關鍵效能指標以利進行監控。

1. 設定各個測量的基準和期待值。

1. 設定規律 (例如每週或每月一次) 以檢閱重要指標。

1. 每次審查期間都會評估趨勢，以及與基準值的偏差。查看是否有任何效能瓶頸或異常情況。

1. 對於已確認的問題，請展開深入根本原因分析，以了解問題背後的主要原因。

1. 記錄您的調查結果，並使用策略來處理已確認的問題和瓶頸。

1. 持續評估並改善指標檢閱過程。

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

 **相關文件：** 
+  [CloudWatch 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [使用 CloudWatch Agent 從 Amazon EC2 執行個體和內部部署伺服器收集指標和日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html?ref=wellarchitected) 
+  [監控、記錄和效能 AWS Partner Network 合作夥伴](https://aws.amazon.com/devops/partner-solutions/#_Monitoring.2C_Logging.2C_and_Performance) 
+  [X-Ray 文件](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 

 **相關影片：** 
+  [在 AWS 環境中大規模設定控制項](https://www.youtube.com/watch?v=NkE9_okfPG8) 
+  [Amazon 如何使用更完善的指標來改善網站效能](https://www.youtube.com/watch?v=_uaaCiyJCFA&ab_channel=AWSEvents) 

 **相關範例：** 
+  [使用 Quick 建立儀表板](https://github.com/aws-samples/amazon-quicksight-sdk-proserve) 
+  [Level 100：使用 CloudWatch 儀表板進行監控](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 