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. Também é possível aumentar a escala verticalmente 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 snapshot da AMI e do EBS da AMI são incluídas por meio das permissões de API ModifyImageAttribute e ModifySnapshotAttribute como parte da política a seguir. Para definir o escopo das permissões de compartilhamento, você pode executar as seguintes etapas:
-
Adicione tags à AMI e ao snapshot da AMI para controlar as permissões de compartilhamento da AMI. Por exemplo, você pode marcar a AMI com AllowSharing como true.
-
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.
- 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"
}
}
}
]
}
Criar um cluster
Você pode especificar sua AMI personalizada no campo ImageId da operação CreateCluster.
Os exemplos a seguir mostram como criar um cluster com uma AMI personalizada, com e sem uma chave gerenciada pelo AWS KMS cliente para criptografar os volumes do cluster.
- Standard example
-
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>"]
}'
- Customer managed key example
-
O exemplo a seguir mostra como criar um cluster com uma AMI personalizada e, ao mesmo tempo, especificar sua própria chave gerenciada pelo AWS KMS cliente para criptografar os volumes Amazon EBS do cluster. É possível especificar diferentes chaves gerenciadas pelo cliente para o volume raiz e o volume de armazenamento da instância. Se você não usar chaves gerenciadas pelo cliente no InstanceStorageConfigs campo, uma chave AWS KMS própria será usada para criptografar os volumes. Se você usar chaves diferentes para o volume raiz e os volumes de armazenamento da instância secundária, defina as políticas de chaves KMS necessárias em ambas as chaves.
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>"]
}'
Atualizar o software do cluster
Se você quiser atualizar um grupo de instâncias existente no cluster com a AMI personalizada, você pode usar a operação UpdateClusterSoftware e especificá-la no campo ImageId. Observe que, a menos que você estipule 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 no cluster.
O seguinte exemplo 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>
Aumentar a escala verticalmente de um grupo de instâncias
Os exemplos a seguir mostram como escalar um grupo de instâncias para um cluster usando uma AMI personalizada, com e sem o uso de uma chave gerenciada pelo AWS KMS cliente para criptografia.
- Standard example
-
O exemplo a seguir mostra como aumentar a escala verticalmente de um grupo de instâncias com 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>"
}]'
- Customer managed key example
-
O exemplo a seguir mostra como atualizar e ampliar seu cluster com uma AMI personalizada e, ao mesmo tempo, especificar sua própria chave gerenciada pelo AWS KMS cliente para criptografar os volumes Amazon EBS do cluster. É possível especificar diferentes chaves gerenciadas pelo cliente para o volume raiz e o volume de armazenamento da instância. Se você não usar chaves gerenciadas pelo cliente no InstanceStorageConfigs campo, uma chave AWS KMS própria será usada para criptografar os volumes. Se você usar chaves diferentes para o volume raiz e os volumes de armazenamento da instância secundária, defina as políticas de chaves KMS necessárias em ambas as chaves.
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"
}
}
]
}]'
Adicionar um grupo de instâncias
O seguinte exemplo 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>"
}'