

# COST05-BP05 选择此工作负载的组件，以便根据组织的优先事项优化成本
<a name="cost_select_service_select_for_cost"></a>

为工作负载选择所有组件时考虑成本因素。这包括使用应用程序级别的托管服务或无服务器服务、容器或事件驱动型架构，以降低整体成本。使用开源软件、没有许可证费用的软件或替代方案来降低成本，从而尽可能减少许可证成本。

 **在未建立这种最佳实践的情况下暴露的风险等级：** 中 

## 实施指导
<a name="implementation-guidance"></a>

 在选择所有组件时考虑服务和选项的成本。这包括使用 [Amazon Relational Database Service（Amazon RDS）](https://aws.amazon.com/rds/)、[Amazon DynamoDB](https://aws.amazon.com/dynamodb/)、[Amazon Simple Notification Service（Amazon SNS）](https://aws.amazon.com/sns/)和 [Amazon Simple Email Service（Amazon SES）](https://aws.amazon.com/ses/)等应用程序级别的托管服务，来降低组织的总体成本。使用无服务器服务和容器进行计算，例如用于静态网站的 [AWS Lambda](https://aws.amazon.com/lambda/) 和 [Amazon Simple Storage Service（Amazon S3）](https://aws.amazon.com/s3/)。尽可能将您的应用程序容器化，并使用 AWS 托管的容器服务，例如 [Amazon Elastic Container Service（Amazon ECS）](https://aws.amazon.com/ecs/)或 [Amazon Elastic Kubernetes Service（Amazon EKS）](https://aws.amazon.com/eks/)。使用开源软件或没有许可证费用的软件，尽可能减少许可证成本，例如，对计算工作负载使用 Amazon Linux 或将数据库迁移到 Amazon Aurora。 

您可以使用无服务器或应用程序级服务，如 [AWS Lambda](https://aws.amazon.com/lambda/)、[Amazon Simple Queue Service（Amazon SQS）](https://aws.amazon.com/sqs/)、[Amazon SNS](https://docs.aws.amazon.com/sns/?id=docs_gateway) 和 [Amazon SES](https://docs.aws.amazon.com/ses/?id=docs_gateway)。这些服务剔除了管理资源的需要，并提供代码执行、排队服务和消息传递功能。另一个好处是，它们可以根据使用量扩展性能和成本，从而实现有效的成本分配和归属。

 还可以通过无服务器服务来使用[事件驱动型架构（EDA）](https://aws.amazon.com/what-is/eda/)。事件驱动型架构是推送式的，所以当事件在路由器中出现时，一切都按需发生。这样，您就不会为检查事件的连续轮询而付费。这意味着更少的网络带宽消耗、更低的 CPU 使用率、更少的闲置实例集容量，以及更少的 SSL/TLS 握手次数。 

有关无服务器的更多信息，请参阅[《Well-Architected 无服务器应用程序剖析》白皮书](https://docs.aws.amazon.com/wellarchitected/latest/serverless-applications-lens/welcome.html)。

**实施步骤**
+ **选择每个服务以优化成本：**使用经过优先级排序的列表和分析，选择最符合组织优先事项的每个选项。与其增加容量来满足需求，不如考虑其他可以提供更高性价比的选项。例如，您需要审查您的数据库在 AWS 上的预期流量，并考虑增加实例大小或使用 Amazon ElastiCache 服务（Redis 或 Memcached），来为您的数据库提供缓存机制。
+  **评估事件驱动型架构：**通过使用无服务器架构，您还可以为基于微服务的分布式应用程序构建事件驱动型架构，这有助于您构建可扩展、有弹性、敏捷且具有成本效益的解决方案。 

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

 **相关文档：** 
+  [AWS 总拥有成本（TCO）计算器](https://aws.amazon.com/tco-calculator/) 
+ [AWS 无服务器](https://aws.amazon.com/serverless/)
+ [什么是事件驱动型架构？](https://aws.amazon.com/what-is/eda/)
+  [Amazon S3 存储类](https://aws.amazon.com/s3/storage-classes/) 
+  [云产品](https://aws.amazon.com/products/) 
+ [ Amazon ElastiCache (Redis OSS) ](https://aws.amazon.com/elasticache/redis/)

 **相关示例：** 
+ [开始使用事件驱动型架构](https://aws.amazon.com/blogs/compute/getting-started-with-event-driven-architecture/)
+ [什么是事件驱动型架构？](https://aws.amazon.com/event-driven-architecture/)
+ [Statsig 如何使用 Amazon ElastiCache (Redis OSS) 将成本效益提高 100 倍](https://aws.amazon.com/blogs/database/how-statsig-runs-100x-more-cost-effectively-using-amazon-elasticache-for-redis/)
+ [使用 AWS Lambda 函数的最佳实践](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html)