Support für Startvorlagen - AWS Batch

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.

Support für Startvorlagen

AWS Batch unterstützt die Verwendung von Amazon EC2 EC2-Startvorlagen in Ihren EC2-Rechenumgebungen. Mit Startvorlagen können Sie die Standardkonfiguration Ihrer AWS Batch Rechenressourcen ändern, ohne benutzerdefinierte AMIs erstellen zu müssen.

Anmerkung

Startvorlagen werden auf AWS Fargate-Ressourcen nicht unterstützt.

Sie müssen eine Startvorlage erstellen, bevor Sie sie mit einer Datenverarbeitungsumgebung verknüpfen können. Sie können eine Startvorlage in der Amazon EC2 EC2-Konsole erstellen. Sie können auch das AWS CLI oder ein AWS SDK verwenden. Die folgende JSON-Datei stellt beispielsweise eine Startvorlage dar, die die Größe des Docker-Datenvolumes für das AWS Batch Standard-Compute-Ressourcen-AMI ändert und es auch so festlegt, dass es verschlüsselt wird.

{ "LaunchTemplateName": "increase-container-volume-encrypt", "LaunchTemplateData": { "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "Encrypted": true, "VolumeSize": 100, "VolumeType": "gp2" } } ] } }

Sie können die vorherige Startvorlage erstellen, indem Sie die JSON-Datei in einer Datei speichern, die aufgerufen wird, lt-data.json und den folgenden AWS CLI Befehl ausführen.

aws ec2 --region <region> create-launch-template --cli-input-json file://lt-data.json

Weitere Informationen zu Startvorlagen finden Sie unter Launching an Instance from a Launch Template im Amazon EC2 EC2-Benutzerhandbuch.

Wenn Sie eine Startvorlage verwenden, um Ihre Datenverarbeitungsumgebung zu erstellen, können Sie die folgenden vorhandenen Parameter der Datenverarbeitungsumgebung in Ihre Startvorlage verschieben:

Anmerkung

Nehmen wir an, dass einer dieser Parameter (mit Ausnahme der Amazon EC2-Tags) sowohl in der Startvorlage als auch in der Konfiguration der Rechenumgebung angegeben ist. Dann haben die Parameter der Rechenumgebung Vorrang. Amazon EC2-Tags werden zwischen der Startvorlage und der Konfiguration der Rechenumgebung zusammengeführt. Wenn der Schlüssel des Tags kollidiert, hat der Wert in der Konfiguration der Rechenumgebung Vorrang.

  • Amazon EC2 EC2-Schlüsselpaar

  • Amazon EC2 EC2-AMI-ID

  • Sicherheitsgruppen-IDs

  • Amazon EC2-Tags

Die folgenden Parameter für Startvorlagen werden von AWS Batch ignoriert:

  • Instance-Typ (Legen Sie beim Erstellen Ihrer Datenverarbeitungsumgebung die gewünschten Instance-Typen fest.)

  • Instance-Rolle (Legen Sie beim Erstellen Ihrer Datenverarbeitungsumgebung die gewünschte Instance-Rolle fest.)

  • Netzwerkschnittstellen-Subnetze (Legen Sie beim Erstellen Ihrer Datenverarbeitungsumgebung die gewünschten Subnetze fest.)

  • Optionen für den Instance-Markt (AWS Batch muss die Spot-Instance-Konfiguration steuern)

  • Deaktivieren Sie die API-Kündigung (AWS Batch muss den Instance-Lebenszyklus kontrollieren)

AWS Batch aktualisiert die Startvorlage nur bei Infrastruktur-Updates mit einer neuen Version der Startvorlage. Weitere Informationen finden Sie unter Aktualisieren von Datenverarbeitungsumgebungen.

Amazon EC2 EC2-Benutzerdaten in Startvorlagen

Sie können Amazon EC2 EC2-Benutzerdaten in Ihrer Startvorlage angeben, die von cloud-init ausgeführt wird, wenn Ihre Instances gestartet werden. Mit Ihren Benutzerdaten können gängige Konfigurationsszenarien durchgeführt werden, einschließlich, aber nicht beschränkt auf die folgenden:

Amazon EC2 EC2-Benutzerdaten in Startvorlagen müssen im mehrteiligen MIME-Archivformat vorliegen. Das liegt daran, dass Ihre Benutzerdaten mit anderen AWS Batch Benutzerdaten zusammengeführt werden, die für die Konfiguration Ihrer Rechenressourcen erforderlich sind. Sie können mehrere Benutzerdatenblöcke in einer einzelnen mehrteiligen MIME-Datei kombinieren. Beispielsweise möchten Sie vielleicht einen Cloud-Boothook, der den Docker-Daemon konfiguriert, mit einem Benutzerdaten-Shell-Skript kombinieren, das Konfigurationsinformationen für den Amazon ECS-Container-Agenten schreibt.

Wenn Sie den AWS::CloudFormation::InitTyp verwenden AWS CloudFormation, kann er zusammen mit dem Hilfsskript cfn-init verwendet werden, um allgemeine Konfigurationsszenarien durchzuführen.

Eine mehrteilige MIME-Datei umfasst folgende Komponenten:

  • Deklaration von Inhaltstyp und Teilgrenze: Content-Type: multipart/mixed; boundary="==BOUNDARY=="

  • Deklaration der MIME-Version: MIME-Version: 1.0

  • Ein oder mehrere Benutzerdatenblöcke, die die folgenden Komponenten enthalten:

    • Die Öffnungsgrenze, die den Beginn eines Benutzerdatenblocks signalisiert:--==BOUNDARY==. Sie müssen die Zeile vor dieser Grenze leer lassen.

    • Die Inhaltstypdeklaration für den Block: Content-Type: text/cloud-config; charset="us-ascii". Weitere Informationen zu Inhaltstypen finden Sie in der Cloud-Init-Dokumentation. Sie müssen die Zeile nach der Inhaltstyp-Deklaration leer lassen.

    • Der Inhalt der Benutzerdaten, z. B. eine Liste von Shell-Befehlen oder cloud-init -Direktiven.

  • Die schließende Grenze, die das Ende der mehrteiligen MIME-Datei signalisiert:--==BOUNDARY==--. Sie müssen die Zeile vor der schließenden Grenze leer lassen.

Im Folgenden finden Sie mehrteilige MIME-Beispieldateien, mit denen Sie Ihre eigenen erstellen können.

Anmerkung

Wenn Sie Benutzerdaten zu einer Startvorlage in der Amazon EC2 EC2-Konsole hinzufügen, können Sie sie als Klartext einfügen. Oder Sie können es aus einer Datei hochladen. Wenn Sie das AWS CLI oder ein AWS SDK verwenden, müssen Sie zuerst die Benutzerdaten base64 codieren und diese Zeichenfolge als Wert des UserData Parameters angeben, wenn Sie CreateLaunchTemplate aufrufen, wie in dieser JSON-Datei gezeigt.

{ "LaunchTemplateName": "base64-user-data", "LaunchTemplateData": { "UserData": "ewogICAgIkxhdW5jaFRlbXBsYXRlTmFtZSI6ICJpbmNyZWFzZS1jb250YWluZXItdm9sdW..." } }

Beispiel: Mounten Sie ein vorhandenes Amazon EFS-Dateisystem

Diese mehrteilige MIME-Beispieldatei konfiguriert die Rechenressource für die Installation des amazon-efs-utils Pakets und das Mounten eines vorhandenen Amazon EFS-Dateisystems unter. /mnt/efs

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" packages: - amazon-efs-utils runcmd: - file_system_id_01=fs-abcdef123 - efs_directory=/mnt/efs - mkdir -p ${efs_directory} - echo "${file_system_id_01}:/ ${efs_directory} efs tls,_netdev" >> /etc/fstab - mount -a -t efs defaults --==MYBOUNDARY==--

Beispiel: Standardkonfiguration des Amazon ECS-Container-Agenten überschreiben

Diese mehrteilige MIME-Beispieldatei überschreibt die standardmäßigen Cleanup-Einstellungen des Docker-Images für eine Datenverarbeitungsressource.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash echo ECS_IMAGE_CLEANUP_INTERVAL=60m >> /etc/ecs/ecs.config echo ECS_IMAGE_MINIMUM_CLEANUP_AGE=60m >> /etc/ecs/ecs.config --==MYBOUNDARY==--

Beispiel: Mounten Sie ein vorhandenes Amazon FSx for Lustre-Dateisystem

Diese mehrteilige MIME-Beispieldatei konfiguriert die Rechenressource so, dass sie das lustre2.10 Paket aus der Extras-Bibliothek installiert und ein vorhandenes FSx for Lustre-Dateisystem unter /scratch und dem Mount-Namen einhängt. fsx Dieses Beispiel bezieht sich auf Amazon Linux 2. Installationsanweisungen für andere Linux-Distributionen finden Sie unter Installation des Lustre-Clients im Amazon FSx for Lustre-Benutzerhandbuch. Weitere Informationen finden Sie unter Automatisches Mounten Ihres Amazon FSx-Dateisystems im Amazon FSx for Lustre-Benutzerhandbuch.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" runcmd: - file_system_id_01=fs-0abcdef1234567890 - region=us-east-2 - fsx_directory=/scratch - amazon-linux-extras install -y lustre2.10 - mkdir -p ${fsx_directory} - mount -t lustre ${file_system_id_01}.fsx.${region}.amazonaws.com@tcp:fsx ${fsx_directory} --==MYBOUNDARY==--

Bei den Mitgliedern volumes und mountPoints der Containereigenschaften müssen die Einhängepunkte dem Container zugeordnet sein.

{ "volumes": [ { "host": { "sourcePath": "/scratch" }, "name": "Scratch" } ], "mountPoints": [ { "containerPath": "/scratch", "sourceVolume": "Scratch" } ], }