

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

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

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

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

 在选择所有组件时考虑服务和选项的成本。这包括使用应用程序级别的托管服务，例如 [Amazon Relational Database Service](https://aws.amazon.com/rds/) （Amazon RDS）、 [Amazon DynamoDB](https://aws.amazon.com/dynamodb/)、 [Amazon Simple Notification Service](https://aws.amazon.com/sns/) （Amazon SNS）和 [Amazon Simple Email Service](https://aws.amazon.com/ses/) （Amazon SES），来降低组织的总体成本。 

 使用无服务器服务和容器进行计算，例如用于静态网站的 [AWS Lambda](https://aws.amazon.com/lambda/) 和 [Amazon Simple Storage Service](https://aws.amazon.com/s3/) （Amazon S3）。尽可能将您的应用程序容器化，并使用 AWS 托管的容器服务，例如 [Amazon Elastic Container Service](https://aws.amazon.com/ecs/) （Amazon ECS）或 [Amazon Elastic Kubernetes Service](https://aws.amazon.com/eks/) （Amazon EKS）。 

 使用开源软件或没有许可证费用的软件，尽可能减少许可证成本，例如，对计算工作负载使用 Amazon Linux 或将数据库迁移到 Amazon Aurora。 

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

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

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

### 实施步骤
<a name="implementation-steps"></a>
+  **选择每个服务以优化成本：** 使用经过优先级排序的列表和分析，选择最符合组织优先事项的每个选项。与其增加容量来满足需求，不如考虑其他可以提供更高性价比的选项。例如，您需要审查您的数据库在 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) 

 **相关示例：** 
+  [Getting started with event-driven architecture](https://aws.amazon.com/blogs/compute/getting-started-with-event-driven-architecture/) 
+  [事件驱动型架构](https://aws.amazon.com/event-driven-architecture/) 
+  [How Statsig runs 100x more cost-effectively using Amazon ElastiCache (Redis OSS)](https://aws.amazon.com/blogs/database/how-statsig-runs-100x-more-cost-effectively-using-amazon-elasticache-for-redis/) 
+  [Best practices for working with AWS Lambda functions](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html) 