In AWS Batch verpacken Sie Ihren Code für Batch-Aufträge, geben deren Abhängigkeiten an und übertragen die Batch-Aufträge dann über die AWS-Managementkonsole bzw. über CLIs oder SDKs. In AWS Batch können Sie Ausführungsparameter und Auftragsabhängigkeiten angeben. Zudem vereinfachen Sie durch Batch die Integration in zahlreiche gängige Workflow-Engines und Sprachen für die Batch-Verarbeitung wie Pegasus WMS, Luigi, Nextflow, Metaflow, Apache Airflow und AWS Step Functions. AWS Batch stellt Amazon EC2- und Spot-Instances effizient entsprechend Ihrer Auftragsabhängigkeiten bereit. Die Skalierung der Instanzen erfolgt dabei automatisch. AWS Batch stellt Standard-Auftragswarteschlangen und Rechenumgebungsdefinitionen bereit, die Ihnen den Start erleichtern.

Dynamische Bereitstellung und Skalierung von Rechenressourcen

AWS Batch stellt verwaltete Rechenumgebungen bereit, die Rechenressourcen dynamisch entsprechend der Mengen- und Ressourcenanforderungen der übergebenen Aufträge bereitstellen. Sie können Ihre AWS Batch Managed Compute-Umgebungen mit Anforderungen wie dem Typ der EC2-Instances, den VPC-Subnetzkonfigurationen, den minimalen/maximalen/gewünschten vCPUs für alle Instances und dem Betrag konfigurieren, den Sie bereit sind, für Spot-Instances als Prozentsatz des On-Demand Instance-Preis.

Alternativ können Sie für Rechenumgebungen, die nicht von AWS Batch verwaltet werden, Ihre eigenen Rechenressourcen bereitstellen und verwalten, wenn Sie für Ihre EC2-Instances andere Konfigurationen benötigen, als AWS Batch in seinen verwalteten Rechenumgebungen bereitstellt (z. B. größere EBS-Mengen oder ein anderes Betriebssystem). Sie brauchen lediglich EC2-Instances mit dem Amazon ECS-Agenten bereitzustellen und unterstützte Versionen von Linux und Docker auszuführen. AWS Batch führt Ihre Batch-Aufträge dann in den von Ihnen bereitgestellten EC2-Instances aus.

Unterstützung für eng gekoppelte HPC-Workloads

AWS Batch unterstützt parallele Aufträge mit mehreren Knoten, was es Ihnen ermöglicht, einzelne Aufträge auszuführen, die mehrere EC 2-Instances umfassen. Mit dieser Funktion können Sie AWS Batch verwenden, um Workloads wie große, eng gekoppelte HPC-Anwendungen (High Performance Computing) oder verteilte GPU-Modelltrainings einfach und effizient auszuführen. AWS Batch unterstützt auch Elastic Fabric Adapter, eine Netzwerkschnittstelle, mit der Sie Anwendungen ausführen können, für die ein hohes Maß an Kommunikation zwischen Knoten in AWS erforderlich ist. 

Differenzierte Auftragsdefinitionen und einfache Modellierung von Auftragsabhängigkeiten

In AWS Batch können Sie Ressourcenanforderungen wie vCPU und Arbeitsspeicher, AWS Identity and Access Management (IAM)-Rollen, Volume-Mountpunkte, Container-Eigenschaften und Umgebungsvariablen angeben, mit denen Sie festlegen, wie die Aufträge ausgeführt werden. AWS Batch führt Ihre Aufträge unter Amazon ECS als Anwendungen in Containern aus. In Batch können Sie auch Abhängigkeiten zwischen Aufträgen definieren. Ein Batch-Auftrag kann beispielsweise aus drei Verarbeitungsstufen bestehen, für die jeweils andere Ressourcen benötigt werden. Wenn Sie Abhängigkeiten verwenden, können Sie drei Aufträge mit unterschiedlichen Ressourcenanforderungen erstellen und jeden nachfolgenden Auftrag vom vorherigen abhängig machen.

Auftragsplanung nach Prioritäten

In AWS Batch können Sie mehrere Warteschlangen mit unterschiedlichen Prioritätsstufen einrichten. Ihre Batch-Aufträge verbleiben solange in diesen Warteschlangen, bis zu deren Ausführung die erforderlichen Rechenressourcen verfügbar sind. Der AWS Batch-Planer ermittelt auf Basis der Ressourcenanforderungen der jeweiligen Aufträge, wann, wo und wie die in die Warteschlange eingereihten Aufträge ausgeführt werden. Des Weiteren ermittelt der Planer die Priorität der Warteschlangen und führt die Aufträge entsprechend der Priorität optimal verfügbarer Rechenressourcen aus (z. B. Arbeitsspeicher vs. CPU optimiert), sofern die Aufträge nicht auf Abhängigkeiten warten.

Support für GPU-Planung

