优化 Cloud Run 服务费用的最佳实践

优化 Cloud Run 服务可使资源分配与实际需求保持一致,从而减少支出。实施经济高效的配置可防止过度预配,同时保持服务的可靠性和性能。没有一种解决方案能够适用于所有情况,因此您需要监控自己的需求、预算和资源,以确定最适合自己的方案。 请务必根据自己的需求、预算和资源来确定最适合自己的方案。

本文档中介绍的最佳实践专门针对 Cloud Run, 不包括其他 Google Cloud 产品。

资源配置

优化服务以降低费用需要考虑许多不同的配置。您可以根据自己的需求调整这些配置,以创建可靠且经济高效的服务。

选择适当的区域

服务的部署位置会影响总费用。 Cloud Run 使用双层区域价格 模式。与第 2 层区域相比,第 1 层区域的每个 vCPU 和内存的费用较低,因此请考虑部署到第 1 层区域。

需要进行身份验证

配置 Cloud Run 服务时,您可以从以下两种身份验证选项中选择一种:

  • 允许公开访问:无需进行身份验证检查。
  • 需要进行身份验证:只有经过身份验证的用户才能访问您的 Cloud Run 服务。

我们建议您要求进行身份验证,除非您有允许公开访问的特定需求。这样可以防止出现不必要的请求,从而避免产生费用。

如果您使用 Identity-Aware Proxy (IAP) 管理用户, IAP 可能会产生自己的相关费用。

比较基于实例的结算方式与基于请求的结算方式

Cloud Run 服务支持 两种结算设置

  • 基于请求的结算方式(默认):您需要按请求付费,此外,还需要为在请求处理期间消耗的 vCPU 和内存按秒支付更高的费率。
  • 基于实例的结算方式:您需要为 实例的整个生命周期付费。没有按请求收费,vCPU 和内存的按秒费率也较低。

对于流量稳定且缓慢变化的服务,请考虑使用基于实例的结算方式。较低的计算费率和无按请求收费带来的节省超过了为请求之间的空闲时间付费的费用。对于流量偶尔出现、突发或激增的服务,请考虑使用基于请求的结算方式。如果您仍不确定使用哪种结算设置,请参阅 Recommender。Recommender 会查看 Cloud Run 服务在过去一个月内接收的流量,如果基于实例的结算方式费用更低,则建议将基于请求的结算方式改为基于实例的结算方式。

在服务级配置服务伸缩

如需建立费用安全基准,请为您的服务配置最大实例数 。设置较高的最大实例数会优先考虑可用性,但可能会因意外的流量高峰或配置错误而带来潜在的结算风险。您应在首次部署服务时在服务级配置此设置,以建立费用基准。如需了解其他 费用控制工具,请参阅资源分配配额结算预算和提醒

优化 CPU 和内存利用率

Cloud Run 服务的费用受其 CPU/内存配置和服务活跃时长的影响,以及其他因素的影响。过度预配资源可能会增加费用。如需确定哪种配置可能最适合您的服务,请执行以下操作:

  1. 建立基准配置。
  2. 在 Cloud Monitoring 中测试 CPU 和内存利用率指标时,监控您的指标。
  3. 根据需要调整配置。

如果 CPU 利用率在峰值负载下始终较低,请考虑减少 vCPU 分配。如果延迟时间较长,请考虑增加 vCPU 分配。

如果内存利用率始终较低,请考虑减少分配的内存。 如果延迟时间较长且内存利用率接近 100%,请考虑增加分配的内存。如果您遇到内存不足 (OOM) 错误,则应增加分配的内存或修改应用,以防止内存泄漏或减少内存使用量。请参阅 Cloud Monitoring 信息中心 ,以更好地了解内存利用率。

配置 GPU

所有使用 GPU 的 Cloud Run 服务都必须配置基于实例的结算方式。这意味着,您需要为 Cloud Run 实例的整个生命周期付费,即使没有传入请求也是如此。GPU 所需的最低 CPU 和内存配置也会影响 Cloud Run 服务的费用。默认情况下,GPU 可用区级冗余处于开启状态。关闭 GPU 可用区级冗余会降低每 GPU 秒的费用,但无法保证在故障切换场景中预留容量。

优化网络费用

