SageMaker HyperPod 前提 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SageMaker HyperPod 前提

以下各節將引導您完成在開始使用之前需要準備的先決條件 SageMaker HyperPod。

SageMaker HyperPod 配額

您可以為 SageMaker HyperPod AWS 帳戶中的叢集使用量配額建立叢集。

重要

若要進一步了解 SageMaker HyperPod 定價,請參閱SageMaker HyperPod 定價Amazon SageMaker 定價

使用 AWS 管理主控台檢視 Amazon SageMaker HyperPod 配額

查詢叢集使用量的配額預設值和套用值 (也稱為限制),用於 SageMaker HyperPod。

  1. 開啟 Service Quotas 主控台

  2. 在左側導覽窗格中,選擇 AWS 服務

  3. AWS 服務列表中搜索並選擇 Amazon SageMaker

  4. 在 [服務配額] 清單中,您可以看到服務配額名稱、套用的值 (如果有的話)、 AWS 預設配額,以及配額值是否可調整。

  5. 在搜尋列中,輸入叢集使用狀況。這會顯示叢集使用量、套用配額和預設配額的配額。

使用 AWS 管理主控台增加 Amazon SageMaker HyperPod 配額

在帳號或資源層級增加配額。

  1. 若要增加叢集使用量的執行個體配額,請選取您要增加的配額。

  2. 如果配額可調整,您可以根據「可調整性」欄中列出的值,在帳號層級或資源層級要求提高配額。

  3. 增加配額值中,輸入新值。新值必須大於目前的值。

  4. 選擇請求

  5. 若要在主控台中檢視任何擱置中或最近解決的要求,請從服務的詳細資料頁面導覽至 [要求歷程記錄] 索引標籤,或從導覽窗格中選擇 [儀表板]。對於擱置的請求,請選擇請求狀態以開啟請求回條。請求的初始狀態為 Pending (待定)。狀態變更為「要求配額」後,您會看到案例編號與 AWS Support。選擇案例編號,為請求開啟票證。

若要深入了解一般要求增加配額的相關資訊,請參閱《AWS Service Quotas 使用者指南》中的要求增加配額

為使用者和資源設定 IAM SageMaker HyperPod 使用者和角色

重要

允許 Amazon SageMaker 工作室或 Amazon 工作 SageMaker 室經典版創建 Amazon SageMaker 資源的自定義 IAM 政策還必須授予許可才能向這些資源添加標籤。需要向資源添加標籤的權限,因為 Studio 和 Studio 經典版會自動標記它們創建的任何資源。如果 IAM 政策允許 Studio 和 Studio 經典版建立資源,但不允許標記,則在嘗試建立資源時可能會發生 AccessDenied "" 錯誤。如需詳細資訊,請參閱 提供標記資 SageMaker源的權限

AWS Amazon 的受管政策 SageMaker授予建立 SageMaker 資源的權限,已包含在建立這些資源時新增標籤的權限。

SageMaker HyperPod 使用者主要分為三層:AWS 帳戶管理員、叢集管理 (例如雲端架構設計人員) 和叢集使用者 (例如機器學習科學家)。 AWS 帳戶管理員應為叢集管理員附加正確的許可或政策來設定 IAM 使用者。對於叢集管理員, AWS 帳戶管理員還應該建立 IAM 角色,叢集管理員可用於 SageMaker HyperPod 叢集,假設執行必要的 AWS 資源並與其通訊,例如 Amazon S3 CloudWatch、Amazon 和 AWS Systems Manager (SSM)。最後,叢集管理員可以授與叢集使用者透過 SSM 代理程式登入 SageMaker HyperPod叢集的權限。

為叢集管理員設定 IAM 使用者

叢集管理員是操作和設定 SageMaker HyperPod叢集、執行中工作的雲端架構設計人員操作 SageMaker HyperPod。下列原則範例包含叢集管理員執行 SageMaker HyperPod 核心 API 和管理 AWS 帳戶內任何叢集的最低權限集。

