【问题标题】:How to schedule AppEngine Flex instance to stop and start in Google Cloud?如何安排 AppEngine Flex 实例在 Google Cloud 中停止和启动?
【发布时间】:2021-03-09 16:29:55
【问题描述】:

我需要降低 Google Cloud AppEngine Flex 帐户的费用。我需要在运行时间自动启动实例,然后在晚上停止它们。这一切的每一天。我找到了有关 Compute Engine 的信息,但没有找到有关 AppEngine 的信息。

【问题讨论】:

  • App Engine 正在使用自动缩放。自动缩放documentation中的一切你都看过了吗?
  • 谢谢@Jin。我刚刚检查了文档。我已将 app.yaml 从手动缩放(实例:1;资源:cpu:0.5)更改为自动缩放(max_num_instances:1;资源:cpu:0.05)。计费图表的金额似乎下降了。
  • @menafrancisco 如果我为您的问题创建一个社区 Wiki 答案,您会介意吗?帮助其他用户找到他们需求的正确答案。
  • 嗨@MarioGranados,继续。我是在 Stackoverflow 中发布的新手,如果您认为我应该支持更多信息,请告诉我。
  • 没有必要,如果您认为是一个好的答案请接受它,或者如果您认为需要更多内容,请随时编辑它。我好心提醒你,这个community wiki answer 没有给我任何声誉,所以请不要担心。

标签: google-cloud-platform app-engine-flexible


【解决方案1】:

您的 App Engine flex 不能缩放到 0。您需要考虑自动扩展到 0 的其他产品(App Engine 标准或 Cloud Run)或重新设计您的架构。

您可以想象部署在 Compute Engine 上,从而使用 Cloud Scheduler 来安排停止和启动。


如果你真的要使用App Engine Flex,那就更难了,因为,当你在默认服务上时,你不能删除所有版本,至少需要服务。这里的想法是在 App Engine 上部署 2 个服务:

  1. 您的 App Engine flex 应用
  2. App Engine 标准(例如没有任何内容或维护页面的虚拟)

我们的想法是在晚上将 100% 的流量提升到标准版本,以卸载 App Engine flex 并在夜间不支付任何费用。早上,将100%的流量推广到Flex版本。

【讨论】:

  • @gblaquiere “你不能缩放到 0”是什么意思?昨天我将 manual_scaling 和 cpu: 0.5 更改为 automatic_scaling 和 cpu: 0.05。计费/报告图表中的 Flex Instance Core Hours 将值 5 美元更改为 0 美元。然而,在计费/概览图表中,预测成本与昨天相同,为 180 美元。 App Engine Flex 中的 4 个实例运行正常。
  • 你不能设置一个cpu bellow 1(最小值是1,然后是偶数。检查doc。你的min instance是1,min cpu is 1。所以你会付钱至少 1 个具有 1 个 cpu 的实例的全职工作。它不会扩展到 0(0 个实例 -> 不支付任何费用!)
  • @menafrancisco - 注意您正在更改哪些变量。如果您将cpu_utilization 设置为较低的值,App Engine 将启动更多实例。确保您了解每个设置的作用。
  • 我解决了将架构从 Google Endpoints 和 App Engine Flex 更改为 Api Gateway 和 Cloud Run 的计费问题,将 4 个实例平台(每天 5.76 美元)减少到几乎 0 美元,但 API 服务器可用性相同。
【解决方案2】:

App Engine 提供 capacity 以根据应用程序指标进行缩减和扩展。

自动缩放

自动缩放根据请求创建实例 率、响应延迟和其他应用程序指标。你可以 为这些指标中的每一个指定阈值,以及最小值 数量实例以始终保持运行。

要存档此文件,您需要 configure your App.yaml 并添加 automatic_scaling 选项。

automatic_scaling:
  min_num_instances: 1
  max_num_instances: 15
  cool_down_period_sec: 180
  cpu_utilization:
      target_utilization: 0.6
  target_concurrent_requests: 100

您可以将min_num_instancesmax_num_instances 中的参数调整为1(或更大)的值,以符合您的预算和结算需求

【讨论】:

    猜你喜欢
    • 2020-11-17
    • 2020-09-25
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 2018-04-25
    • 2014-01-30
    • 2022-11-18
    • 2020-03-17
    相关资源
    最近更新 更多