Clusterverwaltung mit benutzerdefiniertem AMIs - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Clusterverwaltung mit benutzerdefiniertem AMIs

Nachdem das benutzerdefinierte AMI erstellt wurde, können Sie es zum Erstellen oder Aktualisieren eines SageMaker HyperPod Amazon-Clusters verwenden. Sie können auch Instanzgruppen, die das neue AMI verwenden, skalieren oder hinzufügen.

Für Cluster-Operationen sind Berechtigungen erforderlich

Fügen Sie dem Cluster-Admin-Benutzer, der Cluster betreibt und konfiguriert SageMaker HyperPod , die folgenden Berechtigungen hinzu. Das folgende Richtlinienbeispiel enthält die Mindestberechtigungen für Clusteradministratoren, um den SageMaker HyperPod Kern auszuführen APIs und SageMaker HyperPod Cluster mit benutzerdefiniertem AMI zu verwalten.

Beachten Sie, dass AMI- und AMI-EBS-Snapshot-Freigabeberechtigungen durch ModifyImageAttribute und ModifySnapshotAttribute API-Berechtigungen als Teil der folgenden Richtlinie enthalten sind. Um den Umfang der Freigabeberechtigungen einzugrenzen, können Sie die folgenden Schritte ausführen:

  • Fügen Sie Tags hinzu, um die AMI-Sharing-Berechtigungen für AMI und AMI-Snapshot zu steuern. Sie können das AMI beispielsweise mit AllowSharing as kennzeichnentrue.

  • Fügen Sie der Richtlinie den Kontextschlüssel hinzu, um die AMI-Sharing nur für mit bestimmten Tags AMIs markierte Personen zuzulassen.

Bei der folgenden Richtlinie handelt es sich um eine Richtlinie mit eingeschränktem Geltungsbereich, mit der sichergestellt werden soll, dass nur mit „AllowSharingals“ AMIs markierte Elemente zulässig true sind.

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

Erstellen eines -Clusters

Sie können Ihr benutzerdefiniertes AMI im ImageId Feld für den CreateCluster Vorgang angeben.

Das folgende Beispiel zeigt, wie ein Cluster mit einem benutzerdefinierten AMI erstellt wird:

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>"] }'

Aktualisieren Sie die Clustersoftware

Wenn Sie eine bestehende Instanzgruppe auf Ihrem Cluster mit Ihrem benutzerdefinierten AMI aktualisieren möchten, können Sie den UpdateClusterSoftware Vorgang verwenden und Ihr benutzerdefiniertes AMI im ImageId Feld angeben. Beachten Sie, dass das neue Image auf alle Instanzgruppen in Ihrem Cluster angewendet wird, sofern Sie nicht den Namen einer bestimmten Instanzgruppe in Ihrer Anfrage angeben.

Das folgende Beispiel zeigt, wie die Plattformsoftware eines Clusters mit einem benutzerdefinierten AMI aktualisiert wird:

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

Skalieren Sie eine Instanzgruppe

Das folgende Beispiel zeigt, wie eine Instanzgruppe für einen Cluster mithilfe eines benutzerdefinierten AMI skaliert wird:

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>" }]'

Fügen Sie eine Instanzgruppe hinzu

Das folgende Beispiel zeigt, wie Sie mithilfe eines benutzerdefinierten AMI eine Instanzgruppe zu einem Cluster hinzufügen:

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>" }'