

# 性能效率
<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>

 针对特定工作负载的最佳解决方案各不相同，而且解决方案通常会结合多种方法。架构完善的工作负载会使用多种解决方案，并且允许使用各种不同的功能来提高性能。 

**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 Architecture Center](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 解决方案库](https://aws.amazon.com/solutions/) 
+  [AWS Knowledge Center](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 开发工具包示例](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 Architecture Center](https://aws.amazon.com/architecture/) 
+  [AWS 解决方案库](https://aws.amazon.com/solutions/) 
+  [AWS Knowledge Center](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 开发工具包示例](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/) 来确定工作负载中的关键成本驱动因素。 
+  使用 [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 Cost Anomaly Detection](https://aws.amazon.com/aws-cost-management/aws-cost-anomaly-detection/) 自动进行成本异常检测和根本原因分析。 

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

 **相关文档：** 
+  [Cost Intelligence Dashboard 的详细概述](https://aws.amazon.com/blogs/aws-cloud-financial-management/a-detailed-overview-of-the-cost-intelligence-dashboard/) 
+  [AWS Architecture Center](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 解决方案库](https://aws.amazon.com/solutions/) 
+  [AWS Knowledge Center](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **相关视频：** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [Optimize performance and cost for your AWS compute](https://www.youtube.com/watch?v=zt6jYJLK8sg&ref=wellarchitected) 

 **相关示例：** 
+  [AWS 示例](https://github.com/aws-samples) 
+  [AWS 开发工具包示例](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 Builders' Library](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) 
+ [ Understand resiliency patterns and trade-offs to architect efficiently in the cloud ](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) 
+  [Optimize applications through 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 Architecture Center](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 解决方案库](https://aws.amazon.com/solutions/) 
+  [AWS Knowledge Center](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 开发工具包示例](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 Architecture Center](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 解决方案库](https://aws.amazon.com/solutions/) 
+  [AWS Knowledge Center](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/) 
+  [Optimize applications through 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 开发工具包示例](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 Solution Architect、 [AWS Architecture Center](https://aws.amazon.com/architecture/)和 [AWS Partner Network](https://aws.amazon.com/partners/)，从而为工作负载选择合适的架构。 
+  定义吞吐量和响应时间等性能指标，以便于您评估工作负载的性能。 
+  进行试验并使用定义的指标来验证所选架构的性能。 
+  持续监控并根据需要进行调整，从而使架构保持最佳性能。 
+  记录所选架构和决策，作为将来更新和学习的参考。 
+  根据经验、新技术以及可表明当前方法需要进行更改或存在问题的指标，不断审查和更新架构选择方法。 

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

 **相关文档：** 
+  [AWS 解决方案库](https://aws.amazon.com/solutions/) 
+  [AWS Knowledge Center](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 开发工具包示例](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_cn/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 Worker 节点 ](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/) 
+  [Optimize performance and cost for your AWS compute ](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Amazon EC2 foundations](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [Deploy ML models for inference at high performance and low cost](https://www.youtube.com/watch?v=4FqHt5bmS2o) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2](https://www.youtube.com/watch?v=_dvh4P2FVbw&ref=wellarchitected) 

 **相关示例：** 
+  [将 Web 应用程序迁移到容器](https://application-migration-with-aws.workshop.aws/en/container-migration.html) 
+  [运行无服务器 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_cn/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 Worker 节点 ](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 foundations](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [Optimize performance and cost for your AWS compute](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.  [AWS Distro for OpenTelemetry](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 Collector](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 代理从 Amazon EC2 实例和本地服务器收集指标和日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html?ref=wellarchitected) 
+  [访问 AWS Lambda 的 Amazon CloudWatch Logs](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/) 

 **相关视频：** 
+  [Application Performance Management on AWS](https://www.youtube.com/watch?v=5T4stR-HFas&ref=wellarchitected) 

 **相关示例：** 
+  [第 100 级：使用 CloudWatch 控制面板进行监控](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [第 100 级：使用 CloudWatch 控制面板监控 Windows EC2 实例](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_windows_ec2_cloudwatch/) 
+  [第 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 使用率之间的关系。根据这些数据选择最符合您的工作负载情况和性能目标的资源。 
+  使用 AWS 监控工具（如 Amazon CloudWatch）监控资源使用情况。 
+  为计算资源选择合适的配置。 
  +  对于临时工作负载，请评估 [实例 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 Worker 节点](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 foundations](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Deploy ML models for inference at high performance and low cost](https://www.youtube.com/watch?v=4FqHt5bmS2o) 
+  [Optimize performance and cost for your AWS compute](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) 
+  [Simplifying Data Processing to Enhance Innovation with Serverless Tools](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_cn/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) ）的配置来满足需求。 
+  验证扩展指标是否与正在部署的工作负载的特征相匹配。如果您正在部署一个视频转码应用程序，CPU 利用率预计为 100%，并且不应将此作为您的主要指标。改用转码作业队列的深度。如果需要，您可以为您的扩缩策略使用一个 [自定义指标](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 Worker 节点](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 foundations](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Optimize performance and cost for your AWS compute](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](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/)。Inf2 等 AWS Inferentia 实例 [与同类 Amazon EC2 实例相比，性能功耗比提升了多达 50%](https://aws.amazon.com/machine-learning/inferentia/)。 
+  收集加速型计算实例的使用情况指标。例如，您可以使用 CloudWatch 代理，为 GPU 收集各种指标，例如 `utilization_gpu` 和 `utilization_memory` ，如 [使用 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) 
  +  [深度学习 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、动态）以及可用性与持久性限制等因素。架构完善的工作负载使用专门构建的数据存储，这些存储允许使用不同的功能来提高性能。 

**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_cn/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_cn/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)

 **相关视频：** 
+  [Deep dive on Amazon EBS](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [Optimize your storage performance with Amazon S3](https://www.youtube.com/watch?v=54AhwfME6wI) 
+ [Modernize apps with purpose-built databases](https://www.youtube.com/watch?v=V-DiplATdi0)
+ [ Amazon Aurora storage demystified: How it all works ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+ [ Amazon DynamoDB deep dive: Advanced design patterns ](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) 
+  [Optimize Data Pattern using Amazon Redshift Data Sharing](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) Replication Demo](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_cn/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) 

 **相关视频：** 
+  [Deep dive on Amazon EBS](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [Optimize your storage performance with Amazon S3](https://www.youtube.com/watch?v=54AhwfME6wI) 
+ [Modernize apps with purpose-built databases](https://www.youtube.com/watch?v=V-DiplATdi0)
+ [ Amazon Aurora storage demystified: How it all works ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+ [ Amazon DynamoDB deep dive: Advanced design patterns ](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 DB 上的参数](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 DevOps Guru for Amazon RDS](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 purpose-built databases](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Amazon Aurora storage demystified: How it all works](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+  [Amazon DynamoDB deep dive: Advanced design patterns](https://www.youtube.com/watch?v=6yqfmXiZTlM) 
+  [Best Practices for Monitoring Redis Workloads on Amazon ElastiCache](https://www.youtube.com/watch?v=c-hTMLN35BY&ab_channel=AWSOnlineTechTalks) 

 **相关示例：** 
+  [第 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) 

 **相关视频：** 
+  [Optimize Data Pattern using Amazon Redshift Data Sharing](https://wellarchitectedlabs.com/sustainability/300_labs/300_optimize_data_pattern_using_redshift_data_sharing/) 
+  [Optimize Amazon Athena Queries with New Query Analysis Tools ](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) 
   +  [Monitoring best practices with Amazon ElastiCache (Redis OSS) using Amazon CloudWatch](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) 
+  [Monitoring best practices with Amazon ElastiCache (Redis OSS) using Amazon CloudWatch](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) 
+  [《Performance at Scale with 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 Learning Path](https://pages.awscloud.com/GLB-WBNR-AWS-OTT-2021_LP_0003-DAT_AmazonElastiCache.html) 
+  [Design for success with Amazon ElastiCache best practices](https://youtu.be/_4SkEy6r-C4) 

 **相关示例：** 
+  [Boosting MySQL database performance with Amazon ElastiCache (Redis OSS)](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_cn/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 流日志](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_cn/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 流日志](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 连接通过互联网建立安全连接。在以下情况下可使用 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 环境的专用连接，速度从 50Mbps 到 100Gbps 不等。这样一来，延迟得到管理和控制，并且拥有预置带宽，让您的工作负载能够高效地连接到其他环境。使用 AWS Direct Connect 合作伙伴，您可以从多个环境获得端到端连接，从而提供具有一致性能的扩展网络。AWS 使用原生 100Gbps、链接聚合组（LAG）或 BGP 同等成本多路径（ECMP）提供扩展 Direct Connect 连接带宽。 

   1.  AWS [Site-to-Site VPN](https://aws.amazon.com/vpn/) 提供支持互联网协议安全性（IPsec）的托管 VPN 服务。创建 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](https://aws.amazon.com/directconnect/)的 IPsec VPN 连接，请考虑使用专用 IP VPN，来提高安全性并实现分段。 [AWS 点对点专用 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_cn/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) 
+  [Client 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 或 WebSocket）、目标类型（如实例、容器或无服务器）、应用程序要求（如长时间运行的连接、用户身份验证或粘性）和置放（如区域、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 保持活动（仅限 ALB）。借助此功能，在保持活动超时到期之前，负载均衡器可以重复使用后端连接，从而改进 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` for 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) 

 **相关视频：** 
+  [AWSre: 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 会增加一些通信开销，进而会导致延迟增加和吞吐量降低，但它也有安全方面的优势。该开销主要来自握手过程（需要多次往返才能完成）的额外开销。握手完成后，加密和解密数据的开销相对较小。 

 **何时考虑使用 UDP** 

 UDP 是一种面向无连接的协议，因此适用于需要快速、高效传输的应用，例如日志、监控和 VoIP 数据。此外，如果您的工作负载组件要响应来自大量客户端的小型查询，以确保工作负载实现最佳性能，则可考虑使用 UDP。数据报传输层安全性（DTLS）是传输层安全性（TLS）的 UDP 等效项。在 UDP 上使用 DTLS 时，因为简化了握手过程，所以开销来自加密和解密数据。因为 DTLS 包括额外的字段，用于指明安全性参数和检测篡改，所以它也会给 UDP 数据包增加少量的开销。 

 **何时考虑使用 SRD** 

 可扩展的可靠数据报（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 的协议 [安全外壳文件传输协议（SFTP）和基于 SSL 的文件传输协议（FTPS）] 安全地扩展和管理到 AWS 存储服务的文件传输。 

1.  使用网络延迟来确定 TCP 是否适合工作负载组件之间的通信。如果客户端应用程序和服务器之间的网络延迟很高，则 TCP 三次握手需要一些时间，因而会影响应用程序的响应能力。可以使用第一个字节的时间（TTFB）和往返时间（RTT）等指标来衡量网络延迟。如果您的工作负载向用户提供动态内容，请考虑使用 [Amazon CloudFront](https://aws.amazon.com/cloudfront/)，它会为动态内容建立到每个源的持久连接，以便减少连接设置时间，要不然会减慢每个客户端请求的速度。 

1.  由于在 TCP 或 UDP 上使用 TLS 会影响加密和解密，从而导致工作负载的延迟增加和吞吐量降低。对于此类工作负载，请考虑使用 [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）Express](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 流日志](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）的置放群组，可使工作负载参与低延迟、低抖动的 25Gbps 网络。建议将置放群组用于可受益于低网络延迟和/或高网络吞吐量的工作负载。 

 延迟敏感型服务使用 AWS 全球网络在边缘站点交付，例如 [Amazon CloudFront](https://aws.amazon.com/cloudfront/)访问 AWS 资源。这些边缘站点通常提供内容分发网络（CDN）和域名系统（DNS）等服务。通过在边缘交付这些服务，工作负载可以低延迟响应内容或 DNS 解析请求。这些服务还提供地理定位服务，例如内容地理定位（基于最终用户位置提供不同内容），或基于延迟的路由（将最终用户引导至最近的区域以实现最小延迟）。 

 可使用边缘服务来减少延迟并启用内容缓存。为 DNS 和 HTTP/HTTPS 正确配置缓存控制，以便通过这些方式获得最大优势。 

### 实施步骤
<a name="implementation-steps"></a>
+  捕获有关传入和传出网络接口的 IP 流量的信息。 
  + [ 使用 VPC 流日志记录 IP 流量 ](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)
  + [ 如何将客户端 IP 地址保留在 AWS Global Accelerator 中 ](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/)，以便收集有关网络活动的数据。 
  +  分析数据以确定网络访问模式。 
+  请根据以下关键元素，为您的工作负载部署选择区域： 
  +  **数据所在位置：** 对于数据密集型应用程序（如大数据和机器学习），应用程序代码的运行应尽量接近数据。
  +  **用户所在位置**：对于面向用户的应用程序，选择接近您工作负载用户的一个或多个区域。
  +  **其他制约**：考虑成本和合规性等制约， [如 What to Consider when Selecting a Region for your Workloads 中所述。](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 在 5G 网络内嵌入 AWS 计算和存储服务，为开发、部署和扩展超低延迟应用提供移动边缘计算基础设施。 
+  对常用资产使用本地缓存或 [AWS 缓存解决方案](https://aws.amazon.com/caching/aws-caching/) ，以提高性能，减少数据移动并减小对环境的影响。     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/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_cn/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_cn/wellarchitected/2023-10-03/framework/perf_networking_optimize_network_configuration_based_on_metrics.html)
+  使用 VPC 和 AWS Transit Gateway 流日志识别主要贡献者和应用程序流量模式。 
+  评估和优化您当前的网络架构，包括 VPC、子网和路由。例如，您可以评估不同的 VPC 对等互连或 AWS Transit Gateway 如何让您能够改善架构中的联网。 
+  评估网络中的路由路径，以验证目的地之间是否始终使用最短路径。Network Access Analyzer 可以协助您做到这一点。 

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

 **相关文档：** 
+  [VPC 流日志](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 流日志优化性能并降低网络分析成本 ](https://aws.amazon.com/blogs/big-data/optimize-performance-and-reduce-costs-for-network-analytics-with-vpc-flow-logs-in-apache-parquet-format/) 
+  [Monitoring your global and core networks with Amazon CloudWatch metrics](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。   

## 实施步骤
<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: Scaling up to your first 10 million users](https://www.youtube.com/watch?v=kKjm4ehYiMs&ref=wellarchitected) 
+  [Cut through the chaos: Gain operational visibility and insight](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_cn/wellarchitected/2023-10-03/framework/perf_process_culture_use_monitoring_solutions.html)

1.  执行测试以生成指标，确定流量模式、瓶颈和关键性能领域。以下是一些有关如何执行测试的示例： 
   +  设置 [CloudWatch Synthetic Canary](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) ，使用 Linux cron 作业或 rate 表达式，通过编程方式模拟浏览器端的用户活动，从而生成一段时间内的稳定指标。 
   +  使用 [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 Builders' Library](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/) 

 **相关视频：** 
+  [The Amazon Builders’ Library: 25 years of Amazon operational excellence](https://www.youtube.com/watch?v=DSRhgBd_gtw) 
+  [Visual Monitoring of Applications with 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) 
+  [适用于 Node.js 的 X-Ray 开发工具包](https://github.com/aws/aws-xray-sdk-node) 
+  [适用于 Python 的 X-Ray 开发工具包](https://github.com/aws/aws-xray-sdk-python) 
+  [适用于 Java 的 X-Ray 开发工具包](https://github.com/aws/aws-xray-sdk-java) 
+  [适用于 .Net 的 X-Ray 开发工具包](https://github.com/aws/aws-xray-sdk-dotnet) 
+  [适用于 Ruby 的 X-Ray 开发工具包](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 云 来测试工作负载，发现工作负载的哪些部分无法扩展或者是否以非线性方式扩展。例如，您可以使用竞价型实例以很低的成本生成负载，并在投入生产前发现瓶颈。 
+  监控和记录性能指标（如吞吐量和响应时间）。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) 

 **相关视频：** 
+  [Solving with AWS Solutions: Distributed Load Testing](https://www.youtube.com/watch?v=Y-2rk0sSyOM) 
+  [Optimize applications through 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 值并发出警报；或者您的工具在 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) 
+  [Setting up controls at scale in your AWS environment](https://www.youtube.com/watch?v=NkE9_okfPG8) 
+  [Automating patch management and compliance using 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 代理从 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) 

 **相关视频：** 
+  [Setting up controls at scale in your AWS environment](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) 
+  [第 100 级：使用 CloudWatch 控制面板进行监控](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 