Einen Custom erstellen AWS ParallelCluster AMI - AWS ParallelCluster

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.

Das PCUI basiert auf einer serverlosen Architektur und kann in den meisten Fällen im Rahmen des AWS kostenlosen Kontingents verwendet werden. Weitere Informationen finden Sie unter PCUIkostet.

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

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, können Netzwerkfehler auftreten. 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:

  1. Folgen Sie dem Ändern Sie eine AWS ParallelCluster AMI Ansatz, der diesen Befehl umgeht.

  2. 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:

  1. 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.

  2. 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>
  3. 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-configuration IMAGE_CONFIG.yaml --region REGION { "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-imageverwendet 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.

  4. 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 --region REGION # 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" }
  5. 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 --region REGION

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 --region REGION --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 IMAGE_ID --region REGION \ --query 'logStreams[*].logStreamName' "3.7.0/1" ] $ pcluster get-image-log-events --image-id IMAGE_ID --region REGION \ --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 --region REGION { "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 --region REGION \ --bucket BUCKET_NAME --bucket-prefix BUCKET_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 \ --region REGION --bucket BUCKET_NAME --bucket-prefix BUCKET_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:

New Amazon EC2 console
  1. Suchen Sie dieAMI, die dem spezifischen entspricht AWS-Region , den Sie verwenden. Um es zu finden, verwenden Sie den pcluster list-official-imagesBefehl mit dem --region Parameter, um die spezifischen AWS-Region und --os und --architecture Parameter auszuwählen, um nach den gewünschten AMI Parametern für das Betriebssystem und die Architektur zu filtern, die Sie verwenden möchten. Rufen Sie aus der Ausgabe die EC2 Amazon-Image-ID ab.

  2. Melden Sie sich bei der an AWS Management Console und öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

  3. Wählen Sie im Navigationsbereich Bilder und dann AMIs. Suchen Sie nach der abgerufenen EC2 Image-ID, wählen Sie die AMI aus und wählen Sie Instanz starten aus AMI.

  4. Scrollen Sie nach unten und wählen Sie Ihren Instance-Typ aus.

  5. Wählen Sie Ihr Schlüsselpaar und starten Sie die Instance.

  6. Melden Sie sich mit dem Betriebssystembenutzer und Ihrem SSH Schlüssel.

  7. Passen Sie Ihre Instanz manuell an Ihre Anforderungen an.

  8. Führen Sie den folgenden Befehl aus, um Ihre Instanz für die AMI Erstellung vorzubereiten.

    sudo /usr/local/sbin/ami_cleanup.sh
  9. Wählen Sie in der Konsole Instance state und Stop instance aus.

    Navigieren Sie zu Instances, wählen Sie die neue Instance aus, wählen Sie Instance state und Stop instance aus.

  10. Erstellen Sie mit der EC2 Amazon-Konsole oder dem AWS CLI Create-Image eine neue AMI aus der Instance.

    Von der EC2 Amazon-Konsole
    1. Wählen Sie im Navigationsbereich Instances aus.

    2. Wählen Sie die Instance aus, die Sie erstellt und geändert haben.

    3. Wählen Sie unter Aktionen die Option Image und dann Image erstellen aus.

    4. Wählen Sie Image erstellen aus.

  11. Geben Sie die neue AMI ID in das CustomAmiFeld in Ihrer Cluster-Konfiguration ein und erstellen Sie einen Cluster.

Old Amazon EC2 console
  1. Finden Sie AWS ParallelCluster AMI die, die der von Ihnen verwendeten AWS-Region Spezifik entspricht. Um es zu finden, können Sie den pcluster list-official-imagesBefehl mit dem --region Parameter verwenden, um die spezifischen AWS-Region und --os und --architecture Parameter auszuwählen, um nach den gewünschten AMI Parametern für das Betriebssystem und die Architektur zu filtern, die Sie verwenden möchten. Aus der Ausgabe können Sie die EC2 Amazon-Image-ID abrufen.

  2. Melden Sie sich bei der an AWS Management Console und öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

  3. Wählen Sie im Navigationsbereich Bilder und dann AMIs. Stellen Sie den Filter für Öffentliche Bilder ein und suchen Sie nach der abgerufenen EC2 Image-ID, wählen Sie die AMI aus und wählen Sie Starten aus.

  4. Wählen Sie Ihren Instance-Typ und wählen Sie Weiter: Instance-Details konfigurieren oder Überprüfen und starten, um Ihre Instance zu starten.

  5. Wählen Sie Launch, wählen Sie Ihr Schlüsselpaar und dann Launch Instances aus.

  6. Melden Sie sich mit dem Betriebssystembenutzer und Ihrem SSH Schlüssel bei Ihrer Instance an. Für weitere Informationen navigieren Sie zu Instances, wählen Sie die neue Instance aus und klicken Sie auf Connect.

  7. Passen Sie Ihre Instance manuell an Ihre Anforderungen an.

  8. Führen Sie den folgenden Befehl aus, um Ihre Instanz für die AMI Erstellung vorzubereiten:

    sudo /usr/local/sbin/ami_cleanup.sh
  9. Wählen Sie in der EC2 Amazon-Konsole im Navigationsbereich Instances, wählen Sie Ihre neue Instance aus und wählen Sie Actions, Instance State und Stop aus.

  10. Erstellen Sie mit der EC2 Amazon-Konsole oder dem AWS CLI Create-Image eine neue AMI aus der Instance.

    Von der EC2 Amazon-Konsole
    1. Wählen Sie im Navigationsbereich Instances aus.

    2. Wählen Sie die Instance aus, die Sie erstellt und geändert haben.

    3. Wählen Sie unter Aktionen die Option Image und dann Create Image aus.

    4. Wählen Sie Image erstellen aus.

  11. Geben Sie die neue AMI ID in das CustomAmiFeld in Ihrer Cluster-Konfiguration ein und erstellen Sie einen Cluster.