GPU-Planung ermöglicht es Ihnen, die Anzahl und den Typ der Accelerators festzulegen, die Ihre Aufträge als Eingabevariablen in der Auftragsdefinition in AWS Batch benötigen. AWS Batch skaliert für Ihre Aufträge geeignete Instances basierend auf der erforderlichen Anzahl an Accelerators und isoliert die Accelerators gemäß den Anforderungen jedes Auftrags, damit nur geeignete Container darauf Zugriff haben.

AWS Batch kann in kommerzielle und Open-Source-Workflow-Engines und -Sprachen wie Pegasus WMS, Luigi, Nextflow, Metaflow, Apache Airflow und AWS Step Functions integriert werden. Sie können Ihre Batch-Rechen-Pipelines daher in Ihnen vertrauten Workflow-Sprachen modellieren.

Integration in EC2-Startvorlagen

AWS Batch unterstützt jetzt EC2-Startvorlagen, mit denen Sie benutzerdefinierte Vorlagen für Ihre Berechnungsressourcen erstellen können. Außerdem können Sie mit Batch Instances mit diesen Anforderungen skalieren. Legen Sie Ihre EC2-Startvorlage fest, um Speichervolumen hinzuzufügen, Netzwerk-Interfaces anzugeben oder Berechtigungen zu konfigurieren, neben vielen weiteren Funktionen. Mit EC2-Startvorlagen können Sie in nur wenigen Schritten Batch-Umgebungen erstellen, indem Sie alle Startparameter in einer Ressource erfassen.

Flexible Zuweisungsstrategien

AWS Batch ermöglicht Kunden beim Zuweisen von Rechenressourcen die Auswahl zwischen drei Methoden. Mit diesen Strategien können Kunden sowohl den Durchsatz als auch den Preis berücksichtigen, wenn sie festlegen, wie AWS Batch Instances in ihrem Namen skalieren soll.

Best Fit: AWS Batch wählt einen Instance-Typ, der am besten zu den Anforderungen der Aufträge passt, wobei der günstigste Instance-Typ bevorzugt wird. Falls keine weiteren Instances des ausgewählten Instance-Typs verfügbar sind, wartet AWS Batch, bis die zusätzlichen Instances verfügbar sind. Falls nicht genügend Instances verfügbar sind oder der Benutzer die Amazon EC2 Service Limits erreicht, werden weitere Aufträge erst ausgeführt, wenn derzeit ausgeführte Aufträge abgeschlossen sind. Diese Zuweisungsstrategie hält die Kosten gering, kann allerdings die Skalierung einschränken.

Best Fit Progressive: AWS Batch wählt weitere Instance-Typen aus, die groß genug sind, um die Anforderungen der Aufträge in der Warteschlange zu erfüllen, wobei Instance-Typen mit geringeren vCPU-Kosten pro Einheit bevorzugt werden. Falls keine weiteren Instances der zuvor ausgewählten Instance-Typen verfügbar sind, wählt AWS Batch neue Instance-Typen aus.

Spot Capacity Optimized: AWS Batch wählt mindestens einen Instance-Typ aus, der groß genug ist, die Anforderungen der Aufträge in der Warteschlange zu erfüllen, wobei Instance-Typen bevorzugt werden, die mit geringerer Wahrscheinlichkeit unterbrochen werden. Diese Zuweisungsstrategie nur für Rechenressourcen vom Typ Spot-Instance verfügbar.

Integrierte Überwachung und Protokollierung

AWS Batch zeigt die wichtigsten Betriebsmetriken Ihrer Batch-Aufträge in der AWS-Managementkonsole an. Hier können Sie Metriken zur Rechenkapazität wie auch Informationen zu aktiven, ausstehenden und abgeschlossenen Aufträgen anzeigen. Ihre Auftragsprotokolle (z. B. STDERR und STDOUT) sind über die AWS-Managementkonsole verfügbar und werden auch in die Amazon CloudWatch Logs geschrieben.

Differenzierte Zugriffskontrolle

AWS Batch verwendet IAM zur Kontrolle und Überwachung der AWS-Ressourcen (z. B. Amazon DynamoDB-Tabellen), auf die Ihre Aufträge zugreifen können. In IAM können Sie auch Richtlinien für die unterschiedlichen Benutzer Ihrer Organisation definieren. Administratoren können Sie beispielsweise vollständigen Zugriff auf alle API-Operationen von AWS Batch erteilen, während Entwickler nur eingeschränkte Berechtigungen für die Konfiguration der Rechenumgebungen und die Registrierung von Aufträgen erhalten und Endbenutzer eventuell sogar nur die Berechtigung zum Einreichen und Löschen von Aufträgen.

Erfahren Sie mehr über die Preise von AWS Batch

Zur Seite mit den Preisen
Bereit zum Entwickeln?
Erste Schritte mit AWS Batch
Haben Sie Fragen?
Kontakt