AWS近日发布了一项名为Lambda Managed Instances的新功能。这项功能允许客户在其自有的Amazon Elastic Compute Cloud(EC2)实例上运行AWS Lambda函数。
根据官方介绍,这一新能力旨在让用户能够访问特定的计算选项,并对稳态工作负载进行成本优化,同时无需牺牲无服务器开发体验。
AWS的高级解决方案架构师Micah Walter解释道:
您可以使用Lambda Managed Instances来定义Lambda函数如何在EC2实例上运行。Amazon Web Services (AWS) 会在您的账户中负责这些实例的设置和管理。您可以访问最新一代的Amazon EC2实例,而AWS则处理所有操作复杂性——包括实例生命周期管理、操作系统补丁、负载均衡和自动扩展。
在底层,AWS Lambda Managed Instances利用容量提供者(capacity providers)来根据特定的计算特征(如实例类型和扩展参数)组织EC2实例,这些配置可通过Lambda控制台或基础设施即代码(IaC)工具完成。
在此设置下,系统通过将请求路由到预置的执行环境来确保高效的资源利用率,从而最大限度地减少冷启动并支持多并发。此外,在流量激增期间,AWS会自动启动新实例进行扩展。同时,内置的安全防护机制可防止资源过载,维持了无需手动配置或实例管理的无服务器操作模型。
通过AWS Lambda Managed Instances,每个执行环境可以同时处理多个请求,通过资源共享来减少计算消耗。更重要的是,用户可以利用Amazon EC2的定价模式,例如Savings Plans和预留实例,与按需定价相比,这些模式最多可提供72%的折扣。
然而,Reddit上的一个讨论提到了成本计算的复杂性:
AWS收取15%的按需价格来管理您的实例,但如果您重写代码以支持多并发且不计费时长,则可以节省成本。因此,运行时间更长的Lambda函数会获得更好的投资回报率。要计算这比直接在我们自己的EC2上托管是否能省钱,似乎需要非常复杂的计算。
其他云厂商也提供各种计算选项的Function-as-a-Service(FaaS)产品,如Azure Functions和Google Cloud Functions。有行业人士在LinkedIn上指出,类似“在专用计划上运行函数”的概念在Azure平台上早已存在。
最后,用户可以通过Lambda控制台、AWS CLI或AWS SDK(支持Node.js、Java、.NET和Python运行时的最新版本)来使用Lambda Managed Instances。该功能目前已在美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈)、亚太地区(东京)和欧洲(爱尔兰)区域上线。
|