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 für die Erstellung oder Aktualisierung eines SageMaker HyperPod Amazon-Clusters verwenden. Sie können auch Instance-Gruppen, die das neue AMI verwenden, skalieren oder hinzufügen.

Für Cluster-Operationen erforderliche Berechtigungen

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 die Berechtigungen für die Freigabe von AMI- und AMI-EBS-Snapshots über ModifyImageAttribute- und ModifySnapshotAttribute-API-Berechtigungen als Teil der folgenden Richtlinie enthalten sind. Um die Freigabeberechtigungen einzuschränken, können Sie die folgenden Schritte ausführen:

  • Fügen Sie Tags hinzu, um die AMI-Freigabeberechtigungen für AMI und AMI-Snapshots zu verwalten. Sie können das AMI beispielsweise mit AllowSharing als true markieren.

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

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.

JSON
{ "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:DescribeClusterNode", "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" } } } ] }
Wichtig

Wenn Sie beabsichtigen, ein verschlüsseltes benutzerdefiniertes AMI zu verwenden, stellen Sie sicher, dass Ihr KMS-Schlüssel die unter Vom Kunden verwaltete Verschlüsselung für AWS KMS key SageMaker HyperPod beschriebenen Berechtigungen erfüllt. Stellen Sie außerdem sicher, dass der KMS-Schlüssel Ihrer benutzerdefinierten AMI auch zur Verschlüsselung des Amazon EBS-Root-Volumes Ihres Clusters verwendet wird.

Erstellen eines Clusters

Sie können Ihr benutzerdefiniertes AMI im ImageId-Feld für die CreateCluster-Operation angeben.

Die folgenden Beispiele zeigen, wie Sie einen Cluster mit einem benutzerdefinierten AMI erstellen, sowohl mit als auch ohne einen vom AWS KMS Kunden verwalteten Schlüssel zur Verschlüsselung der Cluster-Volumes.

Standard example

Das folgende Beispiel zeigt, wie ein Cluster mit einer 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>"] }'
Customer managed key example

Das folgende Beispiel zeigt, wie Sie einen Cluster mit einem benutzerdefinierten AMI erstellen und dabei Ihren eigenen, vom AWS KMS Kunden verwalteten Schlüssel für die Verschlüsselung der Amazon EBS-Volumes des Clusters angeben. Es ist möglich, unterschiedliche vom Kunden verwaltete Schlüssel für das Root-Volume und das Instance-Speichervolume anzugeben. Wenn Sie in InstanceStorageConfigs diesem Feld keine vom Kunden verwalteten Schlüssel verwenden, wird ein AWS eigener KMS-Schlüssel zur Verschlüsselung der Volumes verwendet. Wenn Sie unterschiedliche Schlüssel für das Root-Volume und das sekundäre Instance-Speichervolume verwenden, legen Sie die erforderlichen KMS-Schlüsselrichtlinien für Ihre beiden Schlüssel fest.

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:us-east-1:444455556666:role/Admin>", "ThreadsPerCore": 1, "InstanceStorageConfigs": [ # Root volume configuration { "EbsVolumeConfig": { "RootVolume": True, "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id" } }, # Instance storage volume configuration { "EbsVolumeConfig": { "VolumeSizeInGB": 100, "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id" } } ] }' --vpc-config '{ "SecurityGroupIds": ["<security_group>"], "Subnets": ["<subnet>"] }'

Aktualisieren der Cluster-Software

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

Im folgenden Beispiel sehen Sie, wie Sie die Plattformsoftware eines Clusters mit einem benutzerdefinierten AMI aktualisieren:

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

Skalieren einer Instance-Gruppe

Die folgenden Beispiele zeigen, wie Sie eine Instanzgruppe für einen Cluster mithilfe eines benutzerdefinierten AMI skalieren können, sowohl mit als auch ohne Verwendung eines vom AWS KMS Kunden verwalteten Schlüssels für die Verschlüsselung.

Standard example

Im folgenden Beispiel wird gezeigt, wie eine Instance-Gruppe mit einem benutzerdefinierten AMI hochskaliert 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>" }]'
Customer managed key example

Das folgende Beispiel zeigt, wie Sie Ihren Cluster mit einem benutzerdefinierten AMI aktualisieren und skalieren und dabei Ihren eigenen, vom AWS KMS Kunden verwalteten Schlüssel für die Verschlüsselung der Amazon EBS-Volumes des Clusters angeben. Es ist möglich, unterschiedliche vom Kunden verwaltete Schlüssel für das Root-Volume und das Instance-Speichervolume anzugeben. Wenn Sie in InstanceStorageConfigs diesem Feld keine vom Kunden verwalteten Schlüssel verwenden, wird ein AWS eigener KMS-Schlüssel zur Verschlüsselung der Volumes verwendet. Wenn Sie unterschiedliche Schlüssel für das Root-Volume und das sekundäre Instance-Speichervolume verwenden, legen Sie die erforderlichen KMS-Schlüsselrichtlinien für Ihre beiden Schlüssel fest.

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>", "InstanceStorageConfigs": [ # Root volume configuration { "EbsVolumeConfig": { "RootVolume": True, "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id" } }, # Instance storage volume configuration { "EbsVolumeConfig": { "VolumeSizeInGB": 100, "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id" } } ] }]'

Hinzufügen einer Instance-Gruppe

Das folgende Beispiel veranschaulicht, wie eine Instance-Gruppe mithilfe eines benutzerdefinierten AMI zu einem Cluster hinzugefügt 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>" }' '{ "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>" }'