Manajemen cluster dengan AMI khusus - Amazon SageMaker AI

View a markdown version of this page

Manajemen cluster dengan AMI khusus - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Manajemen cluster dengan AMI khusus

Setelah AMI kustom dibuat, Anda dapat menggunakannya untuk membuat atau memperbarui SageMaker HyperPod cluster Amazon. Anda juga dapat meningkatkan atau menambahkan grup instans yang menggunakan AMI baru.

Izin diperlukan untuk operasi klaster

Tambahkan izin berikut ke pengguna admin cluster yang mengoperasikan dan mengkonfigurasi SageMaker HyperPod cluster. Contoh kebijakan berikut mencakup kumpulan izin minimum bagi administrator klaster untuk menjalankan API SageMaker HyperPod inti dan mengelola SageMaker HyperPod klaster dengan AMI kustom.

Perhatikan bahwa izin berbagi snapshot AMI dan AMI EBS disertakan melalui ModifyImageAttribute dan izin ModifySnapshotAttribute API sebagai bagian dari kebijakan berikut. Untuk mencatat izin berbagi, Anda dapat mengambil langkah-langkah berikut:

  • Tambahkan tag untuk mengontrol izin berbagi AMI ke snapshot AMI dan AMI. Misalnya, Anda dapat menandai AMI dengan AllowSharing astrue.

  • Tambahkan kunci konteks dalam kebijakan untuk hanya mengizinkan berbagi AMI untuk AMI yang diberi tag dengan tag tertentu.

Kebijakan berikut adalah kebijakan bawah cakupan untuk memastikan hanya AMI yang diberi tag AllowSharing sebagaimana true diizinkan.

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

Jika Anda berencana untuk menggunakan AMI kustom terenkripsi, maka pastikan bahwa kunci KMS Anda memenuhi izin yang dijelaskan dalam. Pelanggan dikelola AWS KMS key enkripsi untuk SageMaker HyperPod Selain itu, pastikan kunci KMS AMI kustom Anda juga digunakan untuk mengenkripsi volume root Amazon EBS cluster Anda.

Buat klaster

Anda dapat menentukan AMI kustom Anda di ImageId bidang untuk CreateCluster operasi.

Contoh berikut menunjukkan cara membuat klaster dengan AMI kustom, baik dengan maupun tanpa kunci yang dikelola AWS KMS pelanggan untuk mengenkripsi volume cluster.

Gunakan orkestrasi slurm

Contoh berikut menggunakan orkestrasi Amazon Elastic Kubernetes Service. Untuk menggunakan AMI kustom dengan orkestrasi Slurm, ganti dengan. --orchestrator 'Eks={ClusterArn=<eks_cluster_arn>}' --orchestrator 'Slurm={}' Kedua orkestra menggunakan nilai yang sama untuk bidang lainnya, termasuk dan. ImageId --node-provisioning-mode Continuous

Standard example

Contoh berikut menunjukkan cara membuat cluster dengan AMI kustom.

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

Contoh berikut menunjukkan cara membuat klaster dengan AMI kustom sambil menentukan kunci terkelola AWS KMS pelanggan Anda sendiri untuk mengenkripsi volume Amazon EBS cluster. Dimungkinkan untuk menentukan kunci terkelola pelanggan yang berbeda untuk volume root dan volume penyimpanan instance. Jika Anda tidak menggunakan kunci yang dikelola pelanggan di InstanceStorageConfigs bidang, maka kunci KMS yang AWS dimiliki digunakan untuk mengenkripsi volume. Jika Anda menggunakan kunci yang berbeda untuk volume root dan volume penyimpanan instance sekunder, tetapkan kebijakan kunci KMS yang diperlukan pada kedua kunci Anda.

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

Perbarui perangkat lunak cluster

Jika ingin memperbarui grup instans yang ada di klaster dengan AMI kustom, Anda dapat menggunakan UpdateClusterSoftware operasi dan menentukan AMI kustom Anda di ImageId bidang. Perhatikan bahwa kecuali Anda menentukan nama grup instans tertentu dalam permintaan Anda, maka gambar baru diterapkan ke semua grup instans di klaster Anda.

Batasan slurm: menambal dari AMI default

Untuk cluster yang menggunakan orkestrator Slurm, UpdateClusterSoftware tidak mendukung patching dari AMI default SageMaker HyperPod ke AMI kustom, termasuk AMI Slurm publik. SageMaker HyperPod Untuk menggunakan AMI kustom dengan Slurm, tentukan AMI dalam ImageId pembuatan klaster, atau tambahkan grup instans baru dengan AMI kustom yang digunakan. UpdateCluster Penambalan antara dua AMI kustom pada grup instans Slurm yang ada didukung.

Contoh berikut menunjukkan cara memperbarui perangkat lunak platform cluster dengan AMI kustom:

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

Skalakan grup instans

Contoh berikut menunjukkan cara meningkatkan grup instans untuk klaster menggunakan AMI kustom, baik dengan maupun tanpa menggunakan kunci terkelola AWS KMS pelanggan untuk enkripsi.

Standard example

Contoh berikut menunjukkan cara meningkatkan grup instans dengan AMI kustom.

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

Contoh berikut menunjukkan cara memperbarui dan meningkatkan skala klaster Anda dengan AMI khusus sambil menentukan kunci terkelola AWS KMS pelanggan Anda sendiri untuk mengenkripsi volume Amazon EBS cluster. Dimungkinkan untuk menentukan kunci terkelola pelanggan yang berbeda untuk volume root dan volume penyimpanan instance. Jika Anda tidak menggunakan kunci yang dikelola pelanggan di InstanceStorageConfigs bidang, maka kunci KMS yang AWS dimiliki digunakan untuk mengenkripsi volume. Jika Anda menggunakan kunci yang berbeda untuk volume root dan volume penyimpanan instance sekunder, tetapkan kebijakan kunci KMS yang diperlukan pada kedua kunci Anda.

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

Tambahkan grup instance

Contoh berikut menunjukkan cara menambahkan grup instance ke klaster menggunakan AMI kustom:

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