本文档可帮助您最大限度地降低单区域和多区域 Google Cloud 环境的费用,以及跨 Google Cloud 区域迁移的费用。如果您即将进行这些类型的迁移,或者正在评估迁移方案并想了解具体的迁移场景,本文档会非常有用。
本文档是关于迁移到 Google Cloud 的以下系列文章中的一篇:
- 迁移到 Google Cloud:使用入门
- 迁移到 Google Cloud:评估和发现您的工作负载
- 迁移到 Google Cloud:规划和构建您的基础
- 迁移到 Google Cloud:转移您的大型数据集
- 迁移到 Google Cloud:部署您的工作负载
- 迁移到 Google Cloud:从手动部署迁移到自动容器化部署
- 迁移到 Google Cloud:优化您的环境
- 迁移到 Google Cloud:验证迁移计划的最佳实践
- 迁移到 Google Cloud:最大限度地降低费用(本文档)
本文档提供了关于以下主题的指导:
- 评估当前费用并预测 Google Cloud 足迹的增长。
- 确定费用优化要求和目标。
- 实施费用管理和优化流程。
- 采用 Cloud FinOps 框架。
本文档假定您已阅读并熟悉迁移到 Google Cloud:优化您的环境。该文档介绍了在迁移到 Google Cloud 后设计和实现优化循环(持续进行的优化流程)的步骤。这些优化步骤在很大程度上也适用于最大限度地降低费用。
评估费用
评估 Google Cloud 环境的当前费用和预测费用对于充分了解资源消耗情况以及发现可能的增长机会至关重要。
如需评估当前费用和预测费用,您可以这样做:
- 评估当前 Google Cloud 环境的费用。
- 评估未来的跨 Google Cloud 区域迁移的费用。
- 预测 Google Cloud 足迹的增长。
评估当前环境的费用
如需全面了解您的环境费用,请考虑以下方面:
- Google Cloud 结算模式。Google Cloud 使用透明高效的模型来结算资源使用费。如需全面了解模型的工作原理以及 Google Cloud 如何收取资源使用费,我们建议您了解Google Cloud 结算模式和产品价格的工作原理。
- Cloud Billing。如需评估环境的当前费用和预测费用,我们建议您使用 Cloud Billing,这是一组工具,可帮助您跟踪当前和预测的 Google Cloud 支出、支付账单和优化费用。例如,您可以创建预算和预算提醒。
- 折扣。Google Cloud 提供折扣价格,但要求您承诺在指定期限内会使用的最低资源水平。在评估当前环境的费用时,我们建议您收集有关已购买的承诺使用折扣以及它们适用的产品、服务和资源的信息。
- 碳足迹。Google Cloud 支持测量和报告当前环境的碳足迹。收集此信息有助于建立一个基准,作为在降低费用的过程中减少碳足迹的参考。
如需详细了解如何设置资源以进行访问权限控制和费用管理,请参阅 Cloud Billing 资源组织和访问权限管理指南。
评估未来的跨区域迁移的费用。
如果您正在考虑跨 Google Cloud 区域进行迁移,我们建议您评估此迁移对费用的影响。如需评估跨区域迁移的费用,请考虑以下方面:
- 目标区域中 Google Cloud 资源的价格。跨 Google Cloud 区域迁移工作负载、数据和流程时,您可能需要在目标区域中预配资源。您可以使用 Google Cloud 价格计算器来评估预配新资源并将数据迁移到新的 Google Cloud 区域的费用。
- 多区域 Google Cloud 资源的费用。为了满足可靠性要求,您可能需要使用多区域资源。我们建议您考虑这些资源如何影响迁移及其费用。例如,您使用双区域或多区域 Cloud Storage 存储桶,并且其中一个存储桶与您的目标迁移区域位于同一区域。在这种情况下,您可能不需要迁移这些存储桶中的数据,因为 Cloud Storage 会为您处理数据复制。
- 出站流量网络流量。除了预配和维护 Google Cloud 资源的费用之外,将数据从一个区域转移到另一个区域可能会产生网络出站流量费用。我们建议您评估这些预测费用,以避免产生意外的账单。
- 时间、培训和其他附带费用。跨区域迁移的费用不仅包含与资源预配和数据转移相关的费用,还会产生一些额外费用,例如团队设计迁移计划和完成迁移所需的时间和培训。在评估迁移费用时,我们建议您也加入这些附带费用。
除了这些建议之外,Google Cloud 还提供 Google Cloud Rapid Assessment and Migration Program。此计划为您提供免费的迁移费用评估,并引导您在 Google Cloud 专业服务和合作伙伴的支持下完成整个迁移过程。
预测 Google Cloud 足迹的增长
在定期环境维护中,我们建议您持续监控环境的费用。此类监控可提供建立费用管理流程所需的信息,还可让您及时了解环境的当前费用和短期预测。
除了定期维护环境之外,我们还建议您制定长期增长策略。这种策略使您可以更好地规划预算以及 Google Cloud 足迹随着业务需求自然增长而需要的资源。如需制定长期增长策略,请考虑以下方面:
- 业务要求。评估您的环境是否仍满足其支持的业务要求。例如,如果您预计某些业务领域的需求将会增加,则可以考虑扩展支持这些领域的环境。
- 趋势和模式。使用 Google Cloud Observability 评估与您的工作负载、数据和流程关联的监控、日志记录和性能分析数据。通过此评估,您可以发现趋势、获得需求和流量模式,并收集有关这些趋势的有用数据洞见。
- 可持续增长。评估当前环境可以支持的增长规模,以及可能需要设计、预配和配置其他环境的时间点。例如,如果扩大现有环境规模所需的费用超过了它带来的收益,您可以考虑改为预配新环境。在评估当前环境可以支持的增长规模时,请考虑此增长对环境碳足迹的影响。如需了解详情,请参阅碳足迹。
确定费用优化要求和目标
在预测 Google Cloud 足迹的增长之后,我们建议您确定以下内容:
- 费用优化要求。要求表明需要进行改进,但并非必须是可衡量的改进。通过确定这些要求,您可以指明主要在哪些领域降低费用。
- 费用优化目标。目标是一个可衡量的属性,可以支持一个或多个要求。通过确立可衡量的目标,您可以使费用优化工作本身变得可衡量,并可以根据这些目标持续评估当前的状况。
如需详细了解要求和目标及其定义,请参阅确定优化要求和目标。
为了确定费用降低要求,我们建议您首先定义环境中需要改进的费用类型。例如,降低费用要求可能是降低计算服务的费用。
在确定费用降低要求并验证可行性后,您可以为每个要求定义可衡量的费用降低目标。与要求相关的一组目标应可让您完全定义该要求的所有特征,并且应可让您衡量满足要求的进度。例如,以上文提到的降低计算服务费用的要求为例。对于此要求,您可以将费用降低目标定义为将 Compute Engine 实例费用降低 5%。
在确定费用降低要求和目标后,我们建议您根据在费用评估阶段收集的数据来评估每个要求的可行性。例如,您可以使用评估数据来评估将 Compute Engine 实例费用降低 5% 这一目标的可行性。也就是说,使用评估数据来评估如需达到该目标,您是需要对环境和流程进行微调,还是需要大量修改其设计。
实施费用管理和优化流程
在费用评估阶段,您收集了有关当前支出和短期支出的信息。然后,通过确定费用优化要求和目标,您明确了降低费用的方式。这两项活动是制定长期的费用优化策略和扩大 Google Cloud 足迹以及它支持的业务所必须的。但是,仅靠这些活动并不能解决实现问题。为了实现这些策略,您还需要费用管理和优化流程。
您应该按以下顺序完成这些费用管理和优化流程:
- 监控费用。
- 控制资源预配。
- 降低成本。
监控费用
为了持续控制费用,持续监控环境的结算和费用趋势至关重要。我们建议您这样做:
- 定期查看结算报告。Cloud Billing 提供内置报告,这些报告包含使用费用、账单和对账单的详细信息、费用明细和价格表。为了全面掌握最新的费用情况,我们建议您定期查看这些结算报告。如果除了内置 Cloud Billing 报告所提供的信息之外,您还需要获取更多数据洞见,则可以将结算数据导出到 BigQuery 以进行一步分析。
- 配置标签和标记。标签和标记是可以附加到 Google Cloud 资源的键值对。通过这些键值对,您可以实现有别于 Cloud Billing 内置报告的定制费用跟踪和分析报告。例如,您可以按标签细分费用或执行使用标记的退款、审计和其他费用分配分析。如需详细了解标签和标记的对比,请参阅标记和标签。
- 配置预算提醒。预算和预算提醒可帮助您跟踪实际费用及其与计划费用的对比情况。为避免产生意外费用,我们建议您设置预算和预算提醒,以便为您提供足够的时间来及时采取行动。
控制资源预配
Google Cloud 支持各种资源预配工具,例如 Google Cloud 控制台、Google Cloud SDK、Cloud API和 Terraform 提供程序、模块和资源。您组织中的用户可以使用这些工具在您的环境中预配资源。预配更多 Google Cloud 资源或扩缩现有资源可能会导致支出发生变化。如需了解详情,请参阅每种资源的价格。
为避免产生无法控制和意外的支出,我们建议您设计和实施相关流程来控制资源预配。如需实施这些流程,请考虑以下方面:
- 采用基础架构即代码。通过以代码形式管理基础架构,您可以像处理应用代码一样管理 Google Cloud 资源的预配和配置。您还可以利用现有的持续集成、持续部署和审核流程。例如,您可以使用 Terraform 以代码形式管理基础架构,并且可以在持续集成流水线中强制执行政策合规。
- 先审核更改,再应用更改。无论您使用什么工具来预配和扩缩 Google Cloud 资源,我们都建议您实施相关流程来审核对环境所做的更改,然后再应用更改,这样可以避免支出发生意外变化。例如,如果您采用基础架构即代码,则可以在对支持环境的 Google Cloud 资源应用任何重大更改之前增加强制性的人工审核步骤。
记录您的环境并检测偏移。在预配和配置 Google Cloud 环境时,我们建议您记录每个环境的以下信息:
- 环境的特征。
- 您在该环境中预配和配置的 Google Cloud 资源。
- 每个资源的首选状态。
记录环境的特征可使审核环境的当前状态变得更简单。通过这样的记录,您还可以设计和实施相关流程来检测与首选状态的偏移情况,并尽快采取纠正措施。例如,您可以使用 Cloud Asset Inventory 分析您在不同项目和服务中的所有 Google Cloud 资产。然后,您可以将分析结果与每个环境的首选状态进行比较,主动停用任何非托管资源,并将托管资源恢复到其首选状态。
配置组织政策。如需配置对组织资源使用方式的控制和限制,并避免可能导致意外费用的资源滥用,您可以使用组织政策服务来强制执行限制条件。例如,您可以限制某些 Google Cloud 产品的使用,或者限制某些资源的创建。如需详细了解 Google Cloud 支持的限制条件,请参阅组织政策限制条件。
配置配额。Google Cloud 使用配额来限制您可以使用的共享 Google Cloud 资源的数量。如需限制特定资源的使用,您可以设置您自己的配额限制。例如,您可以限制给定区域中可存在的 Compute Engine 实例数量,从而防止创建多于特定数量的 Compute Engine 实例。
采用最小权限访问方法。为避免提权问题(即 Google Cloud 资源的用户提升权限并绕过审核),我们建议您向用户和服务账号授予最小权限。例如,您可以使用 IAM 向用户和服务账号授予所需的最小权限。
降低费用
监控环境费用并实施控制资源预配的流程可帮助您:
- 控制环境的当前费用和预测费用。
- 避免意外和不受控制的费用。
- 提供在尝试降低费用时可以参考的费用基准。
在本文档中,降低费用意味着设计和实施相关流程和机制来实现费用优化目标。您可以将这些流程设计为被动式(被其他操作或状态更改触发)或主动式(触发其他操作或状态更改)。一般而言,本部分中的建议同时适用于被动式和主动式流程。此外,许多费用优化过程可能既是被动式又是主动式。
如需设计和实施费用降低流程,请考虑以下建议:
- 评估使用折扣。您可以根据您的 Google Cloud 资源使用模式,选择 Google Cloud 提供的多种方案来降低费用。例如,您可以通过承诺在指定期限内会使用的最低资源水平来享受承诺使用折扣。某些 Google Cloud 服务会基于资源使用时间或水平提供折扣。例如,Compute Engine 为使用时间超过结算周期的特定时间段的资源提供持续使用折扣。
- 停用不需要的资源。当业务要求发生变化时,支持这些业务要求的环境也会随之变化。在这个过程中,您的环境可能会出现不需要的资源,或扩缩到不必要的水平的资源。为了降低与不需要的资源相关的使用费,我们建议您评估每个不需要的资源对费用的影响,以及停用这些资源可能对您的环境产生的影响。例如,您可以查看并应用空闲资源建议和空闲虚拟机建议,以识别未使用的资源和 Compute Engine 实例,并最终将其停用。
- 合理调整预配的资源量。为避免预配和配置的 Google Cloud 资源未被充分利用,我们建议您评估环境,以了解是否存在需要合理调整预配量的资源。合理调整资源量可能会降低费用。例如,您可以使用 Google Cloud Observability 提供的数据来评估某个特定资源的使用量,以及是否有合理调整资源量的空间。合理调整资源量的另一个示例是为 Compute Engine 实例应用机器类型建议。
- 配置自动扩缩。许多 Google Cloud 服务支持根据需求自动扩缩资源。自动扩缩功能可扩缩 Google Cloud 资源来匹配当前需求,从而帮助降低费用。例如,Compute Engine 提供自动扩缩功能,可根据负载自动向代管式实例组添加和移除实例。
- 迁移到托管式服务。为了帮助您降低运维费用并减少重复劳动,请考虑从自行管理的服务迁移到 Google 托管的服务。Google 数十年来运行着规模庞大的全球分布式系统,积累了丰富的相关经验,因此当 Google Cloud 客户使用 Google Cloud 托管的服务时,便可坐享这些成果。例如,如果您在 Compute Engine 上运行自行管理的 Kubernetes 集群,则可以考虑迁移到 Google Kubernetes Engine (GKE)。迁移到 GKE 可使您的运维团队将释放的资源投入其他目标,例如提高环境效率和降低费用。
- 发现模式。除了 Google Cloud 提供的自动扩缩功能之外,您还可以评估 Google Cloud Observability 提供的数据,以发现有助于构建资源需求模型的用量和流量模式。构建这些模型可帮助您设计和实施主动式费用优化流程,以利用这些模型提供的数据洞见。例如您可能会发现,您的某些环境仅在一天或一周中的某些时间段收到大量需求。那么您就可以主动对这些环境进行扩容以应对这些时间段,并在不需要时进行缩容。
- 高效地安排低优先级工作负载。通常,环境中运行的所有工作负载不会都是高优先级和业务关键型工作负载。为了降低费用,您可以利用不那么重要的工作负载。例如,您可以在不需要时关停这些工作负载及其相关资源。或者,您可以在更经济实惠的运行时(例如 Spot 虚拟机)中运行这些工作负载,而不是在 Compute Engine 或 GKE 中运行。
- 管理数据生命周期。存储在环境中的数据可能会在短时间内大量增加。为了帮助降低费用,我们建议您设计和实施相关流程,像管理 Google Cloud 资源那样自动管理数据的生命周期。例如,您可以设计和实施删除不需要的数据的流程。或者,您可以基于更详细的数据生成汇总数据,并仅将汇总数据移到长期存储空间中。您甚至可以考虑将访问频率低的数据迁移到适合非频繁访问的系统中,这类系统通常费用更低。此外,某些 Google Cloud 服务支持自动化的对象生命周期管理。例如,Cloud Storage 提供对象生命周期管理功能,可自动执行典型的对象生命周期管理操作;还提供 Autoclass 功能,可根据每个对象的访问模式,自动将对象转换为适当的存储类别。
- 降低特定 Google Cloud 服务的费用。使用 Compute Engine、GKE 和 Cloud Storage 等特定 Google Cloud 服务时,Google Cloud 提供降低和优化服务费用的指导。如需详细了解如何优化特定 Google Cloud 产品的费用,请参阅 Google Cloud 架构框架:费用优化。
无论您的 Google Cloud 资源如何跨区域和可用区分布,上述建议均适用。如需了解如何降低单区域和多区域环境的费用,请继续阅读本文档。
降低单区域环境的费用
在单区域环境中,Google Cloud 资源通常仅分布在该区域的多个可用区中。将资源分布在一个区域的多个可用区中有助于降低可用区服务中断的影响,最大限度地减少这些服务中断对业务的影响。例如,如果您在 Compute Engine 实例上运行工作负载,并且发生了影响您预配该实例的可用区的可用区服务中断,则该工作负载可能会受到服务中断的影响。如果您在不同区域的 Compute Engine 实例上运行该工作负载的多个副本,工作负载受可用区服务中断影响的可能性就会降低。一般而言,跨多个可用区复制资源的费用高于在单个可用区中预配资源的费用,但有助于提高可靠性。
如需了解详情,请参阅跨 Google Cloud 区域迁移:在 Google Cloud 上设计弹性的单区域环境。
在设计单区域环境时,我们建议您评估工作负载、流程和数据的可靠性要求。此评估可帮助您确定哪些 Google Cloud 资源需要跨一个区域中的多个可用区复制和分发,哪些资源可以容忍可用区服务中断并且可以在单个可用区中运行。例如,您可以考虑为非业务关键型批量工作负载使用单可用区部署,并将更重要的工作负载、流程和数据进行多可用区复制和分布。
降低多区域环境的费用
在多区域环境中,Google Cloud 资源通常分布在多个区域。将资源分布到多个区域有助于降低区域服务中断的影响。例如,如果您使用多区域 Cloud Storage 存储桶,您的数据会跨多个区域复制,并且可用性高于单区域存储桶。
除了本部分中的建议之外,也请考虑降低单区域环境的费用中的建议,因为它们也适用于多区域环境。
如需降低多区域环境的费用,请考虑以下方面:
多区域资源。多个 Google Cloud 产品支持跨多个区域复制和分布资源,以提高环境的可靠性。例如,Cloud Storage 支持双区域和多区域存储桶,可跨多个区域复制数据。一般而言,跨区域复制和分布资源的费用高于在单个区域中预配资源的费用。例如,单区域、双区域和多区域 Cloud Storage 存储桶具有不同价格,并且 Google Cloud 对双区域和多区域的区域间复制收费。
为了最大限度地降低产品费用,我们建议您仅在需要满足工作负载、数据和流程的可靠性要求时考虑使用多区域复制和分布。例如,您已确定要存储在特定 Cloud Storage 存储桶中的数据不需要分布在多个区域中以降低区域服务中断的影响。您可以预配单区域存储桶来存储此数据,而不需要预配双区域或多区域存储桶,这样可以节省费用。另一个节省的费用示例是,如果您有不需要多区域部署提供的更高可靠性的非业务关键型工作负载,则可以考虑将该工作负载部署到单区域,甚至是单可用区。
区域特定价格。您可以在多个区域中预配 Google Cloud 资源。这些资源的价格可能因区域而异。例如,各个区域中的 Compute Engine 实例价格各不相同。如果某些工作负载、数据和流程符合以下要求,您可以将其部署到相应资源价格最低的区域:
- 这些工作负载、数据和进程可以容忍在其他区域中预配其所依赖的资源时产生的额外延迟。
- 这些工作负载、数据和流程不受强制您在特定地区预配这些资源的监管要求的约束。
在尝试通过在其他区域中预配资源来降低费用之前,请评估由此导致的区域间网络流量费用是否会抵消因使用区域特定价格而减少的费用。
网络出站流量费用。Google Cloud 将区域之间的网络流量视为出站流量进行计费。为降低费用,我们建议您将需要在同一区域交换数据的紧密关联的 Google Cloud 资源集中分布,以尽量减少区域间网络流量。例如,您在 Compute Engine 实例上部署的工作负载需要访问存储在 Cloud Storage 存储桶中的数据。如果您在存储桶复制数据的区域中预配该 Compute Engine 实例,则可以避免区域间流量。
最大限度地降低跨 Google Cloud 区域迁移的费用
跨区域迁移环境和 Google Cloud 资源可帮助您将环境扩展到多个区域,并且还有助于您满足关于资源存放位置的监管要求。
如需详细了解如何跨区域迁移,请参阅跨 Google Cloud 区域迁移:使用入门
除了本部分中的建议之外,也请考虑降低多区域环境的费用中的建议,因为它们也适用于降低跨 Google Cloud 区域迁移的费用。
如需降低跨 Google Cloud 区域迁移的费用,请考虑以下方面:
- 数据复制。在评估将数据从一个区域迁移到另一个区域的选项时,我们建议您同时考虑自行管理的迁移和多个 Google Cloud 产品支持的复制功能。例如,您需要跨区域迁移存储在单区域 Cloud Storage 存储桶中的数据。您可以评估和比较将数据迁移到目标区域中另一个单区域存储桶的费用,以及将数据迁移到多区域存储桶并让 Cloud Storage 处理跨区域数据复制的费用。
- 数据迁移策略。在评估跨 Google Cloud 区域迁移数据的数据迁移策略时,我们建议您考虑可最大限度地减少迁移费用的策略。例如,如果采用 Y(写入和读取)策略,您的工作负载会同时向来源区域和目标迁移区域写入数据。使用此策略时,您将只需要在迁移过程中转移历史数据。
如需详细了解如何跨 Google Cloud 区域迁移数据,请参阅迁移到 Google Cloud:转移您的大型数据集。该文档介绍了如何将数据从其他云提供商和本地环境迁移到 Google Cloud,但也适用于跨区域迁移数据。
采用 Cloud FinOps 框架
本文档中的指导旨在设计和实施相关机制和流程来监控和管理费用并减少支出效率低下的问题,通过循序渐进地遵循这些指导,您将能够控制您的云支出。
准备就绪后,您可以采用 Cloud FinOps 框架。采用此框架是一种变革性的改变,它将技术、财务和业务融为一体,推动财务问责制并加速业务价值实现。
如需详细了解 Cloud FinOps 框架,请参阅 Google Cloud 上的 FinOps 使用入门。
后续步骤
- 了解何时寻求迁移帮助。
- 如需查看更多参考架构、图表和最佳实践,请浏览 Cloud 架构中心。
贡献者
作者:Marco Ferrari | 云解决方案架构师