如何解决Google App Engine:不可预测的成本和应用引擎仪表板与帐单导出之间的差异
我已经探索了一个小型数据科学网络应用程序的 App Engine 设置 2 周。由于这是一个为我自己的钱包计费的个人项目,我在 app.yaml
中尝试了一些不同的参数来降低“前端实例”成本。几个变化,我意外的~10倍的成本飙升!!!太痛苦了!!!为了不浪费它,我决定在这里学习一些东西来了解行为:)...别担心,我已经暂时关闭了我的应用程序 ;)
版本 1 app.yaml:
service: my-app
runtime: python37
instance_class: F4
env: standard
automatic_scaling:
min_idle_instances: 1
max_idle_instances: 1
default_expiration: "1m"
inbound_services:
- warmup
entrypoint: gunicorn -b 0.0.0.0:8080 main:server
版本 1,计费结果(从计费帐户导出的 usage.amount_in_pricing_units
):~100 小时/天,与 App Engine 计费状态显示的 Front end Instance Hours
相同。
这是可以理解的,因为我有一个 F4 实例一直处于空闲状态,这将转化为 24*4=96 个前端实例小时。从实际请求中添加实例使用情况(仅来自我),大约 100 小时/天似乎是合理的。
版本 2,我打算降低实例类和实例数量,并延长 default_expiration 并希望它可以帮助应用程序更快地启动以及我认为不会有太大影响的其他一些东西......
service: my-app
runtime: python37
instance_class: F2
env: standard
automatic_scaling:
min_instances: 1
max_instances: 1
target_cpu_utilization: 0.85
max_concurrent_requests: 80
max_pending_latency: 6s
default_expiration: "3h"
inbound_services:
- warmup
entrypoint: gunicorn -b 0.0.0.0:8080 main:server
版本 2,计费结果(从计费帐户导出的 usage.amount_in_pricing_units
):~800hr+/天,哎哟!!!相比之下,来自 App Engine 仪表板帐单状态的 Front end Instance Hours
低于预期的 60 小时/天。这是我迷路的地方:
-
为什么计费使用量比 App Engine Dashboard 大得多,这些使用量来自何处?
-
在哪里可以找到和跟踪 App Engine 仪表板等中未计算使用情况的指标?
解决方法
2020-01-16 问题 #1 的解决方案。
在等待 Google 结算支持人员回复时,我发现了以下内容: Pricing of Google App Engine Flexible env,a $500 lesson
也就是说,过去部署的应用版本也会消耗前端实例时间,这需要现实世界的确认。 (令我惊讶的是,这与 app.yaml 文件无关!!)所以我删除了该应用程序的所有过去版本,让它运行两天,同时使用以下 app.yaml 文件观察实例小时数和计费记录。
service: my-app
runtime: python37
instance_class: F2
env: standard
automatic_scaling:
min_instances: 1
max_instances: 2
max_idle_instances: 1
target_cpu_utilization: 0.85
max_concurrent_requests: 80
max_pending_latency: 6s
default_expiration: "1m"
inbound_services:
- warmup
entrypoint: gunicorn -b 0.0.0.0:8080 main:server
这应该始终运行一个 F2 实例,最多可运行 2 个实例。这一次,应用引擎和导出的计费使用小时都同意 50 小时前端实例小时数。是的!!!每日成本降低至 1/16。
这解决了成本问题 #1,但 #2 仍有待回答。应用引擎仪表板没有显示前端实例的所有计费使用情况是非常有问题的。昨天我从 Google Billing Support Team 那里听说,答案没有帮助(主要是谈论 app.yaml 中的实例编号,这没有帮助),他们似乎对这个问题一无所知,我必须让他们知道。
2020-01-31 跟进问题 #2。
Google 结算支持团队迅速做出回应,承认 App Engine Dashboard 与结算导出之间存在差异,并同意为我调整结算。结果,在高峰期的账单实际上得到了退还。为他们点赞!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。