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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SageMaker HyperPod 先决条件

以下各节将引导您了解在开始使用之前需要准备的先决条件 SageMaker HyperPod。

SageMaker HyperPod 配额

根据 Amazon 账户中的 SageMaker HyperPod 集群使用配额,您可以创建集群。

重要

要了解有关 SageMaker HyperPod 定价的更多信息,请参阅SageMaker HyperPod 定价Amazon SageMaker 定价

使用 Amazon 管理控制台查看 Amazon SageMaker HyperPod 配额

查找集群使用量的配额的默认值和应用值(也称为限制),用于 SageMaker HyperPod。

  1. 打开Service Quotas 控制台

  2. 在左侧导航窗格中,选择 Amazon 服务

  3. Amazon 服务列表中搜索并选择 Amazon SageMaker

  4. 服务配额列表中,您可以看到服务配额名称、应用的值(如果可用)、 Amazon 默认配额以及配额值是否可调整。

  5. 在搜索栏中,键入集群使用情况。这显示了集群使用配额、已应用配额和默认配额。

使用 Amazon 管理控制台增加 Amazon SageMaker HyperPod 配额

增加账户或资源级别的配额。

  1. 要增加集群使用的实例配额,请选择要增加的配额。

  2. 如果配额是可调整的,则您可以根据可调整列中列出的值在账户级别或资源级别申请增加配额。

  3. 对于 “增加配额值”,输入新值。新值必须大于当前值。

  4. 选择请求

  5. 要在控制台中查看任何待处理的请求或最近已解决的请求,请从服务的详细信息页面导航到请求历史记录选项卡,或者从导航窗格中选择 D as hboard。对于待处理的请求,请选择请求状态以打开收到的请求。请求的初始状态为 Pending(待处理)。状态更改为 “已申请配额” 后,您会看到案例编号为 Amazon Web Services Support。选择案例编号以打开请求服务单。

要详细了解如何申请增加配额,请参阅 Service Quotas 用户指南中的申请增加配Amazon 额

为用户和资源设置 IAM SageMaker HyperPod 用户和角色

重要

允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义 IAM 策略还必须授予向这些资源添加标签的权限。需要向资源添加标签的权限,因为 Studio 和 Studio Classic 会自动标记他们创建的任何资源。如果 IAM 策略允许 Studio 和 Studio Classic 创建资源但不允许标记,则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息,请参阅 提供为资源添加标签 SageMaker的权限

Amazon 适用于亚马逊的托管政策 SageMaker授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。

SageMaker HyperPod 用户主要分为三个层:Amazon 账户管理员集群管理员(例如云架构师)和集群用户(例如机器学习科学家)。 Amazon 账户管理员应通过为集群管理员附加正确的权限或策略来设置 IAM 用户。对于集群管理员, Amazon 账户管理员还应创建 IAM 角色,集群管理员可以使用这些角色来假设 SageMaker HyperPod 集群运行并与必要的 Amazon 资源(例如 Amazon S3、Amazon 和 Amazon Systems Manager (SSM))进行通信。 CloudWatch最后,集群管理员可以向集群用户授予通过 SSM 代理登录 SageMaker HyperPod集群的权限。

为集群管理员设置 IAM 用户

