Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Gestion de clusters avec personnalisation AMIs
Une fois l'AMI personnalisée créée, vous pouvez l'utiliser pour créer ou mettre à jour un SageMaker HyperPod cluster Amazon. Vous pouvez également augmenter ou ajouter des groupes d'instances qui utilisent la nouvelle AMI.
Autorisations requises pour les opérations du cluster
Ajoutez les autorisations suivantes à l'utilisateur administrateur du cluster qui gère et configure les SageMaker HyperPod clusters. L'exemple de politique suivant inclut l'ensemble minimal d'autorisations permettant aux administrateurs de clusters d'exécuter le SageMaker HyperPod noyau APIs et de gérer les SageMaker HyperPod clusters avec une AMI personnalisée.
Notez que les autorisations de partage de snapshots AMI et AMI EBS sont incluses par le biais ModifyImageAttribute
des autorisations d'ModifySnapshotAttribute
API dans le cadre de la politique suivante. Pour définir les autorisations de partage, vous pouvez suivre les étapes suivantes :
-
Ajoutez des balises pour contrôler les autorisations de partage d'AMI sur l'AMI et les instantanés d'AMI. Par exemple, vous pouvez étiqueter l'AMI avec la mention «
AllowSharing
astrue
». -
Ajoutez la clé de contexte dans la politique pour autoriser le partage d'AMI uniquement pour les AMIs balises associées à certaines balises.
La politique suivante est une politique limitée visant à garantir que seuls les AMIs AllowSharing
tags true
sont autorisés.
{ "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" } } } ] }
Créer un cluster
Vous pouvez spécifier votre AMI personnalisée dans le ImageId
champ de l'CreateCluster
opération.
L'exemple suivant montre comment créer un cluster avec une AMI personnalisée :
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>
"] }'
Mettre à jour le logiciel du cluster
Si vous souhaitez mettre à jour un groupe d'instances existant sur votre cluster avec votre AMI personnalisée, vous pouvez utiliser l'UpdateClusterSoftware
opération et spécifier votre AMI personnalisée dans le ImageId
champ. Notez qu'à moins que vous ne spécifiiez le nom d'un groupe d'instances spécifique dans votre demande, la nouvelle image est appliquée à tous les groupes d'instances de votre cluster.
L'exemple suivant montre comment mettre à jour le logiciel de plate-forme d'un cluster avec une AMI personnalisée :
aws sagemaker update-cluster-software \ --cluster-name
<exampleClusterName>
\ --instance-groups<instanceGroupToUpdate>
\ --image-id<customAmiId>
Augmenter le volume d'un groupe d'instances
L'exemple suivant montre comment augmenter l'échelle d'un groupe d'instances pour un cluster à l'aide d'une AMI personnalisée :
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>
" }]'
Ajouter un groupe d'instances
L'exemple suivant montre comment ajouter un groupe d'instances à un cluster à l'aide d'une AMI personnalisée :
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>
" }'