Amazon SageMaker 和 Application Auto Scaling - Application Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon SageMaker 和 Application Auto Scaling

您可以使用目标跟踪扩展策略、分步扩展策略和计划的扩展来扩展 SageMaker 端点变体、无服务器端点的预置并发以及推理组件。

使用以下信息可帮助您将 SageMaker 与 Application Auto Scaling 集成。

为 SageMaker 创建的服务相关角色

使用 Application Auto Scaling 将 SageMaker 资源注册为可扩展目标时,将在您的 Amazon Web Services 账户 中自动创建以下服务相关角色。此角色允许 Application Auto Scaling 在您的账户中执行受支持的操作。有关更多信息,请参阅 Application Auto Scaling 的服务相关角色

  • AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint

服务相关角色使用的服务委托人

上一节中的服务相关角色只能由为角色定义的信任关系授权的服务委托人担任。Application Auto Scaling 使用的服务相关角色为以下服务委托人授予访问权限:

  • sagemaker.application-autoscaling.amazonaws.com

使用 Application Auto Scaling 将 SageMaker 终端节点变体注册为可扩展目标

Application Auto Scaling 需要一个可扩展目标,然后才能为 SageMaker 模型(变体)创建扩缩策略或计划的操作。可扩展目标是 Application Auto Scaling 可以横向扩展或横向缩减的资源。可扩展目标由资源 ID、可扩展维度和命名空间的组合唯一标识。

如果您使用 SageMaker 控制台配置弹性伸缩,SageMaker 会自动为您注册一个可扩展的目标。

如果要使用 Amazon CLI 或 Amazon 软件开发工具包之一配置弹性伸缩,您可以使用以下选项:

  • Amazon CLI:

    为产品变体调用 register-scalable-target 命令。以下示例为名为 my-variant 的产品变体(在 my-endpoint 端点上运行)注册所需的实例计数,最小容量为一个实例,最大容量为八个实例。

    aws application-autoscaling register-scalable-target \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredInstanceCount \ --resource-id endpoint/my-endpoint/variant/my-variant \ --min-capacity 1 \ --max-capacity 8

    如果成功,该命令会返回可扩展目标的 ARN。

    { "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }
  • Amazon 软件开发工具包:

    调用 RegisterScalableTarget 操作并提供 ResourceIdScalableDimensionServiceNamespaceMinCapacityMaxCapacity 作为参数。

使用 Application Auto Scaling 将无服务器端点的预置并发注册为可扩展目标

Application Auto Scaling 也需要一个可扩展目标,然后才能为无服务器端点预置并发创建扩缩策略或计划的操作。

如果您使用 SageMaker 控制台配置弹性伸缩,SageMaker 会自动为您注册一个可扩展的目标。

如果没有自动注册,请使用以下方法之一注册可扩展目标:

  • Amazon CLI:

    为产品变体调用 register-scalable-target 命令。以下示例为名为 my-variant 的产品变体(在 my-endpoint 端点上运行)注册预置并发,最小容量为一个实例,最大容量为十个实例。

    aws application-autoscaling register-scalable-target \ --service-namespace sagemaker \ --scalable-dimension sagemaker:variant:DesiredProvisionedConcurrency \ --resource-id endpoint/my-endpoint/variant/my-variant \ --min-capacity 1 \ --max-capacity 10

    如果成功,该命令会返回可扩展目标的 ARN。

    { "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }
  • Amazon 软件开发工具包:

    调用 RegisterScalableTarget 操作并提供 ResourceIdScalableDimensionServiceNamespaceMinCapacityMaxCapacity 作为参数。

使用 Application Auto Scaling 将推理组件注册为可扩展目标

Application Auto Scaling 也需要一个可扩展目标,然后才能为推理组件创建扩展策略或计划的操作。

  • Amazon CLI:

    为推理组件调用 register-scalable-target 命令。以下示例为名为 my-inference-component 的推理组件注册所需的副本计数,最小容量为零个副本,最大容量为三个副本。

    aws application-autoscaling register-scalable-target \ --service-namespace sagemaker \ --scalable-dimension sagemaker:inference-component:DesiredCopyCount \ --resource-id inference-component/my-inference-component \ --min-capacity 0 \ --max-capacity 3

    如果成功,该命令会返回可扩展目标的 ARN。

    { "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }
  • Amazon 软件开发工具包:

    调用 RegisterScalableTarget 操作并提供 ResourceIdScalableDimensionServiceNamespaceMinCapacityMaxCapacity 作为参数。

如果您刚刚开始使用 Application Auto Scaling,则可以在《Amazon SageMaker 开发人员指南》中找到有关扩展 SageMaker 资源的其它有用信息:

注意

2023 年,SageMaker 推出了在实时推理端点上构建的新推理功能。可以使用端点配置创建 SageMaker 端点,该端点配置定义了端点的实例类型和初始实例计数。然后,创建一个推理组件,它是一个 SageMaker 托管对象,可用于将模型部署到端点。有关扩展推理组件的信息,请参阅 Amazon 博客上的 Amazon SageMaker adds new inference capabilities to help reduce foundation model deployment costs and latencyReduce model deployment costs by 50% on average using the latest features of Amazon SageMaker