使用自訂 AMIs叢集管理 - Amazon SageMaker AI

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

使用自訂 AMIs叢集管理

建置自訂 AMI 之後,您可以使用它來建立或更新 Amazon SageMaker HyperPod 叢集。您也可以擴展或新增使用新 AMI 的執行個體群組。

叢集操作所需的許可

將下列許可新增至操作和設定 SageMaker HyperPod 叢集的叢集管理員使用者。下列政策範例包含叢集管理員執行 SageMaker HyperPod 核心 APIs,以及使用自訂 AMI 管理 SageMaker HyperPod 叢集的最低許可集。

請注意,AMI 和 AMI EBS 快照共用許可會透過 ModifyImageAttributeModifySnapshotAttribute API 許可包含在下列政策中。若要縮小共用許可範圍,您可以採取下列步驟:

  • 新增標籤以控制 AMI 和 AMI 快照的 AMI 共用許可。例如,您可以將 AMI 標記為 AllowSharing true

  • 在政策中新增內容索引鍵,只允許使用特定標籤標記的 AMI 共用 AMIs。

下列政策是範圍縮小政策,以確保只AllowSharingtrue允許使用 標記AMIs。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::111122223333:role/your-execution-role-name" }, { "Effect": "Allow", "Action": [ "sagemaker:CreateCluster", "sagemaker:DeleteCluster", "sagemaker:DescribeCluster", "sagemaker:DescribeCluterNode", "sagemaker:ListClusterNodes", "sagemaker:ListClusters", "sagemaker:UpdateCluster", "sagemaker:UpdateClusterSoftware", "sagemaker:BatchDeleteClusterNodes", "eks:DescribeCluster", "eks:CreateAccessEntry", "eks:DescribeAccessEntry", "eks:DeleteAccessEntry", "eks:AssociateAccessPolicy", "iam:CreateServiceLinkedRole", "ec2:DescribeImages", "ec2:DescribeSnapshots" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:ModifyImageAttribute", "ec2:ModifySnapshotAttribute" ], "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/AllowSharing": "true" } } } ] }

建立叢集

您可以在 CreateCluster 操作的 ImageId 欄位中指定自訂 AMI。

下列範例示範如何使用自訂 AMI 建立叢集:

aws sagemaker create-cluster \ --cluster-name <exampleClusterName> \ --orchestrator 'Eks={ClusterArn='<eks_cluster_arn>'}' \ --node-provisioning-mode Continuous \ --instance-groups '{ "InstanceGroupName": "<exampleGroupName>", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "LifeCycleConfig": { "SourceS3Uri": "<s3://amzn-s3-demo-bucket>", "OnCreate": "on_create_noop.sh" }, "ImageId": "<your_custom_ami>", "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>", "ThreadsPerCore": 1, "InstanceStorageConfigs": [ { "EbsVolumeConfig": { "VolumeSizeInGB": 200 } } ] }' --vpc-config '{ "SecurityGroupIds": ["<security_group>"], "Subnets": ["<subnet>"] }'

更新叢集軟體

如果您想要使用自訂 AMI 更新叢集上的現有執行個體群組,您可以使用 UpdateClusterSoftware操作,並在 ImageId 欄位中指定自訂 AMI。請注意,除非您在請求中指定特定執行個體群組的名稱,否則新映像會套用至叢集中的所有執行個體群組。

下列範例示範如何使用自訂 AMI 更新叢集的平台軟體:

aws sagemaker update-cluster-software \ --cluster-name <exampleClusterName> \ --instance-groups <instanceGroupToUpdate> \ --image-id <customAmiId>

擴展執行個體群組

下列範例示範如何使用自訂 AMI 擴展叢集的執行個體群組:

aws sagemaker update-cluster \ --cluster-name <exampleClusterName> --instance-groups '[{ "InstanceGroupName": "<exampleGroupName>", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "LifeCycleConfig": { "SourceS3Uri": "<s3://amzn-s3-demo-bucket>", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>", "ThreadsPerCore": 1, "ImageId": "<your_custom_ami>" }]'

新增執行個體群組

下列範例示範如何使用自訂 AMI 將執行個體群組新增至叢集:

aws sagemaker update-cluster \ --cluster-name "<exampleClusterName>" \ --instance-groups '{ "InstanceGroupName": "<exampleGroupName>", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "LifeCycleConfig": { "SourceS3Uri": "<s3://amzn-s3-demo-bucket>", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>", "ThreadsPerCore": 1, "ImageId": "<your_custom_ami>" }' '{ "InstanceGroupName": "<exampleGroupName2>", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "<s3://amzn-s3-demo-bucket>", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>", "ThreadsPerCore": 1, "ImageId": "<your_custom_ami>" }'