{ "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 主控台的權限,請使用《使用指南》中的使 AWS Systems Manager 用 AWS Systems Manager 主控台中提供的範例原則。

您也可以考慮將AmazonSageMakerFullAccess政策附加到 IAM 使用者;不過,請注意,該AmazonSageMakerFullAccess政策會授予整個 SageMaker API 呼叫、功能和資源的許可。

如需 IAM 使用者的一般指引,請參閱使用AWS Identity and Access Management 者指南中的 IAM 使用者

為叢集使用者設定 IAM 使用者

叢集使用者是機器學習工程師,在叢集管理員佈建的 SageMaker HyperPod 叢集節點上登入並執行機器學習工作負載。對於 AWS 帳戶中的叢集使用者,您應該授與執"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 叢集並與必要的 AWS 資源通訊,您必須將受管理的資源連結AmazonSageMakerClusterInstanceRolePolicy至叢集執行個體群組。根據此 AWS 受管政策, SageMaker HyperPod 叢集執行個體群組會擔任與 Amazon CloudWatch、Amazon S3 和 AWS Systems Manager 代理程式 (SSM 代理程式) 通訊的角色。此受管政策是 SageMaker HyperPod資源正常執行的最低要求,因此您必須將具有此政策的 IAM 角色提供給所有執行個體群組。具AmazonSageMakerClusterInstanceRolePolicy有以下權限:

  • log-需要允許發佈 SageMaker HyperPod 記錄資料流。

  • 雲觀察 — 需要允許發布 SageMaker HyperPod指 CloudWatch 標.

  • s3-需 SageMaker HyperPod 要允許使用前綴列出和檢索帳戶中的 Amazon S3 存儲桶中的文件sagemaker-

  • ssmmessages-需要允許 SSM 代理程式與 SSM 後端服務通訊。主體可以使用 SSM 代理程式來建立及開啟控制項和資料通道。 SageMaker 啟動和管理 SSM 代理程式啟動叢集執行個體時。

提示

根據您在為多個執行個體群組設計許可層級時的偏好設定,也可以設定多個 IAM 角色,並將它們附加到不同的執行個體群組。當您設定叢集使用者對特定 SageMaker HyperPod 叢集節點的存取權時,節點會以您手動連結的選擇性權限來擔任該角色。

當您身為 AWS 帳戶管理員或叢集管理員,透過 AWS Systems Manager(另請參閱針對叢集使用者存取控制設定 AWS Systems Manager 和執行身分) 設定叢集使用者對特定叢集節點的存取權限時,叢集節點會以您手動連接的選擇性權限來擔任角色。

建立 IAM 角色後,請記下其名稱和 ARN。您可以在建立 SageMaker HyperPod 叢集時使用這些角色,授與每個執行個體群組與必要 AWS 資源通訊所需的正確權限。

(選用) 搭配 Amazon Virtual Private Cloud 使 SageMaker HyperPod 用的其他許可

如果您想要使用自己的 Amazon Virtual Private Cloud (VPC) 而非預設 SageMaker VPC,則應將下列其他許可新增至的 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 叢集時啟用叢集功能所需的許可。

  • 若要使用 VPC 設定 SageMaker HyperPod 叢集,需要下列ec2權限。

    { "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/*" ] }

針對叢集使用者存取控制設定 AWS Systems Manager 和執行身分

SageMaker HyperPod DLAMI隨附 AWS Systems Manager(SSM) 現成,可協助您管理 SageMaker HyperPod 叢集執行個體群組的存取權。本節說明如何在 SageMaker HyperPod 叢集中建立作業系統 (OS) 使用者,並將其與 IAM 使用者和角色建立關聯。這對於使用 OS 使用者帳戶的認證來驗證 SSM 工作階段非常有用。

在您的 AWS 帳戶中啟用執行身分

身為 AWS 帳戶管理員或雲端管理員,您可以使用 SSM 中的執行身分功能,以 IAM 角色或使用者層級管理 SageMaker HyperPod 叢集的存取。透過此功能,您可以使用與 IAM 角色或使用者相關聯的 OS 使用者來啟動每個 SSM 工作階段。

若要在您的 AWS 帳戶中啟用執行身分,請依照針對 Linux 和 macOS 受管節點開啟執行身分支援中的步驟操作。如果您已在叢集中建立作業系統使用者,請確定您已將其與 IAM 角色或使用者建立關聯,方法是按照步驟 5 中步驟 5 的選項 2 中的指引來標記這些角色或使 macOS 者的關聯。