集群管理员是云架构师,他们操作和配置 SageMaker HyperPod集群,执行中的任务操作 SageMaker HyperPod。以下策略示例包括集群管理员运行 SageMaker HyperPod 核心 API 和管理 Amazon 账户内任何集群的最低权限集。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateCluster", "sagemaker:ListClusters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeClusterNode", "sagemaker:ListClusterNodes", "sagemaker:UpdateCluster", "sagemaker:UpdateClusterSoftware" ], "Resource": "arn:aws:sagemaker:region:account-id:cluster/*" } ] }

要授予访问 SageMaker 控制台的权限,请使用使用 Amazon SageMaker 控制台所需的权限中提供的示例策略。

要授予访问 SSM 控制台的权限,请使用 Amazon Systems Manager 用户指南使用 Amazon Systems Manager 控制台中提供的示例策略。

您也可以考虑将该AmazonSageMakerFullAccess策略附加到 IAM 用户;但是,请注意,该AmazonSageMakerFullAccess策略授予了对整个 SageMaker API 调用、功能和资源的权限。

有关 IAM 用户的一般指南,请参阅用户指南中的 IAM Amazon Identity and Access Management 用户

为集群用户设置 IAM 用户

集群用户是机器学习工程师,他们在集群管理员配置的 SageMaker HyperPod 集群节点上登录并运行机器学习工作负载。对于您 Amazon 账户中的集群用户,您应授"ssm:StartSession"予运行 SSM start-session 命令的权限。以下是 IAM 用户的策略示例。

所有资源的 IAM 权限

添加以下策略以授予 IAM 用户 SSM 会话访问所有资源的 SSM 目标的权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": "*" } ] }

IAM 角色适用于 SageMaker HyperPod

为了使 SageMaker HyperPod 集群能够运行并与必要的 Amazon 资源通信,您需要将托管AmazonSageMakerClusterInstanceRolePolicy实例组连接到集群实例组。根据此 Amazon 托管策略, SageMaker HyperPod 集群实例组将扮演与 Amazon CloudWatch、Amazon S3 和 Amazon Systems Manager 代理(SSM 代理)通信的角色。此托管策略是 SageMaker HyperPod资源正常运行的最低要求,因此您必须向所有实例组提供具有此策略的 IAM 角色。AmazonSageMakerClusterInstanceRolePolicy具有以下权限:

  • logs-需要 SageMaker HyperPod 允许发布日志流。

  • cloudwatch — 需要 SageMaker HyperPod允许发布 CloudWatch 指标。

  • s3-需要 SageMaker HyperPod 允许列出和检索您账户中带有前缀的 Amazon S3 存储桶中的文件sagemaker-

  • ssmes sages-需要允许 SSM 代理与 SSM 后端服务进行通信。委托人可以使用 SSM 代理来创建和打开控制和数据通道。 SageMaker 在 SSM 代理启动集群实例时启动和管理。

提示

根据您对设计多个实例组权限级别的偏好,您还可以设置多个 IAM 角色并将它们关联到不同的实例组。当您设置集群用户对特定 SageMaker HyperPod 群集节点的访问权限时,这些节点将使用您手动附加的选择性权限来扮演该角色。

作为 Amazon 账户管理员或集群管理员,通过设置集群用户对特定群集节点的访问权限时 Amazon Systems Manager(另请参阅为集群用户访问控制设置 Amazon Systems Manager 和运行方式),群集节点将使用您手动附加的选择性权限来扮演该角色。

创建 IAM 角色后,记下他们的名称和 ARN。您在创建 SageMaker HyperPod 集群时使用这些角色,授予每个实例组与必要 Amazon 资源通信所需的正确权限。

(可选)用于亚马逊 Virtual Priv SageMaker HyperPod ate Cloud 的额外权限

如果您想使用自己的亚马逊虚拟私有云 (VPC) 而不是默认 V SageMaker PC,则应向 IAM 角色添加以下额外权限。 SageMaker HyperPod

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DetachNetworkInterface" ], "Resource": "*" } { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] }

以下列表详细列出了在使用自己的 Amazon VPC 配置 SageMaker HyperPod 集群时需要哪些权限才能启用集群功能。

  • 需要以下ec2权限才能使用您的 VPC 配置 SageMaker HyperPod 集群。

    { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }
  • 启用SageMaker HyperPod 自动恢复功能需要以下ec2权限。

    { "Effect": "Allow", "Action": [ "ec2:DetachNetworkInterface" ], "Resource": "*" }
  • 以下ec2权限 SageMaker HyperPod 允许在您账户内的网络接口上创建标签。

    { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] }

为集群用户访问控制设置 Amazon Systems Manager 和运行方式

SageMaker HyperPod DLAMI开箱即用 Amazon Systems Manager(SSM),可帮助您管理对 SageMaker HyperPod 集群实例组的访问权限。本节介绍如何在 SageMaker HyperPod 集群中创建操作系统 (OS) 用户并将其与 IAM 用户和角色关联。这对于使用操作系统用户帐户的凭据对 SSM 会话进行身份验证非常有用。

在您的 Amazon 账户中启用 Run As

作为 Amazon 账户管理员或云管理员,您可以使用 SSM 中的运行身份功能在 IAM 角色或用户级别管理对 SageMaker HyperPod 集群的访问权限。使用此功能,您可以使用与 IAM 角色或用户关联的操作系统用户启动每个 SSM 会话。

要在您的 Amazon 账户中启用运行身份,请按照 Linux 和 macOS 托管节点启用运行身份支持中的步骤操作。如果您已经在集群中创建了操作系统用户,请确保按照步骤 5 的选项 2 中的指导将他们与 IAM 角色或用户相关联,方法是为他们添加标签,方法是为他们打开 Linux 和 macOS 托管节点的运行身份支持

使用附加到共享空间的 Amazon FSx 文件系统设置 Linux 用户 SageMaker HyperPod

要完成集群用户通过 SSM 和共享空间访问 HyperPod 集群的设置,您需要配置用于添加用户的脚本,同时准备用于创建 HyperPod 集群的生命周期配置脚本。在本节介绍的 GitHub存储库中从提供的基本生命周期脚本开始 HyperPod,有一个名为的脚本add_users.sh可以从中读取用户数据shared_users.txt。请注意,在准备生命周期脚本并将其上传到 S3 存储桶的过程中,您需要上传这两个文件,您将在本节入门 SageMaker HyperPod和部分中学习通过 Amazon FSx 共享空间设置多用户环境

(可选) SageMaker HyperPod 使用您的亚马逊 VPC 进行设置

如果您不提供 VPC,则 SageMaker HyperPod 使用默认 SageMaker VPC。要使用您的 Amazon VPC 设置 SageMaker HyperPod 集群,请检查以下各项。

  • 如果您想使用自己的 VPC 连接 SageMaker HyperPod 您的 VPC 中的 Amazon 资源,则需要在创建时提供 VPC 名称 Amazon Web Services 区域、ID、子网 ID 和安全组 ID SageMaker HyperPod。如果要创建新的 VPC,请参阅 Amazon Virtual Private Cloud 用户指南中的创建默认 VPC 或创建 VPC。

  • 重要的是,您应在同一个可用区中创建所有资源, Amazon Web Services 区域 并配置安全组规则以允许在您的 VPC 中的资源之间建立连接。例如,假设您在中创建了一个 VPC us-west-2。您应该在可用区的此 VPC 中创建一个子网us-west-2a,并创建一个允许来自安全组内部的所有传入(入站)流量和所有出站流量的安全组。

  • 您还需要确保您的 VPC 已连接到 Amazon Simple Storage Service (S3)。如果您配置 VPC,则 SageMaker HyperPod 实例组无法访问互联网,因此无法连接到 Amazon S3 来访问或存储生命周期脚本、训练数据和模型项目等文件。要在使用 VPC 时与 Amazon S3 建立连接,您应该创建一个 VPC 终端节点。通过创建 VPC 终端节点,您可以允许 SageMaker HyperPod 实例组访问同一 VPC 中的 S3 存储桶。我们还建议您创建自定义策略,仅允许来自私有 VPC 的请求访问您的 S3 存储桶。有关更多信息,请参阅Amazon PrivateLink 指南中的 Amazon S3 终端节点

  • 如果要创建具有启用 EFA 的实例的 HyperPod 集群,请确保设置安全组以允许所有进出安全组本身的入站和出站流量。要了解更多信息,请参阅 A mazon EC2 用户指南中的步骤 1:准备启用 EFA 的安全组

(可选) SageMaker HyperPod 使用亚马逊 FSx for Lustre 进行设置

要开始使用 SageMaker HyperPod 和映射集群与 FSx for Lustre 文件系统之间的数据路径,请选择支持的路径之一 Amazon Web Services 区域 。 SageMaker HyperPod选择 Amazon Web Services 区域 自己喜欢的可用区后,还应确定要使用哪个可用区 (AZ)。如果您在可用区中使用的 SageMaker HyperPod 计算节点与在 Amazon Web Services 区域同一可用区中设置 FSx for Lustre 文件系统的可用区不同,则可能会产生通信和网络开销。我们建议您使用与 SageMaker HyperPod 服务账户相同的物理可用区,以避免 SageMaker HyperPod 集群与 FSx for Lustre 文件系统之间出现任何跨可用区流量。此外,请确保已使用您的 VPC 对其进行配置。如果您想使用 Amazon FSx 作为存储的主文件系统,则必须使用 VPC 配置 SageMaker HyperPod 集群。