此内容已过时。此版本的架构完善的框架现在可在以下位置找到: https://docs.aws.amazon.com/zh_cn/wellarchitected/2022-03-31/framework/cost-optimization.html

成本优化

成本优化 支柱包括 以最低价格运行系统来交付业务价值的能力

成本优化支柱概述了设计原则、最佳实践和问题。如需有关具体实施的说明性指导,请参阅成本优化支柱白皮书

设计原则

云中的 成本优化 有 five 项设计原则:

定义

云中的 成本优化 有 five 个最佳实践领域:

与架构完善的框架中的其他支柱一样,成本优化支柱也需要权衡各种因素,例如是优化上市速度还是优化成本。在某些情况下,最好优化上市速度以便快速上市、交付新功能或只是为了按时完成任务,而不是优化预付成本。设计决策有时是在仓促中而非是由数据决定的,并且人们总是倾向于过度补偿“以防万一”,而不是花时间进行基准测试以获得成本最优的部署。这可能会导致过度预置和优化不足的部署。但是,当您需要将资源从本地环境“直接迁移”到云,然后再进行优化时,这是一个合理的选择。通过预先在成本优化策略中投入适量的精力,您可以确保始终如一地遵守最佳实践,避免不必要的过度预置,从而更轻松地实现云的经济优势。以下部分介绍了一些技巧和最佳实践,可帮助您开始并持续实施工作负载的云财务管理和成本优化。

最佳实践

践行云财务管理

采用云后,由于缩短了审批、采购和基础设施部署周期,技术团队的创新速度会更快。要实现业务价值和财务成功,需要实施一种在云中管理财务的新方法。这种方法便是云财务管理,通过实施组织范围的知识构建、计划、资源和流程,在整个组织内培养能力。

许多组织由许多不同的单位构成,而这些单位又具有不同的要务。若能让组织遵循一组商定的财务目标并为组织提供实现这些目标的机制,将会打造一个更高效的组织。一个有能力的组织的创新和构建速度更快,更敏捷,并能够适应任何内部或外部因素。

在 AWS 中,您可以使用 Cost Explorer,也可以选择使用 Amazon Athena 和 Amazon QuickSight 查看成本和使用情况报告 (CUR),从而了解整个组织的成本和使用情况。AWS 预算可主动发出成本和使用情况通知。AWS 博客提供有关新服务和新功能的信息,以确保您及时了解新发布的服务。

以下问题主要针对 成本优化 的准备阶段。

COST 1: 如何实施云财务管理?

在组建成本优化部门时,可以考虑包括成员并为团队配备 CFM 和 CO 方面的专家。现有的团队成员将了解组织的当前运作方式以及如何快速实施改进。此外,还可以考虑配备拥有辅助或专业技能组合的人员,例如具备分析和项目管理能力的人员。

在组织中树立成本意识时,可以考虑改进现有计划和流程或基于现有计划和流程进行构建。与构建新流程和计划相比,向现有流程和计划增添内容要快得多。这样将更快地取得成果。

支出和使用情况意识

通过云,您可以获得更大的灵活性和敏捷性,从而支持创新以及快速的开发和部署。这样便节省了自建本地基础设施所需的人工环节和时间,包括确定硬件规格、协商报价、管理购买订单、安排发货和部署资源。然而,要实现这种易用性并利用近乎无限的按需容量,我们需要以新方式考虑支出。

很多企业有多个由不同团队运行的系统。将资源成本分摊到各个组织或产品拥有者可以推动更高效的资源使用模式,减少浪费。准确的成本分摊能够帮助您了解哪些产品是真正盈利的,让您能够做出更明智的预算分配决策。

在 AWS 中,您可以使用 AWS Organizations 或 AWS Control Tower 创建账户结构,这种方式不仅实现了分离,而且有助于分配成本和使用。此外,也可以通过资源标记操作在使用情况和成本中标注业务和组织信息。使用 AWS Cost Explorer 查看您的成本和使用情况,或者使用 Amazon Athena 和 Amazon QuickSight 创建自定义控制面板和分析。成本和使用情况控制通过 AWS 预算的通知来实现,并使用 AWS Identity and Access Management (IAM) 和服务配额进行控制。

以下问题主要针对 成本优化 的准备阶段。

COST 2: 您如何管理使用情况?
COST 3: 如何监控使用情况和成本?
COST 4: 您如何停用资源?

您可以使用成本分配标签对 AWS 使用情况和成本进行分类并跟踪。当您对 AWS 资源(例如 EC2 实例或 S3 存储桶)应用标签后,AWS 将通过使用量和成本标签生成成本和使用量报告。您可以使用代表组织类别的标签(例如成本中心、工作负载名称或拥有者)整理您的多个服务的成本。

