Gestion de clusters avec personnalisation AMIs - Amazon SageMaker AI

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'ModifySnapshotAttributeAPI 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 as true ».

  • 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'CreateClusteropé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'UpdateClusterSoftwareopé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>" }'