本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用自訂 AMIs叢集管理
建置自訂 AMI 之後,您可以使用它來建立或更新 Amazon SageMaker HyperPod 叢集。您也可以擴展或新增使用新 AMI 的執行個體群組。
叢集操作所需的許可
將下列許可新增至操作和設定 SageMaker HyperPod 叢集的叢集管理員使用者。下列政策範例包含叢集管理員執行 SageMaker HyperPod 核心 APIs,以及使用自訂 AMI 管理 SageMaker HyperPod 叢集的最低許可集。
請注意,AMI 和 AMI EBS 快照共用許可會透過 ModifyImageAttribute
和 ModifySnapshotAttribute
API 許可包含在下列政策中。若要縮小共用許可範圍,您可以採取下列步驟:
-
新增標籤以控制 AMI 和 AMI 快照的 AMI 共用許可。例如,您可以將 AMI 標記為
AllowSharing
true
。 -
在政策中新增內容索引鍵,只允許使用特定標籤標記的 AMI 共用 AMIs。
下列政策是範圍縮小政策,以確保只AllowSharing
true
允許使用 標記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>
" }'