案例:AWS MLOps Framework - 成本、架构概览

昨天看到了AWS MLOps Framework的两个方案的架构图,以及解决方案简介之後,今天想讨论的是成本(该解决方案的费用)、哪些工具可以用来估算费用、费用注意事项、设计架构注意事项等等。

成本

解决方案的费用

假设在US East (N. Virginia) Region发布这个服务的方案一,也就是单帐号部署版本,预估每个月会花费60.93美元在上面。计算的费用假设一个小时进行一次即时的ML推理服务(model serving),则每个月花费约48.24 美元。(根据2021/09/12的资料。)

且假设每天维护 100 个pipeline运行,每秒运行一个推理请求,模型大小使用了 100 MB 的存储,并且该解决方案总共使用 100 GB 的存储大小。

在这个解决方案当中可以看到:

AWS 服务名称 分类 费用
Amazon API Gateway 基础架构 $4.55
AWS Lambda 基础架构 $0.80
Amazon SageMaker ML $48.24
Amazon S3 资料储存 $2.30
AWS CodePipeline 基础架构 $2.00
Amazon ECR 基础架构 $1.44
AWS CodeBuild 基础架构 $1.60
总额 ~$60.93/月(美金)

一般来说当列出第一版本计算的价格表之後,可以拿这个估算版本,和一起维护ML专案的同事们,从技术面和商业面讨论:这些对於资料量的假设是否合理,对於使用者呼叫服务的使用量是否跟我们的使用者行为一致,需要往上增或是往下降这个估计使用额度。以及在ML的专案上面,这些假设是否足够,有没有漏掉没有预估的地方。

有时候一个专案的估算很依靠经验值,每间公司的商业模式也不尽相同。透过和同事的讨论,让大家对於专案的成本和透明度了解更多,也让这些假设更贴近公司的案例。或者,参考网路上其他的解决方案,和其估算成本的方式,这也是为什麽在这边跟大家分享这个案例。

如何在AWS上估算费用

可以使用AWS calculater来计算,所有的计算币值都以美金为单位。在费用的计算页面,不需要AWS帐号登入,直接点进去就可以计算。通常在讨论费用估算的时候,会用每月成本估算。大部分的计算会根据业务的所在地的区域(region)计算,同时也会看要使用的服务有没有在该区域支援,如果没有的话是不是要跨区域使用某些服务等等。

如果对於每一个服务的价钱计算细节想要有更深入的了解,通常到该服务的价钱页面,就可以看到定价细节,甚至包含几个计算范例让你参考可以怎麽计算。这样就已经足够完成大约的估算了。

还有一些魔鬼的细节,也建议大家有空可以点定价假设和变化或是FAQ页面看一看。里面谈到几个关於价钱估算的常见问题,或是大家在估算的时候常常会没有注意到的细节。像是:使用的地区、价格变动、税务、计算的时间区间、折扣与促销、计费周期、分服务层级定价、以秒计费或分钟小时计费、是否有使用到第三方费用、汇率等等。或是计算范例看一下常见的AWS或是混合云的计算范例。

设计注意事项

客制化

预设的pipeline包含了部署和共享模型,若需要增加训练模型的逻辑,需要从中修改。在Pipeline的开发上,会需要两个关键字:

  • 启用管道(provision pipeline)
    在维护cloudformation部属模板的时候,就可以找到对应的pipeline名称去更换。

值得注意的是:须将适当的 IAM 权限传递给 mlopscloudformationrole,当 AWS CloudFormation 使用这个角色来启用管道时,它有权配置必要的资源。例如,如果您的自定义管道创建 Lambda 函数,则 mlopscloudformationrole 必须具有 lambda:CreateFunction 权限才能预置 Lambda 函数。

  • 获取管道状态(Get pipeline status)

开发的过程,呼叫/pipelinestatus则可以取得pipeline的现况。帮助追踪目前的事件状态。

区域部署

假若要部署在预设的区域之外,先到AWS 区域服务列表确认该服务在你想部署的区域是有支援的。

Reference
[1]. AWS 价格计算机用户指南
[2]. AWS MLOps Framework


<<:  Day1:白兔

>>:  每个人都该学的30个Python技巧|技巧 13:什麽都能装的百宝袋—串列(List)(上)(字幕、衬乐、练习)

DAY8-PHP和MYSQL(二)

前言: 昨天我们成功建立了php网页和mysql资料库的连线,让我们顺利的把一些使用者填写的资料送...

心情管理不好,知识管理如何发挥?

我能同意职员上班不能看股票,因为起起伏伏的线图,也会跟随着心情曲线起伏,让当天无法专注於工作上,毕竟...

day 5 knock, knock我要开始coroutine

coroutine神奇又好用,那我要怎麽开始呢? 官方提供了两种方法,launch和 async l...

[DAY26]Istio延伸功能-External Authorization

External Authorization这功能主要拿来做request的验证,可以在reques...

Day 01-Workshop Google Cloud Platform Get-Started

上一篇:Day 01-引言:Terraform 是个好东西 课程内容与代码会放在 Github 上:...