在云中运行的最大好处之一是能够扩展和缩减以满足需求并减少运营支出。当您遇到客户需求的意外变化时,尤其如此。
在 Google Cloud,我们有一整支解决方案架构师团队,致力于帮助客户管理他们的云运营费用。 多年来与我们最大的客户合作,我们发现了一些人们在寻找优化成本的方法时往往会错过的常见问题,并在本篇文章中为您汇总。 我们认为,遵循这些最佳实践将帮助您根据业务需求调整云成本,从而度过这些充满挑战、不可预测的时期。
1.了解计费和成本管理工具
由于云的按需、可变性质,如果您不密切监控成本,成本就会逐渐上升。 一旦您了解了您的成本,您就可以开始实施控制并优化您的支出。 为了解决这个问题,Google Cloud 提供了一套强大的免费计费和成本管理工具,可以为您提供跟上云部署所需的可见性和洞察力。
在高层次上,学习寻找诸如“哪些项目成本最高,为什么?”之类的东西,以根据您的业务需求开始、组织和构建成本。然后,使用计费报告深入研究服务以获得 一目了然的成本视图。您还应该学习如何使用标签将成本归因回部门或团队,并构建自己的自定义仪表板以获得更精细的成本视图。您还可以使用配额、预算和警报来密切监控 您当前的成本趋势并随着时间的推移对其进行预测,以降低超支的风险。
2.只需为您需要的计算付费
既然您对云的支出有了更好的了解,是时候将目光投向最昂贵的项目,以识别那些无法提供足够业务价值的计算资源。
识别空闲虚拟机(和磁盘):减少 Google Cloud Platform (GCP) 费用的最简单方法是摆脱那些不再使用的资源。想想那些后来被取消优先级的概念验证项目,或者没有人愿意删除的僵尸实例。 Google Cloud 提供了多个 Recommender 可以帮助您优化这些资源,包括一个空闲虚拟机建议,它可以根据使用情况指标识别非活动虚拟机 (VM) 和永久性磁盘。
不过,在删除虚拟机时,请务必小心谨慎。在删除资源之前,问问自己,“删除此资源会产生什么潜在影响,如果需要,我该如何重新创建它?”删除实例会删除底层磁盘及其所有数据。一种最佳做法是在删除实例之前对其进行快照。或者,您可以选择简单地停止虚拟机,这会终止实例,但会保留磁盘或 IP 地址等资源,直到您分离或删除它们。
安排虚拟机自动启动和停止:像 Compute Engine 这样的平台的好处是您只需为您使用的计算资源付费。 生产系统倾向于 24/7 全天候运行; 但是,开发、测试或个人环境中的虚拟机往往只在工作时间使用,关闭它们可以为您节省很多钱! 例如,周一到周五每天运行 10 小时的虚拟机每月的运行成本比让它运行的成本低 75%。
这里是我们开发的无服务器解决方案,可帮助你大规模自动化和管理自动虚拟机关机。
适当调整虚拟机:在 Google Cloud 上,您可以通过创建具有适当 CPU 和 RAM 数量的自定义机器类型来满足您的需求,并实现成本的显著节约。 但是工作负载要求会随着时间而改变。 曾经优化过的实例现在服务的用户和流量可能会减少。 为了提供帮助,我们的大小调整建议可以向您展示如何根据 vCPU 和 RAM 使用情况的变化有效地缩小您的机器类型。 这些针对您的实例机器类型(或托管实例组)的大小调整建议基于 Stackdriver Monitoring 在过去 8 天收集的系统指标生成的。
利用抢占式虚拟机:抢占式虚拟机是价格实惠的计算实例,可以使用长达 24 小时,并且比常规实例便宜 80%。 抢占式虚拟机非常适合容错工作负载,例如大数据、基因组学、媒体转码、财务建模和模拟。 您还可以通过设置专门的托管实例组,混合使用常规实例和抢占式实例,以更快、更经济高效地完成计算密集型工作负载。
但是为什么要将抢占式虚拟机限制在 Compute Engine 环境中呢?您是否知道 Dataproc中的 GPU、GKE 集群和辅助实例也可以使用抢占式虚拟机?现在,您还可以通过使用灵活的资源调度来为常规实例补充可抢占式虚拟机,从而降低 Cloud Dataflow 流式(和批处理)分析成本。
3.优化云存储成本和性能
当您在自己的数据中心运行时,存储往往会迷失在整体基础架构成本中,从而更难进行适当的成本管理。但在云中,存储作为单独的行项目计费,因此注意存储利用率和配置可以节省大量成本。
存储需求(就如同计算那样)总是在不断变化。首次设置环境时选取的存储类可能不再适合给定的工作负荷。此外,Cloud Storage已经走过了漫长的道路 - 它提供了许多一年前没有的新功能。
如果您想节省存储空间,这里有一些不错的地方。
存储类别:Cloud Storage 提供各种存储类别——standard、nearline,、coldline 和archival,所有这些都具有不同的成本并且它们拥有自己最适合的用例。 如果您只使用standard类别,则可能是时候查看您的工作负载并重新评估您的数据被访问的频率了。 根据我们的经验,许多公司将standard类别存储用于归档目的,并且可以通过利用nearline或coldline类别存储来减少支出。 在某些情况下,如果您将对象用于法律发现等冷存储用例,新的archival类别存储可能会提供更多成本节约。
生命周期策略:您不仅可以通过使用不同的存储类别来节省资金,还可以通过对象生命周期管理自动实现。 通过配置生命周期策略,您可以以编程方式设置对象以根据一组条件调整其存储类别,甚至在不再需要时将其完全删除。例如,假设您和您的团队在创建数据的第一个月内分析数据;除此之外,您只需将其用于监管目的。在这种情况下,只需设置一个策略,在您的对象达到 31 天后将您的存储调整为coldline或archival。
重复数据删除:存储环境中另一个常见的浪费来源是重复数据。 当然,也有必要的时候。 例如,您可能希望跨多个地理区域复制数据集,以便本地团队可以快速访问它。 然而,根据我们与客户合作的经验,大量重复数据是版本控制不严的结果,由此产生的重复数据可能很麻烦,而且管理起来也很昂贵。
幸运的是,有很多方法可以防止重复数据,以及防止数据被错误删除的工具。这里有几点是需要考虑的:
如果您试图通过单一事实来源保持弹性,则使用多区域存储桶可能比在不同存储桶中创建多个副本更有意义。 使用此功能,您将为存储的对象启用地理冗余。这将确保您的数据在两个或多个位置异步复制。 这可以防止发生自然灾害时出现区域故障。
许多重复数据来自未正确使用 Cloud Storage 对象版本控制功能。对象版本控制可防止数据被覆盖或意外删除,但它创建的重复项确实可以加起来。您真的需要五份数据吗?只要受到保护,一个可能就足够了。担心无法回滚?您可以设置对象版本控制策略以确保您拥有适当数量的副本。 还在为不小心丢失东西而烦恼吗?考虑使用存储桶锁定功能,这有助于确保在特定日期或时间之前不会删除项目。这对于证明对几个重要法规的合规性非常有用。简而言之,如果您使用对象版本控制,则可以使用多种功能来确保数据安全,而不会不必要地浪费空间。
4.调整您的数据仓库
各种规模的组织都在寻求 BigQuery 的现代数据分析方法。 但是,某些配置比其他配置更昂贵。 让我们快速检查一下您的 BigQuery 环境并设置一些预防措施来帮助您降低成本。
实施控制:您最不需要的就是长期运行并增加成本的长查询。 要限制查询成本,请使用最大字节数计费设置。 超出限制将导致查询失败,但您也不会为此付费,如下所示。
除了在查询级别启用成本控制外,您还可以将类似的逻辑应用于用户和项目。
使用分区和聚簇:尽可能对表进行分区和聚簇可以帮助大大降低处理查询的成本,并提高性能。今天,您可以根据摄取时间、日期、时间戳或整数范围列对表进行分区。为了确保您的查询和作业利用分区表,我们还建议您启用 Require partition 过滤器,这会强制用户在 WHERE 子句中包含分区列。
分区的另一个好处是,BigQuery 通过将数据移动到长期存储中,自动将 90 天内未编辑的每个分区或表的存储价格降低 50%。将您的数据保存在 BigQuery 中,而不是费力地将其迁移到较低分层的存储中,这样更经济、更方便。将表或分区移至长期存储时,不会降低性能、持久性、可用性或任何其他功能。
检查流式插入:您可以通过两种方式将数据加载到 BigQuery 中:作为批处理加载作业,或通过实时流式传输,使用流式插入。在优化您的 BigQuery 成本时,首先要做的是检查您的账单,看看您是否需要为流式插入付费。 如果您愿意,请问自己:“我是否需要在 BigQuery 中立即提供数据(几秒钟而不是几小时)?”和“一旦数据在 BigQuery 中可用,我是否会将这些数据用于任何实时用例?”如果这两个问题的答案是否定的,那么我们建议您切换到批处理加载数据,这是免费的。
使用灵活槽:默认情况下,BigQuery 根据您的查询处理的字节数按不同的按需定价收费。如果您是具有稳定工作负载的大容量客户,您可能会发现从按需切换到统一费率定价更具成本效益,这使您能够以固定的可预测成本处理无限字节。
鉴于快速变化的业务需求,我们最近推出了灵活槽,这是一种购买 BigQuery 插槽的新方式,持续时间短至 60 秒,此外还有每月和每年的统一费率承诺。通过这种按需定价和统一费率定价的组合,您可以快速且经济高效地响应不断变化的分析需求。
5. 过滤网络数据包
日志记录和监控是网络和安全操作的基石。 但是对于跨越云和本地环境的环境,获得对网络使用情况的清晰和全面的可见性可能与确定您的微波炉上个月使用了多少电量一样困难。事实上,Google Cloud 附带了多种工具,可以让您了解网络流量(以及成本)。您还可以进行一些快速而随性的配置更改,以快速降低网络成本。让我们来看看。
确定您的“顶级谈话者”:有没有想过哪些服务占用了您的带宽?Cloud Platform SKU 是一种快速确定您在给定 Google Cloud 服务上花费了多少的方法。了解您的网络布局以及应用程序和用户之间的流量如何流动也很重要。Network Topology 是 Network Intelligence Center 的一个模块,可让您全面了解全球 GCP 部署及其与公共互联网的交互,包括组织范围内的拓扑视图和相关的网络性能指标。这使您能够识别低效部署并采取必要措施来优化您的区域和洲际网络出口成本。观看此简短视频,了解网络智能中心和网络拓扑的概述。
网络服务层级:Google Cloud 允许您在两个网络服务层级之间进行选择:高级和标准。为了在全球范围内获得出色的性能,您可以选择高级级别,这仍然是我们的首选级别。标准层提供较低的性能,但可能是某些成本敏感型工作负载的合适替代方案。
Cloud Logging:您可能不知道,但您确实可以通过过滤掉不再需要的日志来控制网络流量的可见性。查看一些您可以安全排除的常见日志示例。数据访问审计日志也是如此,它可能非常大并且会产生额外费用。例如,您可能不需要为开发项目记录它们。 对于 VPC 流日志和Cloud Load Balancing,您还可以启用采样,这可以显着减少写入数据库的日志流量。您可以将其设置为 1.0(保留 100% 的日志条目)到 0.0(0%,不保留日志)。对于故障排除或自定义用例,您始终可以选择收集特定 VPC 网络或子网的遥测数据,或进一步深入监控特定 VM 实例或虚拟接口
文章信息
相关推荐
