Gerenciamento de clusters com personalização AMIs - SageMaker Inteligência Artificial da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciamento de clusters com personalização AMIs

Depois que a AMI personalizada for criada, você poderá usá-la para criar ou atualizar um SageMaker HyperPod cluster da Amazon. Você também pode ampliar ou adicionar grupos de instâncias que usam a nova AMI.

Permissões necessárias para operações de cluster

Adicione as seguintes permissões ao usuário administrador do cluster que opera e configura SageMaker HyperPod clusters. O exemplo de política a seguir inclui o conjunto mínimo de permissões para administradores de cluster executarem o SageMaker HyperPod núcleo APIs e gerenciarem SageMaker HyperPod clusters com AMI personalizada.

Observe que as permissões de compartilhamento de instantâneos da AMI e do AMI EBS estão incluídas por meio ModifyImageAttribute de permissões de ModifySnapshotAttribute API como parte da política a seguir. Para definir o escopo das permissões de compartilhamento, você pode seguir as seguintes etapas:

  • Adicione tags para controlar as permissões de compartilhamento da AMI na AMI e no snapshot da AMI. Por exemplo, você pode marcar a AMI com AllowSharing astrue.

  • Adicione a chave de contexto na política para permitir o compartilhamento de AMI somente para AMIs marcações com determinadas tags.

A política a seguir é uma política de escopo reduzido para garantir que somente AMIs marcados com AllowSharing as true sejam permitidos.

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

Criar um cluster

Você pode especificar sua AMI personalizada no ImageId campo da CreateCluster operação.

O exemplo a seguir mostra como criar um cluster com uma AMI personalizada:

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

Atualize o software do cluster

Se você quiser atualizar um grupo de instâncias existente em seu cluster com sua AMI personalizada, você pode usar a UpdateClusterSoftware operação e especificar sua AMI personalizada no ImageId campo. Observe que, a menos que você especifique o nome de um grupo de instâncias específico em sua solicitação, a nova imagem será aplicada a todos os grupos de instâncias em seu cluster.

O exemplo a seguir mostra como atualizar o software da plataforma de um cluster com uma AMI personalizada:

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

Amplie um grupo de instâncias

O exemplo a seguir mostra como escalar um grupo de instâncias para um cluster usando uma AMI personalizada:

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

Adicionar um grupo de instâncias

O exemplo a seguir mostra como adicionar um grupo de instâncias a um cluster usando uma AMI personalizada:

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