使用連接到的 Amazon FSx 檔案系統 SageMaker HyperPod 做為共用空間來設定 Linux 使用者

若要完成叢集使用者的設定,以透過 SSM 和共用空間存取 HyperPod 叢集,您需要設定用於新增使用者的指令碼,同時準備建立 HyperPod 叢集的生命週期組態指令碼。在本節中介紹的 GitHub存儲庫中從提供的基礎生命週期指令碼開始 HyperPod,有一個名為從中讀取add_users.sh用戶數據的腳本shared_users.txt。請注意,您需要上傳這兩個檔案,做為準備生命週期指令碼並將其上傳到 S3 儲存貯體的一部分,您將在本節開始使用 SageMaker HyperPod和本節中學習透過 Amazon FSx 共用空間設定多使用者環境

(可選) SageMaker HyperPod 使用您的 Amazon VPC 進行設置

如果您未提供 VPC,請 SageMaker HyperPod 使用預設 SageMaker VPC。若要使用 Amazon VPC 設定 SageMaker HyperPod 叢集,請檢查下列項目。

  • 如果您想要使用自己的 VPC SageMaker HyperPod 與 VPC 中的 AWS 資源連線,則需要在建立時提供 VPC 名稱、ID AWS 區域、子網路 ID 和安全群組識別碼。 SageMaker HyperPod如果您想要建立新的 VPC,請參閱 Amazon 虛擬私有雲使用者指南中的建立預設 VPC 或建立 VPC。

  • 重要的是,您應該在相同 AWS 區域 的可用區域中建立所有資源,並設定安全群組規則以允許 VPC 中的資源之間的連線。例如,假設您在us-west-2中建立 VPC。您應該在可用區域的此 VPC 中建立子網路us-west-2a,並建立一個安全群組,以允許來自安全性群組內的所有內送 (輸入) 流量和所有輸出流量。

  • 您還需要確保 VPC 已連接到 Amazon Simple Storage Service (S3)。如果您設定 VPC,則 SageMaker HyperPod 執行個體群組無法存取網際網路,因此無法連線到 Amazon S3 以存取或存放生命週期指令碼、訓練資料和模型成品等檔案。若要在使用虛擬私人雲端時與 Amazon S3 建立連線,您應該建立 VPC 端點。透過建立 VPC 端點,您可以允許 SageMaker HyperPod 執行個體群組存取相同 VPC 內的 S3 儲存貯體。我們建議您也建立自訂政策,該政策僅允許來自私有 VPC 的請求存取 S3 儲存貯體。如需詳細資訊,請參閱AWS PrivateLink 指南中的 Amazon S3 端點

  • 如果您想要使用已啟用 EFA 的執行個體建立 HyperPod 叢集,請務必設定安全性群組,以允許進出安全性群組本身的所有輸入和輸出流量。若要進一步了解,請參閱 Amazon EC2 使用者指南中的步驟 1:準備啟用 EFA 的安全群組

(選擇性) SageMaker HyperPod 使用亞馬遜 FSx 進行設定以獲得光澤

若要開始使用 SageMaker HyperPod 及對應叢集與 FSx for Lustre Flele 系統) 之間的資料路徑,請選取其中一個支援的路徑。 AWS 區域 SageMaker HyperPod選擇 AWS 區域 您偏好的選項之後,您也應該決定要使用哪個可用區域 (AZ)。如果您在 AZ 中使用的 SageMaker HyperPod 運算節點與 FSx for Lustre Flele 系統的 AZ 不同 AWS 區域,則可能會產生通訊和網路額外負荷。我們建議您使用與 SageMaker HyperPod 服務帳戶相同的實體 AZ,以避免 SageMaker HyperPod 叢集與 FSx for Lustre iles 系統之間的任何跨可用區域流量。另外,請確保您已使用 VPC 對其進行配置。如果您想要使用 Amazon FSx 做為儲存的主要檔案系統,則必須使用 VPC 設定 SageMaker HyperPod 叢集。