确保在成本和使用情况报告和监控中使用正确的详细级别和粒度。要获得大概见解和趋势,请在 AWS Cost Explorer 中使用每日粒度。要更深入地进行分析和检查,请在 AWS Cost Explorer 中使用每小时粒度,或者在 Amazon Athena 和 Amazon QuickSight 中以每小时为粒度查看成本和使用情况报告 (CUR)。

结合标记资源和实体生命周期跟踪(员工、项目),您可以确定无法再为组织创造价值而应停用的孤立资源或项目。您可以设置账单提醒,以在预计超支时通知您。

具有成本效益的资源

为工作负载使用合适的实例和资源是节约成本的关键。例如,在小型服务器上运行某个报告需要五个小时,而在另一个两倍成本的大型服务器上运行只需要一个小时。虽然两个服务器提供同样的结果,但小型服务器随着时间推移会产生更多成本。

良好架构的工作负载会使用最具有成本效益的资源,这样可以产生巨大而积极的经济效益。您还可以使用托管服务降低成本。例如,您可以使用按电子邮件收费的服务,而无需自己维护电子邮件服务器。

AWS 提供各种灵活且具有成本效益的定价选项,您可以从 EC2 和其他服务获取最符合您需求的实例。按需实例允许按小时支付计算容量的费用,且无需承诺最低用量。Savings Plans 和预留实例与按需定价相比最高可节约 75% 的成本。使用 Spot 实例,您可以利用未使用的 Amazon EC2 容量,并且与按需定价相比最高可节约 90% 的成本。Spot 实例适用于以下情况:系统可以容忍使用服务器队列,其中单个服务器可以动态装卸(例如无状态 Web 服务器)、批处理、高性能计算及大数据场景。

选择合适的服务还可以减少使用量和降低成本;例如,使用 CloudFront 可以最大限度地减少数据传输成本;例如,使用 Amazon Aurora on RDS 可以消除昂贵的数据库许可成本。

以下问题主要针对 成本优化 的准备阶段。

COST 5: 您在选择服务时如何评估成本?
COST 6: 在选择资源类型、规模和数量时,如何实现成本目标?
COST 7: 您如何使用定价模式来降低成本?
COST 8: 您如何规划数据传输费用?

通过在选择服务时考虑成本因素,并使用 Cost Explorer 和 AWS Trusted Advisor 等工具定期检查 AWS 使用情况,您可以主动监控利用率并相应地调整部署。

管理需求和供应资源

在您迁移到云时,您仅为所需内容付费。您可以在需要时供应与工作负载需求匹配的资源,从而消除昂贵且浪费的过度预置需求。还可以通过限流、缓冲区或队列来修改需求,以满足需求并以更少的资源达成目标,从而降低成本,或者在以后使用批处理服务处理需求。

在 AWS 中,您可以自动预置资源来满足工作负载需求。通过使用基于需求或时间的方法进行自动扩展,您可根据需要添加和删除资源。如果您可以预测需求变化,便可以节省更多资金并确保资源与工作负载需求匹配。您可以使用 Amazon API Gateway 实施限流,也可以使用 Amazon SQS 在工作负载中实施队列。这两种方法都允许您修改工作负载组件的需求。

以下问题主要针对 成本优化 的准备阶段。

COST 9: 如何管理需求和供应资源?

当进行修改需求和供应资源的设计时,请主动考虑资源使用模式、预置新资源所需要耗费的时间,以及需求模式的可预测性。当管理需求时,确保您具有大小正确的队列或缓冲区,并在所需的时间内响应工作负载需求。

随着时间的推移不断优化

AWS 不断发布新服务和功能,因此您最好不断审视现有架构决策,以便确保其始终最具成本效益。当您的需求发生变化时,请主动停用不再需要的资源、整体服务和系统。

实施新功能或资源类型可以逐步优化您的工作负载,同时最大程度地减少实施变更所需的工作量。这样可不断提高效率,并确保您始终使用最新的技术,从而降低运营成本。您还可以使用新服务替换或向工作负载中添加新组件。这可以显著提高效率,因此必须定期审查您的工作负载,并实施新服务和新功能。

以下问题主要针对 成本优化 的准备阶段。

COST 10: 如何评估新服务?

定期审查部署时,评估更新的服务如何帮助您节省成本。例如,Amazon Aurora on RDS 可以降低关系数据库的成本。使用无服务器(例如 Lambda)服务,无需操作和管理实例即可运行代码。

资源

请参阅以下资源,详细了解有关 成本优化 的最佳实践。

Cost Optimization Pillar
AWS Well-Architected Cost Optimization Labs
Well-Architected Tool
AWS Cost Management Blog
AWS Billing and Cost Management
AWS Tagging Strategies
Getting Started with Amazon EC2 Spot Instances
AWS Documentation