Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Einen Custom erstellen AWS ParallelCluster AMI
Wenn Sie die AWS ParallelCluster Befehlszeilenschnittstelle (CLI) oder verwendenAPI, zahlen Sie nur für die AWS Ressourcen, die beim Erstellen oder Aktualisieren von AWS ParallelCluster Images und Clustern erstellt oder aktualisiert werden. Weitere Informationen finden Sie unter AWS Dienste, die genutzt werden von AWS ParallelCluster.
Die AWS ParallelCluster Benutzeroberfläche basiert auf einer serverlosen Architektur und kann in den meisten Fällen innerhalb der Kategorie „ AWS Kostenloses Kontingent“ verwendet werden. Weitere Informationen finden Sie unter AWS ParallelCluster Die Benutzeroberfläche kostet.
Wichtig
Wenn Sie eine benutzerdefinierte Version erstellenAMI, müssen Sie die Schritte, die Sie zur Erstellung Ihrer benutzerdefinierten Version verwendet haben, AMI mit jeder neuen AWS ParallelCluster Version wiederholen.
Bevor Sie weiterlesen, empfehlen wir Ihnen, zunächst den Benutzerdefinierte Bootstrap-Aktionen Abschnitt zu lesen. Stellen Sie fest, ob die Änderungen, die Sie vornehmen möchten, skriptgesteuert werden können und in future AWS ParallelCluster Versionen unterstützt werden können.
Auch wenn das Erstellen einer benutzerdefinierten AMI Version im Allgemeinen nicht ideal ist, gibt es bestimmte Szenarien, in denen die Erstellung einer benutzerdefinierten AMI Version erforderlich AWS ParallelCluster ist. In diesem Tutorial wird beschrieben, wie Sie eine benutzerdefinierte Version AMI für diese Szenarien erstellen.
Voraussetzungen
-
AWS ParallelCluster ist installiert.
-
Das AWS CLI ist installiert und konfiguriert.
-
Sie haben ein EC2Amazon-Schlüsselpaar.
-
Sie haben eine IAM Rolle mit den erforderlichen Berechtigungen, um die Images auszuführen pcluster CLI und zu erstellen.
Wie passe ich das an AWS ParallelCluster AMI
Es gibt zwei Möglichkeiten, ein benutzerdefiniertes zu erstellen AWS ParallelCluster AMI. Eine dieser beiden Methoden besteht darin, eine neue AMI mit dem zu erstellen AWS ParallelCluster CLI. Eine andere Methode erfordert, dass Sie manuelle Änderungen vornehmen, um eine neue zu erstellenAMI, die unter Ihrem verfügbar ist AWS-Konto.
Erstellen Sie ein benutzerdefiniertes AWS ParallelCluster AMI
Wenn Sie über eine benutzerdefinierte AMI Software verfügen, können Sie die erforderlichen Änderungen zusätzlich AWS ParallelCluster darauf anwenden. AWS ParallelCluster verlässt sich auf den EC2 Image Builder Builder-Dienst, um maßgeschneiderte zu erstellenAMIs. Weitere Informationen finden Sie im Image Builder Builder-Benutzerhandbuch.
Die wichtigsten Punkte:
-
Der Vorgang dauert etwa 1 Stunde. Diese Zeit kann variieren, wenn während der Erstellung weitere Build/Componentsinstalliert werden müssen.
-
Das AMI ist mit den Versionen der Hauptkomponenten gekennzeichnet. Dazu gehören der Kernel, der Scheduler und der EFATreiber. Eine Teilmenge der Komponentenversionen wird ebenfalls in der AMI Beschreibung angegeben.
-
Ab AWS ParallelCluster Version 3.0.0 kann ein neuer CLI Befehlssatz verwendet werden, um den Lebenszyklus von Images zu verwalten. Dazu zählen build-image, list-images, describe-image und delete-image.
-
Diese Methode ist wiederholbar. Sie können sie erneut ausführen, um auf dem AMIs neuesten Stand zu bleiben (z. B. Betriebssystemupdates), und sie dann verwenden, wenn Sie einen vorhandenen Cluster aktualisieren.
Anmerkung
Wenn Sie diese Methode in der AWS China-Partition verwenden, treten möglicherweise Netzwerkfehler auf. Diese Fehler könnten Ihnen beispielsweise in dem pcluster build-image
Befehl angezeigt werden, wenn er Pakete von GitHub oder aus einem Betriebssystem-Repository herunterlädt. In diesem Fall empfehlen wir Ihnen, eine der folgenden alternativen Methoden zu verwenden:
-
Folgen Sie dem Ändern Sie eine AWS ParallelCluster AMI Ansatz, der diesen Befehl umgeht.
-
Erstellen Sie das Image in einer anderen Partition und Region, z. B.
us-east-1
, und speichern und stellen Sie es dann wieder her, um es in die Region China zu verschieben. Weitere Informationen finden Sie unter Speichern und Wiederherstellen AMI mit S3 im EC2Amazon-Benutzerhandbuch.
Schritte:
-
Konfigurieren Sie Ihre AWS-Konto Anmeldeinformationen so, dass der AWS ParallelCluster Kunde in Ihrem Namen AWS API Operations aufrufen kann. Eine Liste der erforderlichen Berechtigungen finden Sie unter AWS Identity and Access Management Berechtigungen in AWS ParallelCluster.
-
Erstellen Sie eine grundlegende Build-Image-Konfigurationsdatei. Geben Sie dazu die an, die InstanceTypezum Erstellen des Images verwendet werden sollen, und die ParentImage. Diese werden als Ausgangspunkt für die Erstellung des verwendetAMI. Weitere Informationen zu optionalen Build-Parametern finden Sie unter Image-Konfiguration.
Build: InstanceType:
<BUILD_INSTANCE_TYPE>
ParentImage:<BASE_AMI_ID>
-
Verwenden Sie den CLI Befehl pcluster build-image, um AWS ParallelCluster AMI ausgehend von demAMI, was Sie als Basis angeben, einen zu erstellen.
$
pcluster build-image --image-id
IMAGE_ID
--image-configurationIMAGE_CONFIG.yaml
--regionREGION
{ "image": { "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.7.0" } }
Warnung
pcluster build-image
verwendet die StandardeinstellungVPC. Wenn Sie die Standardversion VPC mit AWS Control Tower oder AWS Landing Zone löschen, muss die Subnetz-ID in der Image-Konfigurationsdatei angegeben werden. Weitere Informationen finden Sie unter SubnetId.Eine Liste anderer Parameter finden Sie auf der pcluster build-imageBefehlsreferenzseite. Die Ergebnisse des vorherigen Befehls lauten wie folgt:
-
Ein CloudFormation Stapel wird auf der Grundlage der Image-Konfiguration erstellt. Der Stack enthält alle EC2 Image Builder Builder-Ressourcen, die für den Build erforderlich sind.
-
Die erstellten Ressourcen enthalten die offiziellen Image Builder AWS ParallelCluster Builder-Komponenten, zu denen benutzerdefinierte Image Builder Builder-Komponenten hinzugefügt werden können. Informationen zum Erstellen benutzerdefinierter Komponenten finden Sie in den benutzerdefinierten AMIs Beispielen
im Workshop HPC für Kunden aus dem öffentlichen Sektor. -
EC2Image Builder startet eine Build-Instanz, wendet das AWS ParallelCluster Cookbook an, installiert den AWS ParallelCluster Software-Stack und führt die erforderlichen Konfigurationsaufgaben aus. Das AWS ParallelCluster Kochbuch wird zum Erstellen und Bootstrap verwendet. AWS ParallelCluster
-
Die Instanz wird gestoppt und daraus AMI eine neue erstellt.
-
Eine weitere Instanz wird von der neu erstellten Instanz aus gestartetAMI. Während der Testphase führt EC2 Image Builder Tests aus, die in den Image Builder Builder-Komponenten definiert sind.
-
Wenn der Build erfolgreich ist, wird der Stack gelöscht. Wenn der Build fehlschlägt, wird der Stack beibehalten und kann überprüft werden.
-
-
Sie können den Status des Build-Prozesses überwachen, indem Sie den folgenden Befehl ausführen. Nach Abschluss des Builds können Sie ihn ausführen, um die in der Antwort angegebene AMI ID abzurufen.
$
pcluster describe-image --image-id
IMAGE_ID
--regionREGION
# BEFORE COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?...", }, "imageId": "IMAGE_ID", "imagebuilderImageStatus": "BUILDING", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.7.0", "cloudformationStackTags": [ { "value": "3.7.0", "key": "parallelcluster:version" }, { "value": "IMAGE_ID", "key": "parallelcluster:image_name" }, ... ], "imageBuildLogsArn": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-IMAGE_ID", "cloudformationStackCreationTime": "2022-04-05T21:36:26.176Z" }
# AFTER COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.7.0" }
-
Um Ihren Cluster zu erstellen, geben Sie die AMI ID in das CustomAmiFeld in Ihrer Clusterkonfiguration ein.
Fehlerbehebung und Überwachung des AMI Erstellungsprozesses
Die Image-Erstellung ist in etwa einer Stunde abgeschlossen. Sie können den Prozess überwachen, indem Sie den pcluster describe-imageBefehl oder die Befehle zum Abrufen von Protokollen ausführen.
$
pcluster describe-image --image-id
IMAGE_ID
--regionREGION
Der build-imageBefehl erstellt einen CloudFormation Stapel mit allen EC2 Amazon-Ressourcen, die zum Erstellen des Images erforderlich sind, und startet den EC2 Image Builder Builder-Prozess.
Nach der Ausführung des build-imageBefehls ist es möglich, CloudFormation Stack-Ereignisse mithilfe von abzurufen pcluster get-image-stack-events. Sie können die Ergebnisse mit dem --query
Parameter filtern, um die neuesten Ereignisse zu sehen. Weitere Informationen finden Sie im AWS Command Line Interface Benutzerhandbuch unter Filtern der AWS CLI Ausgabe.
$
pcluster get-image-stack-events --image-id
IMAGE_ID
--regionREGION
--query "events[0]"{ "eventId": "ParallelClusterImage-CREATE_IN_PROGRESS-2022-04-05T21:39:24.725Z", "physicalResourceId": "arn:aws:imagebuilder:us-east-1:123456789012:image/parallelclusterimage-IMAGE_ID/3.7.0/1", "resourceStatus": "CREATE_IN_PROGRESS", "resourceStatusReason": "Resource creation Initiated", "resourceProperties": "{\"InfrastructureConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"ImageRecipeArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/parallelclusterimage-IMAGE_ID/3.7.0\",\"DistributionConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"Tags\":{\"parallelcluster:image_name\":\"IMAGE_ID\",\"parallelcluster:image_id\":\"IMAGE_ID\"}}", "stackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "stackName": "IMAGE_ID", "logicalResourceId": "ParallelClusterImage", "resourceType": "AWS::ImageBuilder::Image", "timestamp": "2022-04-05T21:39:24.725Z" }
Nach etwa 15 Minuten werden die Stack-Ereignisse im Protokollereigniseintrag angezeigt, der sich auf die Erstellung von Image Builder bezieht. Sie können jetzt Image-Log-Streams auflisten und die Image Builder Builder-Schritte mithilfe von pcluster list-image-log-streamspcluster get-image-log-eventsand-Befehlen überwachen.
$
pcluster list-image-log-streams --image-id
"3.7.0/1" ]IMAGE_ID
--regionREGION
\ --query 'logStreams[*].logStreamName'$
pcluster get-image-log-events --image-id
IMAGE_ID
--regionREGION
\ --log-stream-name 3.7.0/1 --limit 3{ "nextToken": "f/36295977202298886557255241372854078762600452615936671762", "prevToken": "b/36295977196879805474012299949460899222346900769983430672", "events": [ { "message": "ExecuteBash: FINISHED EXECUTION", "timestamp": "2022-04-05T22:13:26.633Z" }, { "message": "Document arn:aws:imagebuilder:us-east-1:123456789012:component/parallelclusterimage-test-abcd1234-ef56-gh78-ij90-1234abcd5678/3.7.0/1", "timestamp": "2022-04-05T22:13:26.741Z" }, { "message": "TOE has completed execution successfully", "timestamp": "2022-04-05T22:13:26.819Z" } ] }
Prüfen Sie mit dem describe-imageBefehl weiter, bis Sie den BUILD_COMPLETE
Status sehen.
$
pcluster describe-image --image-id
IMAGE_ID
--regionREGION
{ "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.7.0" }
Wenn Sie ein Problem mit der benutzerdefinierten AMI Erstellung beheben müssen, erstellen Sie ein Archiv der Image-Logs, wie in den folgenden Schritten beschrieben.
Je nach --output
Parameter ist es möglich, die Protokolle in einem Amazon S3 S3-Bucket oder in einer lokalen Datei zu archivieren.
$
pcluster export-image-logs --image-id
IMAGE_ID
--regionREGION
\ --bucketBUCKET_NAME
--bucket-prefixBUCKET_FOLDER
{ "url": "https://BUCKET_NAME.s3.us-east-1.amazonaws.com/BUCKET-FOLDER/IMAGE_ID-logs-202209071136.tar.gz?AWSAccessKeyId=..." }
$
pcluster export-image-logs --image-id
IMAGE_ID
\ --regionREGION
--bucketBUCKET_NAME
--bucket-prefixBUCKET_FOLDER
--output-file /tmp/archive.tar.gz{ "path": "/tmp/archive.tar.gz" }
Das Archiv enthält die CloudWatch Logs-Streams, die sich auf den Image Builder Builder-Prozess und die AWS CloudFormation Stack-Ereignisse beziehen. Die Ausführung des Befehls kann mehrere Minuten dauern.
Benutzerdefiniert verwalten AMIs
Ab AWS ParallelCluster Version 3.0.0 wurde ein neuer Befehlssatz CLI zum Erstellen, Überwachen und Verwalten des Image-Lebenszyklus hinzugefügt. Weitere Informationen zu den Befehlen finden Sie unter pcluster-Befehle.
Ändern Sie eine AWS ParallelCluster AMI
Diese Methode besteht darin, einen Beamten zu modifizieren, AWS ParallelCluster AMI indem zusätzliche Anpassungen hinzugefügt werden. Die Basis AWS ParallelCluster AMIs wird mit neuen Versionen aktualisiert. Diese AMIs enthalten alle Komponenten, die für den Betrieb AWS ParallelCluster bei der Installation und Konfiguration erforderlich sind. Sie können mit einer davon als Basis beginnen.
Die wichtigsten Punkte:
-
Diese Methode ist schneller als der build-imageBefehl. Es handelt sich jedoch um einen manuellen Vorgang, der nicht automatisch wiederholt werden kann.
-
Bei dieser Methode haben Sie keinen Zugriff auf die Befehle zum Abrufen von Protokollen und zur Verwaltung des Image-Lebenszyklus, die über die verfügbar sind. CLI
Schritte: