Google Cloud Well-Architected Framework 费用优化核心中的这一原则提供了相关建议,可帮助您规划和预配资源,以满足云工作负载的要求和使用模式。
原则概览
如需优化云资源费用,您需要全面了解工作负载的资源要求和负载模式。了解这些信息是制定完善的成本模型的基础,可让您预测总拥有成本 (TCO),并在整个云采用过程中确定费用驱动因素。通过主动分析和预测云支出,您可以就资源预配、利用率和费用优化做出明智的选择。这种方法可让您控制云支出,避免过度预配,并确保云资源与工作负载和环境的动态需求保持一致。
建议
如需有效优化云资源用量,请考虑以下建议。
选择特定于环境的资源
每个部署环境对可用性、可靠性和可伸缩性都有不同的要求。例如,开发者可能偏好能够快速部署和运行短时应用的开发环境,但可能不需要高可用性。另一方面,生产环境通常需要高可用性。为了最大限度地利用资源,请根据业务需求定义特定于环境的要求。下表列出了特定于环境的要求示例。
环境 | 使用要求 |
生产 |
|
开发和测试 |
|
其他环境(例如预演和质量检查) |
|
选择特定于工作负载的资源
每个云工作负载对可用性、可伸缩性、安全性和性能的要求可能各不相同。为了优化费用,您需要根据每个工作负载的具体要求来选择资源。例如,无状态应用可能不需要与有状态后端相同的可用性或可靠性。下表列出了更多特定于工作负载的要求示例。
工作负载类型 | 工作负载要求 | 资源选项 |
任务关键型 | 持续可用性、强大的安全性和高性能 | 高级资源和托管服务,例如 Spanner,可确保数据的高可用性和全局一致性。 |
非重大 | 经济实惠且可自动扩缩的基础设施 | 具有基本功能和临时资源的资源,例如 Spot 虚拟机。 |
事件驱动 | 根据当前对容量和性能的需求进行动态伸缩 | Cloud Run 和 Cloud Run functions 等无服务器服务。 |
实验性工作负载 | 低成本且柔性环境,可用于快速开发、迭代、测试和创新 | 具有基本功能的资源、临时资源(例如 Spot 虚拟机)以及具有明确支出限额的沙盒环境。 |
云计算的一大优势在于,您可以根据给定的工作负载选择最合适的计算能力。有些工作负载是为利用处理器指令集而开发的,而有些工作负载可能并非以这种方式设计。相应地对工作负载进行基准测试和分析。对工作负载进行分类,并根据工作负载选择特定的资源(例如,为 Compute Engine 虚拟机选择合适的机器系列)。此实践有助于优化成本、实现创新,并保持工作负载所需的可用性和性能水平。
以下示例说明了如何实现此建议:
- 对于为全球分布的用户提供服务的任务关键型工作负载,请考虑使用 Spanner。Spanner 可确保所有区域中的数据可靠性和一致性,从而无需进行复杂的数据库部署。
- 对于负载水平波动的工作负载,请使用自动扩缩功能,以确保在负载较低时不会产生费用,同时保持足够的容量来满足当前负载。您可以为许多Google Cloud 服务配置自动扩缩,包括 Compute Engine 虚拟机、Google Kubernetes Engine (GKE) 集群和 Cloud Run。设置自动伸缩时,您可以配置伸缩上限,以确保费用保持在指定预算范围内。
根据费用要求选择区域
对于云工作负载,请仔细评估可用的 Google Cloud区域,并选择符合成本目标的区域。费用最低的区域可能无法提供最佳延迟时间,或者可能无法满足您的可持续发展要求。明智地决定在何处部署工作负载,以实现所需的平衡。您可以使用Google Cloud 区域选择器来了解费用、可持续性、延迟时间和其他因素之间的权衡。
使用内置的费用优化选项
Google Cloud 产品提供内置功能,可帮助您优化资源使用情况并控制费用。下表列出了您可以在部分 Google Cloud 产品中使用的费用优化功能示例:
产品 | 费用优化功能 |
Compute Engine | |
GKE | |
Cloud Storage | |
BigQuery |
|
Google Cloud VMware Engine |
|
优化资源共享
为了最大限度地提高云资源的利用率,您可以在同一基础设施上部署多个应用或服务,同时仍能满足应用的安全和其他要求。例如,在开发和测试环境中,您可以使用相同的云基础架构来测试应用的所有组件。对于生产环境,您可以将每个组件部署到单独的一组资源上,以限制发生突发事件时的影响范围。
以下示例说明了如何实现此建议:
- 为多个非生产环境使用单个 Cloud SQL 实例。
- 通过使用 GKE 中的舰队团队管理功能和适当的访问权限控制,使多个开发团队能够共享一个 GKE 集群。
- 使用 GKE Autopilot 可利用 GKE 默认实施的箱打包和自动扩缩等费用优化技术。
- 对于 AI 和 ML 工作负载,请使用GPU 共享策略(例如多实例 GPU、分时 GPU 和 NVIDIA MPS)来节省 GPU 费用。
开发和维护参考架构
创建并维护参考架构的知识库,这些参考架构经过量身定制,可满足不同部署环境和工作负载类型的要求。为了简化各个项目的设计和实施流程,可以由某个团队(例如云技术卓越中心 [CCoE])集中管理蓝图。项目团队可以根据明确定义的条件选择合适的蓝图,以确保架构一致性并采用最佳实践。对于项目特有的需求,项目团队和中央架构团队应协作设计新的参考架构。您可以在整个组织内分享参考架构,以促进知识共享并扩充可用解决方案的知识库。这种方法可确保一致性、加快开发速度、简化决策流程并提高资源利用效率。
查看 Google 针对各种使用情形和技术提供的参考架构。这些参考架构融入了资源选择、大小调整、配置和部署方面的最佳实践。通过使用这些参考架构,您可以加快开发流程,并从一开始就节省成本。
使用组织政策强制执行费用控制
考虑使用组织政策来限制团队成员可使用的 Google Cloud 位置和产品。这些政策有助于确保团队采用经济高效的解决方案,并在符合成本优化目标的位置预配资源。
估算实际预算并设置财务界限
为每个项目、工作负载和部署环境制定详细的预算。 确保预算涵盖云运营的各个方面,包括基础设施费用、软件许可、人员配备和预期增长。为防止支出超额并确保支出与您的财务目标保持一致,请为项目、服务或特定资源设置明确的支出限额或阈值。请定期根据这些限额监控云支出。您可以使用主动配额提醒及早发现潜在的费用超支情况,并及时采取纠正措施。
除了设置预算之外,您还可以使用配额和限制来帮助强制执行费用控制措施,并防止支出意外飙升。您可以通过在不同层级(包括项目、服务,甚至特定资源类型)设置配额,对资源消耗进行精细控制。
以下示例说明了如何实现此建议:
- 项目级配额:在项目级设置支出限额或资源配额,以确定总体财务边界并控制项目内所有服务的资源消耗。
- 特定于服务的配额:为特定 Google Cloud服务(例如 Compute Engine 或 BigQuery)配置配额,以限制可预配的实例数、CPU 数或存储容量。
- 资源类型专属配额:对 Compute Engine 虚拟机、Cloud Storage 存储分区、Cloud Run 实例或 GKE 节点等单个资源类型应用配额,以限制其用量并防止意外超支。
- 配额提醒:在配额用量(项目级)达到最大值的某个百分比时收到通知。
通过将配额和限制与预算和监控相结合,您可以采取主动的多层级方法来控制费用。这种方法有助于确保您的云支出保持在定义的范围内,并与您的业务目标保持一致。请注意,这些费用控制措施并非永久性或硬性规定。为确保费用控制措施始终符合当前的行业标准并反映不断变化的业务需求,您必须定期检查这些控制措施,并进行调整以纳入新技术和最佳实践。