为服务配置网络选项时,请考虑以下事项:

  • 将资源共置:尽量将 Cloud Run 服务部署在与后端数据库(如 Cloud SQL 或 Firestore)和 Cloud Storage 存储分区相同的区域中。同一区域内资源之间的数据传输是免费的。 Google Cloud
  • 切换到直接 VPC 出站流量:如果您要安全地将流量安全地路由到内部 VPC 网络资源,请考虑从无服务器 VPC 访问 通道连接器切换到 直接 VPC 出站流量。直接 VPC 出站流量会缩减至零,从而消除与连接器实例相关的基准计算开销和空闲费用。
  • 使用 Cloud CDN:将 Cloud CDN放在 Cloud Run 服务前面,以卸载静态资产和高度可缓存的内容。从边缘传送数据比直接从 Cloud Run 支付标准互联网出站流量的费用要便宜得多。
  • 监控互联网出站流量:入站流量(入站)始终免费,并且您 每月在北美地区可获得 1 GiB 的免费互联网出站数据传输。请将监控工作重点放在跨区域边界或超出免费层的出站流量上。

配置并发设置

处理请求的实例越多,Cloud Run 分配的 CPU 和内存就越多,费用也就越高。较高的并发设置可让较少的实例处理相同的请求量,从而降低费用。不过,应用代码必须能够高效处理并行请求。如需了解详情,请参阅 调整并发以实现自动扩缩和资源利用率

承诺使用折扣

承诺使用折扣 (CUD) 提供折扣价格,以换取您承诺在指定期限内持续使用 Cloud Run。CUD 在 Cloud Billing 账号级层适用。您可以为 Cloud Run 资源购买 Compute 灵活 CUD。Compute 灵活 CUD 不适用于 GPU 或网络。如需了解详情,请参阅 Compute 灵活承诺使用折扣

实用工具

您可以使用以下工具更好地了解费用,并帮助避免费用超支。

Cloud Run 概览:结算面板

Cloud Run 概览页面会在“结算”面板中显示每个资源 名称的费用。这些数字反映了每个资源在所选时间范围内的总费用。此工具可帮助您更好地了解资源的费用。

预算提醒

在 Cloud Billing 中创建 预算提醒 ,以按照计划费用来跟踪实际费用。预算提醒是一种提醒机制,会在支出超出阈值时触发通知,而不是硬性支出上限。结算数据可能会延迟,这可能会影响您收到提醒的时间。

预算支出上限

如果您在 Cloud Billing 控制台中配置 Cloud Billing 预算支出上限 ,这些上限会自动应用于项目中的所有 Cloud Run 资源类型。

您可以直接从 Cloud Run 控制台 概览页面监控支出上限进度。当您达到支出上限时, Google Cloud 系统会暂停所有 Cloud Run 工作负载,以防止以下 Cloud Run 资源产生更多费用:

  • 服务:任何现有服务都将无法提供流量,并返回 5xx 错误。
  • 作业:新的任务执行无法启动,正在执行的任务无法完成。
  • 工作器池:任何现有实例都会停止处理任务。

如果您超出支出上限,您将收到提醒通知,并在 Cloud Run 控制台中看到 强制执行横幅。如需恢复运行,您必须在 Cloud Run 控制台概览页面中解除或调整上限。

Cloud Billing

Cloud Billing 是一系列工具,可 帮助您跟踪和了解 Google Cloud 支出。这些工具可帮助您监控使用费用、预测支出并找出节省费用的机会。

成本探索器

借助成本探索器,您可以了解 资源的费用和利用率。使用成本探索器可以:

  • 按费用过滤资源,以查看哪些资源最昂贵。
  • 了解 vCPU、GPU、网络等配置在费用中所占的比例。
  • 跟踪资源配置更改对月度账单的影响。

Google Cloud 价格计算器

价格概览包含有助于更好地了解价格模式的信息。Google Cloud Google Cloud 您还可以在其中找到 详细价格表。 您可以使用 价格计算器添加和配置产品,以估算费用。

Recommender

Recommender 是一种工具,可为 Cloud 产品提供 使用建议和数据分析。

Recommender 会自动查看 Cloud Run 服务在过去一个月内接收的流量,如果基于实例的结算方式费用更低,则建议将基于请求的结算方式改为基于实例的结算方式。

Cloud Hub 优化

您可以在 Cloud Hub 的 “优化”页面上查看服务的摘要费用数据、利用率数据和费用优化 建议 Google Cloud 。