Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Gestione dei cluster con funzionalità personalizzate AMIs
Dopo aver creato l'AMI personalizzata, puoi utilizzarla per creare o aggiornare un SageMaker HyperPod cluster Amazon. Puoi anche aumentare verticalmente o aggiungere gruppi di istanze che utilizzano la nuova AMI.
Autorizzazioni necessarie per le operazioni del cluster
Aggiungi le seguenti autorizzazioni all'utente amministratore del cluster che gestisce e configura i SageMaker HyperPod cluster. Il seguente esempio di policy include il set minimo di autorizzazioni per gli amministratori dei cluster per eseguire il SageMaker HyperPod core APIs e gestire SageMaker HyperPod i cluster con AMI personalizzate.
Tieni presente che le autorizzazioni di condivisione degli snapshot con AMI e AMI EBS sono incluse tramite le autorizzazioni API ModifyImageAttribute e ModifySnapshotAttribute nell’ambito della policy seguente. Per definire l’ambito delle autorizzazioni di condivisione, procedi nel seguente modo:
-
Aggiungi tag per controllare le autorizzazioni di condivisione delle AMI nelle AMI e negli snapshot AMI. Ad esempio, puoi taggare l’AMI impostando AllowSharing come true.
-
Aggiungi la chiave di contesto nella policy per consentire la condivisione AMI solo per i AMIs tag con determinati tag.
La seguente politica è una politica ristretta per garantire che true siano consentiti solo i AMIs tag con AllowSharing as.
- 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"
}
}
}
]
}
Se prevedi di utilizzare un’AMI personalizzata crittografata, assicurati che la tua chiave KMS soddisfi le autorizzazioni descritte in AWS KMS keyCrittografia gestita dal cliente per SageMaker HyperPod. Inoltre, assicurati che la chiave KMS dell’AMI personalizzata venga utilizzata anche per crittografare il volume root Amazon EBS del cluster.
Creazione di un cluster
Puoi specificare l’AMI personalizzata nel campo ImageId relativo all’operazione CreateCluster.
Gli esempi seguenti mostrano come creare un cluster con un'AMI personalizzata, con e senza una chiave gestita AWS KMS dal cliente per la crittografia dei volumi del cluster.
- Standard example
-
L’esempio seguente mostra come creare un cluster con un’AMI personalizzata.
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
-
L'esempio seguente mostra come creare un cluster con un'AMI personalizzata specificando la propria chiave gestita AWS KMS dal cliente per crittografare i volumi Amazon EBS del cluster. È possibile specificare diverse chiavi gestite dal cliente per il volume root e il volume di archiviazione dell'istanza. Se non si utilizzano chiavi gestite dal cliente sul InstanceStorageConfigs campo, viene utilizzata una chiave KMS di AWS proprietà per crittografare i volumi. Se utilizzi chiavi diverse per il volume principale e per i volumi di storage delle istanze secondarie, imposta le policy delle chiavi KMS richieste su entrambe le chiavi.
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>"]
}'
Aggiornamento del software del cluster
Per aggiornare un gruppo di istanze esistente sul cluster con la tua AMI personalizzata, puoi utilizzare l’operazione UpdateClusterSoftware e specificare l’AMI personalizzata nel campo ImageId. Tieni presente che, a meno che non indichi il nome di un gruppo di istanze specifico nella richiesta, la nuova immagine viene applicata a tutti i gruppi di istanze del cluster.
L’esempio seguente mostra come aggiornare il software della piattaforma di un cluster con un’AMI personalizzata:
aws sagemaker update-cluster-software \
--cluster-name <exampleClusterName> \
--instance-groups <instanceGroupToUpdate> \
--image-id <customAmiId>
Aumento verticale di un gruppo di istanze
Gli esempi seguenti mostrano come scalare un gruppo di istanze per un cluster utilizzando un'AMI personalizzata, con e senza l'utilizzo di una chiave gestita AWS KMS dal cliente per la crittografia.
- Standard example
-
L’esempio seguente spiega come aumentare verticalmente un gruppo di istanze con un’AMI personalizzata.
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
-
L'esempio seguente mostra come aggiornare e scalare il cluster con un'AMI personalizzata specificando al contempo la propria chiave gestita AWS KMS dal cliente per crittografare i volumi Amazon EBS del cluster. È possibile specificare diverse chiavi gestite dal cliente per il volume root e il volume di storage dell'istanza. Se non si utilizzano chiavi gestite dal cliente sul InstanceStorageConfigs campo, viene utilizzata una chiave KMS di AWS proprietà per crittografare i volumi. Se utilizzi chiavi diverse per il volume principale e per i volumi di storage delle istanze secondarie, imposta le policy delle chiavi KMS richieste su entrambe le chiavi.
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"
}
}
]
}]'
Aggiunta di un gruppo di istanze
L’esempio seguente mostra come aggiungere un gruppo di istanze a un cluster utilizzando un’AMI personalizzata:
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>"
}'