View a markdown version of this page

AWS Lambda MicroVMs - AWS Lambda

AWS Lambda MicroVMs

如果您要构建的应用程序会有多个用户或人工智能代理连接到计算环境并运行代码(例如交互式开发环境、CI/CD 系统或人工智能沙盒),则需要既能快速启动、在租户之间保持隔离,同时又不需要您管理服务器或联网的计算环境。

AWS Lambda MicroVMs 专为这些使用案例打造。它们属于无服务器计算环境,可提供虚拟机级别的隔离,具有完整的操作系统功能(例如安装系统包或挂载文件系统)、基于快照的快速启动速度以及对入口网络(端口访问以及 HTTP/2、gRPC、WebSockets 支持)和出口网络(公共互联网访问和 VPC 访问)的精细控制。

对于交互式开发环境和人工智能沙盒等交互式使用案例,当最终用户上下文切换到其他任务或等待人工智能处理时,环境可能会长时间处于空闲状态。MicroVM 可以在空闲时暂停运行,从而在保持内存和磁盘状态的同时降低成本。当流量到达时,它们就会恢复。您可以启用自动或程序化暂停-恢复来降低空闲成本,同时在最终用户返回时保持近乎即时的就绪状态。

AWS Lambda MicroVMs 通过 Firecracker 虚拟化提供这些核心功能,这种技术为 Lambda 函数每月超过 15 万亿次的调用提供支持。

要开始使用,请参阅创建您的第一个 MicroVM。有关定价信息,请参阅 AWS Lambda 定价

Lambda MicroVMs 的工作原理

  1. 您需要将应用程序代码和一个 Dockerfile 打包到 zip 存档中,然后将其上传到 Amazon S3。

  2. 您可以调用 Lambda API 来创建 MicroVM 映像。Lambda 会执行您的 Dockerfile、启动您的应用程序并拍摄完全初始化后环境的快照。

  3. 当应用程序需要隔离的环境(用于用户会话、作业或沙盒)时,您可以调用 run-microvm。Lambda 通过快照启动 MicroVM,从而实现快速启动。

  4. 客户端通过其专用 HTTPS 端点连接到正在运行的 MicroVM。无需负载均衡器或入口基础设施。

  5. 空闲时,MicroVM 会暂停运行,从而保留内存和磁盘状态,同时降低成本。当流量返回时,将在内存和磁盘状态完好无损的情况下恢复。暂停-恢复行为可以通过生命周期策略自动配置,也可以通过对 suspend-microvmresume-microvm 的 API 调用直接触发。

  6. 会话结束后,您可以终止 MicroVM 以释放所有资源。

何时需要使用 Lambda MicroVMs

Lambda MicroVMs 非常适合用于执行由用户或人工智能生成的代码,并且需要能够提供强隔离、快速启动和恢复延迟,以及需要开发人员控制环境生命周期和状态保留的执行环境的使用案例。典型的使用案例包括:

  • 交互式代码环境:由用户实时编写和执行代码的开发环境。

  • 人工智能代码执行沙盒:用于安全执行人工智能生成的代码的临时沙盒。

  • 数据分析应用程序:执行由用户提供的脚本的 Jupyter Notebook 和临时数据处理工作负载。

  • 安全扫描:需要隔离执行环境的漏洞评估工具。

  • 强化学习环境:用于人工智能代理评估和训练的隔离沙盒,每次运行都会启动全新的环境。

  • 多租户 CI/CD:需要在租户之间进行隔离的任务执行器。

  • 游戏服务器:以高度隔离的方式执行用户提供的脚本的托管环境。

主要功能

  • 快速启动:MicroVM 从预初始化的快照中恢复,跳过应用程序初始化步骤。请参阅MicroVM 映像

  • 生命周期控制:以编程方式或通过可配置的空闲策略自动暂停、恢复和终止 MicroVM。请参阅运行 MicroVM

  • 灵活联网:MicroVMs 支持通过可配置端口的入站 HTTPS 流量,并使用服务提供的 JWE 身份验证。出站访问是可配置的。访问公共互联网或您的 VPC。有关详细信息,请参阅有关Networking的章节。

  • 灵活的资源分配 — 根据基准或平均使用率配置每台 MicroVM,在峰值活动期间,可以灵活地垂直扩展到配置基准水平的 4 倍。按 MicroVM 的运行时间支付基准费率,并且只需为超过基准水平的实际使用量付费。