

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

# Manajemen cluster dengan kustom AMIs
<a name="hyperpod-custom-ami-cluster-management"></a>

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
<a name="hyperpod-custom-ami-permissions"></a>

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 SageMaker HyperPod inti APIs 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` as`true`.
+ Tambahkan kunci konteks dalam kebijakan untuk hanya mengizinkan berbagi AMI AMIs agar diberi tag dengan tag tertentu.

Kebijakan berikut adalah kebijakan bawah cakupan untuk memastikan hanya AMIs ditandai dengan `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. [AWS KMS key Enkripsi terkelola pelanggan untuk SageMaker HyperPod](smcluster-cmk.md) Selain itu, pastikan kunci KMS AMI kustom Anda juga digunakan untuk mengenkripsi volume root Amazon EBS cluster Anda.

## Buat klaster
<a name="hyperpod-custom-ami-api-create"></a>

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.

------
#### [ 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
<a name="hyperpod-custom-ami-api-update"></a>

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.

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
<a name="hyperpod-custom-ami-scale-up"></a>

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
<a name="hyperpod-custom-ami-add-instance-group"></a>

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