Erstellen einer benutzerdefinierten AMI
Auf der folgenden Seite wird erklärt, wie Sie mithilfe von Basis-AMIs von Amazon SageMaker HyperPod ein benutzerdefiniertes Amazon Machine Image (AMI) erstellen. Sie wählen zunächst einen Basis-AMI aus und erstellen dann Ihren eigenen benutzerdefinierten AMI mit einer der gängigen Methoden zum Erstellen neuer Images, z. B. AWS CLI.
Auswählen eines Basis-AMIs von SageMaker HyperPod
Sie können mit einer der folgenden Methoden ein Basis-AMI von SageMaker HyperPod auswählen.
Auswahl der AWS-Konsole
Sie können öffentliche SageMaker-HyperPod-AMIs über die AWS-Konsole oder mithilfe des DescribeImages-API-Aufrufs auswählen. SageMaker-HyperPod-AMIs sind öffentlich und in allen AWS-Konto sichtbar. Sie können diese im AMI-Katalog von Amazon EC2 finden, indem Sie einen Filter anwenden, um nach öffentlichen AMIs von Amazon zu suchen.
So finden Sie die AMIs von SageMaker HyperPod in der Konsole:
-
Melden Sie sich bei der Amazon-EC2-Konsole an.
-
Wählen Sie im linken Navigationsbereich AMIs aus.
-
Wählen Sie in der Dropdown-Liste Image-Typ die Option Öffentliche Images aus.
-
Stellen Sie in den Suchleistenfiltern den Filter Eigentümer-Alias auf
amazonein. -
Suchen Sie nach AMIs mit dem Präfix HyperPod EKS und wählen Sie den AMI (vorzugsweise den neuesten) aus, der für Ihren Anwendungsfall geeignet ist. Sie können beispielsweise ein AMI zwischen Kubernetes 1.31 und Kubernetes 1.30 auswählen.
Abrufen der neuesten öffentlichen AMI-ID über AWS CLI
Wenn Sie stets die neueste öffentliche AMI-Version verwenden möchten, empfiehlt es sich, den öffentlichen SSM-Parameter von SageMaker HyperPod zu verwenden, der den Wert der neuesten von SageMaker HyperPod veröffentlichten AMI-ID enthält.
Das folgende Beispiel zeigt, wie Sie die neueste AMI-ID über die AWS CLI abrufen:
aws ssm get-parameter \ --name "/aws/service/sagemaker-hyperpod/ami/x86_64/eks-1.31-amazon-linux-2/latest/ami-id" \ --regionus-east-1\ --query "Parameter.Value" \ --output text
Anmerkung
Ersetzen Sie den Parameternamen nach Bedarf durch die entsprechende Kubernetes-Version. Wenn Sie beispielsweise Kubernetes 1.30 verwenden möchten, verwenden Sie den folgenden Parameter: /aws/service/hyperpod/ami/x86_64/eks-1.30-amazon-linux-2/latest/ami-id
Erstellen Ihrer benutzerdefinierten AMI
Nachdem Sie ein öffentliches AMI von SageMaker HyperPod ausgewählt haben, verwenden Sie diese als Basis-AMI, um mit einer der folgenden Methoden Ihr eigenes benutzerdefiniertes AMI zu erstellen. Beachten Sie, dass dies keine vollständige Liste für die Erstellung von AMIs ist. Sie können jede Methode Ihrer Wahl zum Erstellen von AMIs verwenden. SageMaker HyperPod hat keine spezifische Empfehlung.
-
AWS-Managementkonsole: Sie können eine Amazon-EC2-Instance mit dem SageMaker-HyperPod-AMI starten, die gewünschten Anpassungen vornehmen und anschließend einen AMI aus dieser Instance erstellen.
-
AWS CLI: Sie können den
aws ec2 create-image-Befehl auch verwenden, um nach der Anpassung eines AMI aus einer vorhandenen Amazon-EC2-Instance zu erstellen. -
HashiCorp Packer: Packer ist ein Open-Source-Tool von HashiCorp, mit dem Sie identische Maschinen-Images für mehrere Plattformen aus einer einzigen Quellkonfiguration erstellen können. Es unterstützt die Erstellung von AMIs für AWS und Images für andere Cloud-Anbieter und Virtualisierungsplattformen.
-
Image Builder: EC2 Image Builder ist ein vollständig verwalteter AWS-Service, der die Automatisierung der Erstellung, Wartung, Validierung, Freigabe und Bereitstellung von Linux- oder Windows Server-Images vereinfacht. Weitere Informationen finden Sie im Benutzerhandbuch von EC2 Image Builder.
Erstellen eines benutzerdefinierten AMIs mit kundenseitig verwalteter AWS KMS-Verschlüsselung
In den folgenden Abschnitten wird beschrieben, wie Sie ein benutzerdefiniertes AMI mit einem kundenseitig verwalteten AWS KMS-Schlüssel erstellen, um Ihre HyperPod-Cluster-Volumes zu verschlüsseln. Weitere Informationen zu kundenseitig verwalteten Schlüsseln in HyperPod und zur Gewährung der erforderlichen IAM- und KMS-Schlüsselrichtlinienberechtigungen finden Sie unter Kundenseitig verwaltete AWS KMS key-Verschlüsselung für SageMaker HyperPod. Wenn Sie beabsichtigen, ein benutzerdefiniertes AMI zu verwenden, das mit einem kundenseitig verwalteten Schlüssel verschlüsselt ist, stellen Sie sicher, dass Sie auch das Root-Volume von Amazon EBS Ihres HyperPod-Clusters mit demselben Schlüssel verschlüsseln.
AWS CLI-Beispiel: Erstellen eines neuen AMI mit EC2 Image Builder und einem HyperPod-Basis-Image
Im folgenden Beispiel sehen Sie, wie Sie ein AMI mit Image Builder mit AWS KMS-Verschlüsselung erstellen:
aws imagebuilder create-image-recipe \ name "hyperpod-custom-recipe" \ version "1.0.0" \ parent-image "<hyperpod-base-image-id>" \ block-device-mappings DeviceName="/dev/xvda",Ebs={VolumeSize=100,VolumeType=gp3,Encrypted=true,KmsKeyId=arn:aws:kms:us-east-1:111122223333:key/key-id,DeleteOnTermination=true}
Amazon-EC2-Konsole: ein neues AMI aus einem Amazon EC2 erstellen
So erstellen Sie eine AMI aus einer Amazon-EC2-Instance mithilfe der Amazon-EC2-Konsole:
-
Klicken Sie mit der rechten Maustaste auf Ihre benutzerdefinierte Amazon-EC2-Instance und wählen Sie Image erstellen aus.
-
Wählen Sie im Abschnitt Verschlüsselung die Option Snapshots verschlüsseln aus.
-
Wählen Sie Ihren KMS-Schlüssel aus dem Dropdown-Menü aus. Zum Beispiel:
arn:aws:kms:oder verwenden Sie den Schlüsselalias:us-east-2:111122223333:key/<your-kms-key-id>alias/<your-hyperpod-key>
AWS CLI-Beispiel: Erstellen einer neuen AMI aus einer Amazon-EC2-Instance
Verwenden Sie den aws ec2 create-image-Befehl mit AWS KMS-Verschlüsselung:
aws ec2 create-image \ instance-id "<instance-id>" \ name "MyCustomHyperPodAMI" \ description "Custom HyperPod AMI" \ block-device-mappings '[ { "DeviceName": "/dev/xvda", "Ebs": { "Encrypted": true, "KmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id", "VolumeType": "gp2" } } ]'