Allgemeine Informationen
F: Was ist AWS Batch?
AWS Batch ist eine Sammlung von Batch-Verwaltungsfunktionen für Entwickler, Wissenschaftler und Techniker, mit denen Hunderttausende von Batch-Verarbeitungsaufträgen auf AWS ausgeführt werden können. AWS Batch stellt dynamisch die optimale Menge und Art der Rechenressourcen (z. B. CPU- oder speicheroptimierte Rechenressourcen) basierend auf dem Volumen und den spezifischen Ressourcenanforderungen der übergebenen Batch-Aufträge bereit. AWS Batch erspart Ihnen die Installation und Verwaltung von Batch-Verarbeitungssoftware oder Serverclustern, sodass Sie sich ganz auf die Analyse der Ergebnisse und die Lösung von Problemen konzentrieren können. AWS Batch bereitet vor, plant und führt Ihre Batch-Computing-Workloadsunter Verwendung von Amazon ECS, Amazon EKS und AWS Fargate mit einer Option zur Nutzung von Spot Instances aus.
F: Was ist Batch-Verarbeitung?
Bei der Batch-Verarbeitung werden eine Reihe von Programmen ("Aufträgen") ohne manuelle Intervention auf einem oder mehreren Computern ausgeführt. Die Eingabeparameter werden durch Skripts, Befehlszeilenargumente, Steuerdateien oder JCL (Job Control Language) bereitgestellt. Ein Batch-Auftrag kann von der Ausführung vorangegangener Aufträge oder von der Verfügbarkeit bestimmter Eingaben abhängig sein, wodurch die Sequenzierung und zeitliche Planung bei mehreren Aufträgen besonders wichtig ist. Mit einer interaktiven Verarbeitung ist dies praktisch nicht vereinbar.
- Die Batch-Verarbeitung kann die Auftragsverarbeitung auf Zeiten verlegen, zu denen mehr oder günstigere Kapazitäten zur Verfügung stehen.
- Sie vermeidet den Leerlauf von Rechenressourcen, wie es bei häufigen manuellen Interventionen und Überwachungen oft der Fall ist.
- Sie erhöht die Effizienz durch eine höhere Auslastung der Rechenressourcen.
- Sie ermöglicht die Priorisierung von Aufträgen und damit die Abstimmung der Ressourcenzuweisungen an die Geschäftsziele.
Wann sollte ich meine Aufgaben in EKS vs. Fargate vs. ECS ausführen?
Gründe für die Verwendung von AWS Batch
F: Weshalb sollte ich AWS Batch verwenden?
AWS Batch übernimmt für Sie die Auftragsausführung und die Verwaltung der Rechenressourcen. Anstatt sich um die Einrichtung und Verwaltung der Infrastruktur zu kümmern, können Sie sich ganz auf die Anwendungsentwicklung und die Analyse der Ergebnisse konzentrieren. Wenn Sie planen, Batch-Arbeitslasten auf AWS auszuführen oder dorthin zu verlegen, sollten Sie AWS Batch verwenden.
F: Für welche Anwendungsfälle ist AWS Batch optimiert?
AWS Batch ist für die Batch-Verarbeitung sowie für Anwendungen optimiert, deren Umfang durch die Parallelausführung mehrerer Aufträge zunehmen kann. Hervorragend geeignet für die Batch-Verarbeitung sind beispielsweise Anwendungen wie Deep Learning, Genomik-Analysen, finanzmathematische Risikomodelle, Monte Carlo-Simulationen, Animationsberechnungen, Medien-Transcoding, Bildverarbeitung und Konstruktionssimulationen.
Funktionen
F: Was sind die wichtigsten Funktionen von AWS Batch?
AWS Batch verwaltet Rechenumgebungen und Auftragswarteschlangen, so dass Sie problemlos Tausende von Aufträgen jeder Größenordnung mit Amazon ECS, Amazon EKS und AWS Fargate ausführen können, wobei Sie zwischen Spot- und On-Demand-Ressourcen wählen können. Sie brauchen Ihre Batch-Aufträge nur zu definieren und in eine Warteschlange einzureichen. Danach entscheidet AWS Batch, wo die Aufträge ausgeführt werden, wobei es bei Bedarf die hinzugezogenen AWS-Kapazitäten erweitern kann. AWS Batch überwacht den Fortschritt Ihrer Aufgaben. Nicht mehr benötigte Kapazitäten entfernt AWS Batch sofort. Darüber hinaus ermöglicht AWS Batch die Einreichung von Aufträgen als Teil einer Pipeline oder eines Workflows. Auf diese Weise können Sie beim Einreichen Abhängigkeiten zwischen Aufträgen definieren.
F: Welche Batch-Aufträge unterstützt AWS Batch?
AWS Batch unterstützt alle Aufträge, die als Docker-Container ausgeführt werden können. Mit den Aufträgen werden auch deren Arbeitsspeicheranforderungen sowie die erforderliche Anzahl an vCPUs angegeben.
F: Was ist eine Rechenressource?
Eine AWS-Batch-Rechenressource ist eine EC2-Instance oder AWS-Fargate-Rechenressource.
F: Was ist eine Rechenumgebung?
Eine AWS Batch-Rechenumgebung ist eine Sammlung von Rechenressourcen für die Ausführung von Aufträgen. AWS Batch unterstützt zwei Arten von Rechenumgebungen: verwaltete Rechenumgebungen, die von AWS bereitgestellt und verwaltet werden, und nicht verwaltete Rechenumgebungen, die vom Kunden verwaltet werden. Nicht verwaltete Rechenumgebungen stellen einen Mechanismus bereit, durch den spezielle Ressourcen wie dedizierte Hosts, größere Speicherkonfigurationen und Amazon EFS genutzt werden können.
F: Was ist eine Auftragsdefinition?
Eine Auftragsdefinition spezifiziert den auszuführenden Auftrag, die Parameter, die Umgebungsvariablen, die Rechenanforderungen sowie weitere Informationen zur Optimierung der Auftragsausführung. Auftragsdefinitionen werden vor der Einreichung eines Auftrags definiert und können mit anderen Personen ausgetauscht werden.
F: Was ist der Amazon ECS-Agent und wie wird er von AWS Batch verwendet?
Zur Ausführung von Aufträgen in Containern bedient sich AWS Batch der Funktionalität von Amazon ECS. Deswegen muss der ECS-Agent auf den Rechenressourcen in Ihren AWS Batch-Rechenumgebungen installiert sein. In verwalteten Rechenumgebungen ist der ECS-Agent vorinstalliert.
F: Wie erleichtert AWS Batch die Verwendung von Spot-Instances?
AWS-Batch-Rechenumgebungen können aus EC2-Spot-Instances bestehen. Beim Erstellen einer Managed-Computing-Umgebung, geben Sie einfach an, dass Sie EC2-Spot-Instances verwenden möchten, und geben Sie einen Prozentsatz der On-Demand-Preise an, den Sie zu zahlen bereit sind. Den Rest übernimmt AWS Batch. Auch nicht verwaltete Rechenumgebungen können von Ihnen gestartete Spot-Instances enthalten – einschließlich der von EC2 Spot Fleet gestarteten Instances.
Preise
F: Wie sieht das Preisangebot für AWS Batch aus?
Für die Nutzung von AWS Batch fallen keine zusätzlichen Gebühren an. Sie zahlen nur für die AWS-Ressourcen (z. B. EC2-Instances oder AWS Fargate), die Sie zum Speichern und Ausführen Ihrer Batch-Aufträge erstellen.
GPU-Planung
F: Kann ich Accelerators mit AWS Batch verwenden?
Ja. Neben den aktuellen Eingabevariablen vCPU und Speicher können Sie Batch verwenden, um in der Auftragsdefinition die Anzahl und den Typ der Accelerators festzulegen, die Ihre Aufträge benötigen. AWS Batch skaliert für Ihre Aufträge geeignete Instances basierend auf den benötigten Accelerators und isoliert diese entsprechend den Anforderungen jedes Auftrags, damit nur geeignete Container darauf Zugriff haben.
F: Warum sollte ich mit AWS Batch Accelerators verwenden?
Durch die Verwendung von Accelerators mit Batch können Sie Ihre Auftrage gemäß ihren Accelerator-Bedürfnissen dynamisch planen und bereitstellen. Batch stellt sicher, dass für Ihre Aufträge die geeignete Anzahl an Accelerators reserviert wird. Batch skaliert Ihre EC2 Accelerated Instances automatisch nach oben und wieder nach unten, wenn Sie fertig sind. So können Sie sich voll auf Ihre Anwendungen konzentrieren. Batch ist nativ in den EC2 Spot integriert, was bedeutet, dass Ihre beschleunigten Aufgaben bei Verwendung beschleunigter Instances eine Einsparung von bis zu 90 % erzielen können.
Von der API:
{
"containerProperties": {
"vcpus": 1,
"image": "nvidia/cuda:9.0-base",
"memory": 2048,
"resourceRequirements" : [
{
"type" : "GPU",
"value" : "1"
}
],
F: Können die Accelerator-Variablen in der Auftragsdefinition beim Senden des Auftrags überschrieben werden?
Wie die vCPU- und Speicheranforderungen können Sie Anzahl und Typ der Accelerators beim Senden des Auftrags überschreiben.
F: Können Accelerated Instances für Aufträge verwendet werden, die keine Accelerators benötigen?
Aktuell vermeidet es Batch wenn möglich, Aufträge mit Accelerated Instances zu planen, die keine Beschleunigung benötigen. Dadurch sollen Fälle vermieden werden, bei denen lang laufende Aufträge die Accelerated Instance belegen, ohne vom Accelerator zu profitieren, wodurch die Kosten steigen würden. In Verbindung mit Spot-Preisen, wenn Accelerated Instances zulässige Typen sind, kann es in seltenen Fällen vorkommen, dass Batch eine Accelerated Instance als günstigste Möglichkeit zur Ausführung eines Auftrags ansieht, unabhängig davon, ob der Accelerator benötigt wird.
Wenn Sie einen Auftrag an eine Rechenumgebung senden, in der Batch nur Accelerated Instances starten kann, führt Batch die Aufträge auf diesen Instances aus, auch wenn kein Accelerator benötigt wird.
F: Wie verwendet Batch die ECS GPU-optimierte AMI?
Ab sofort werden Instances vom Typ P standardmäßig mit der ECS GPU-optimierten AMI ausgeführt. Diese AMI enthält die benötigten Bibliotheken und Laufzeiten, um GPU-basierte Anwendungen auszuführen. Beim Erstellen einer Rechenumgebung können Sie bei Bedarf immer auf eine benutzerdefinierte AMI verweisen.
Erste Schritte
F: Was sind die ersten Schritte?
Lesen Sie das Handbuch Erste Schritte in unserer Dokumentation, das Ihnen den Einstieg erleichtert.
F: Was muss ich für den Einstieg bereitstellen?
Für den Einstieg müssen Sie keine eigenen Rechenressourcen starten. Die Web-Konsole von AWS Batch leitet Sie durch die Erstellung Ihrer ersten Rechenumgebung und Auftragswarteschlange, so dass Sie Ihren ersten Auftrag in wenigen Minuten einreichen können. Die in Ihrer Rechenumgebung verfügbaren Ressourcen erweitern sich mit dem Hinzukommen weiterer ausführbarer Aufträge und verringern sich, wenn die Anzahl der ausführbaren Aufträge sinkt.
Erfahren Sie mehr darüber, wann AWS Batch verwendet wird