사용자 지정 AMIs 사용한 클러스터 관리 - Amazon SageMaker AI

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

사용자 지정 AMIs 사용한 클러스터 관리

사용자 지정 AMI를 빌드한 후 이를 사용하여 Amazon SageMaker HyperPod 클러스터를 생성하거나 업데이트할 수 있습니다. 새 AMI를 사용하는 인스턴스 그룹을 확장하거나 추가할 수도 있습니다.

클러스터 작업에 필요한 권한

SageMaker HyperPod 클러스터를 작동하고 구성하는 클러스터 관리자 사용자에게 다음 권한을 추가합니다. 다음 정책 예제에는 클러스터 관리자가 SageMaker HyperPod 코어 APIs를 실행하고 사용자 지정 AMI를 사용하여 SageMaker HyperPod 클러스터를 관리할 수 있는 최소 권한 세트가 포함되어 있습니다.

AMI 및 AMI EBS 스냅샷 공유 권한은 ModifyImageAttributeModifySnapshotAttribute API 권한을 통해 다음 정책의 일부로 포함됩니다. 공유 권한 범위 축소의 경우 다음 단계를 수행할 수 있습니다.

  • 태그를 추가하여 AMI 및 AMI 스냅샷에 대한 AMI 공유 권한을 제어합니다. 예를 들어 AMI에 AllowSharing로 태그를 지정할 수 있습니다true.

  • 정책에 컨텍스트 키를 추가하여 특정 태그로 태그가 지정된 AMI에 대한 AMIs 공유만 허용합니다.

다음 정책은 허용되는 AllowSharing 대로 태그가 지정된 AMIs만 보장하기 위한 범위 축소 정책true입니다.

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

클러스터 생성

CreateCluster 작업의 ImageId 필드에 사용자 지정 AMI를 지정할 수 있습니다.

다음 예제에서는 사용자 지정 AMI를 사용하여 클러스터를 생성하는 방법을 보여줍니다.

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

클러스터 소프트웨어 업데이트

사용자 지정 AMI를 사용하여 클러스터의 기존 인스턴스 그룹을 업데이트하려는 경우 UpdateClusterSoftware 작업을 사용하고 ImageId 필드에 사용자 지정 AMI를 지정할 수 있습니다. 요청에 특정 인스턴스 그룹의 이름을 지정하지 않으면 클러스터의 모든 인스턴스 그룹에 새 이미지가 적용됩니다.

다음 예제에서는 클러스터의 플랫폼 소프트웨어를 사용자 지정 AMI로 업데이트하는 방법을 보여줍니다.

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

인스턴스 그룹 확장

다음 예제에서는 사용자 지정 AMI를 사용하여 클러스터의 인스턴스 그룹을 확장하는 방법을 보여줍니다.

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

인스턴스 그룹 추가

다음 예제에서는 사용자 지정 AMI를 사용하여 클러스터에 인스턴스 그룹을 추가하는 방법을 보여줍니다.

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