Aktualisierung von Rechenumgebungen - 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.

Aktualisierung von Rechenumgebungen

Nachdem Sie eine Rechenumgebung erstellt haben, die EC2 Ressourcen verwendet, können Sie viele Einstellungen der Rechenumgebung direkt aktualisieren. Das Ändern einiger Einstellungen erfordert jedoch, dass die Instanzen in der Rechenumgebung AWS Batch ersetzt werden.

Wichtig

AWS Batch erstellt und verwaltet mehrere AWS Ressourcen in Ihrem Namen und innerhalb Ihres Kontos, darunter Amazon EC2 Launch Templates, Amazon EC2 Auto Scaling Groups, Amazon EC2 Spot Fleets und Amazon ECS-Cluster. Diese verwalteten Ressourcen sind speziell konfiguriert, um einen optimalen AWS Batch Betrieb zu gewährleisten. Die manuelle Änderung dieser im Batch verwalteten Ressourcen kann, sofern nicht ausdrücklich in der AWS Batch Dokumentation angegeben, zu unerwartetem Verhalten führen, das zu einer INVALID Rechenumgebung, suboptimalem Instanzskalierungsverhalten, verzögerter Workload-Verarbeitung oder unerwarteten Kosten führt. Diese manuellen Änderungen können vom Service nicht deterministisch unterstützt werden. AWS Batch Verwenden Sie immer die unterstützte Batch APIs - oder Batch-Konsole, um Ihre Rechenumgebungen zu verwalten.

AWS Fargate Computerumgebungen aktualisieren

Für Rechenumgebungen, die Fargate-Ressourcen verwenden, können Sie Folgendes aktualisieren.

  • securityGroupIds

  • subnets

  • desiredvCpus

  • maxvCpus

  • minvCpus

AWS Batch hat zwei Aktualisierungsmechanismen. Das erste ist ein Skalierungsupdate, bei dem Instanzen zur Rechenumgebung hinzugefügt oder aus ihr entfernt werden. Das zweite ist ein Infrastruktur-Update, bei dem die Instanzen in der Rechenumgebung ersetzt werden. Ein Infrastruktur-Update dauert viel länger als ein Skalierungsupdate.

Wenn Sie Rechenumgebungen mit aktualisieren AWS Batch, führt eine Änderung nur dieser Einstellungen zu einem Skalierungsupdate: gewünschtes v CPUs (desiredvCpus), maximales v CPUs (maxvCpus), minimales v CPUs (minvCpus), servicerolle (serviceRole) und state (state).

Anmerkung

Wenn Sie die desiredvCpus Einstellung aktualisieren, muss der Wert zwischen den maxvCpus Werten minvCpus und liegen.

Darüber hinaus muss der aktualisierte desiredvCpus Wert größer oder gleich dem aktuellen desiredvCpus Wert sein. Weitere Informationen finden Sie unter Fehlermeldung beim Aktualisieren der desiredvCpus Einstellung.

Wenn eine der folgenden Einstellungen in einem geändert wird UpdateComputeEnvironmentAPI-Aktion, AWS Batch initiiert ein Infrastruktur-Update. Ein Infrastruktur-Update erfordert, dass die Servicerolle auf AWSServiceRoleForBatch(Standard) gesetzt ist und dass die ZuweisungsstrategieBEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED, oder SPOT_PRICE_CAPACITY_OPTIMIZED lautet. BEST_FITwird nicht unterstützt. Mit Ausnahme der Servicerolle können alle Einstellungen, die für ein Skalierungsupdate geändert werden können, auch für ein Infrastruktur-Update geändert werden.

Anmerkung

Wir empfehlen, in den meisten Fällen die Option SPOT_CAPACITY_OPTIMIZED n SPOT_PRICE_CAPACITY_OPTIMIZED anstelle von n zu verwenden.

Während eines Infrastruktur-Updates ändert sich der Status der Rechenumgebung aufUPDATING. Neue Instanzen werden mit den aktualisierten Einstellungen gestartet. Neue Jobs sind für die neuen Instanzen geplant. Jobs, die derzeit ausgeführt werden, werden gemäß der Richtlinie für Infrastrukturaktualisierungen versandt. Weitere Informationen finden Sie unter UpdateComputeEnvironment und UpdatePolicy in der AWS Batch -API-Referenz.

Berücksichtigen Sie beim UpdatePolicy Datentyp die folgenden Szenarien:

Anmerkung

In diesen Szenarien gilt Folgendes. Wenn eine Instanz beendet wird, werden laufende Jobs gestoppt. Standardmäßig werden diese Jobs nicht erneut versucht. Um einen dieser Jobs nach dem Beenden einer Instance erneut zu versuchen, konfigurieren Sie eine Strategie zur Wiederholung von Aufträgen. Weitere Informationen finden Sie unter Automatisierte Auftragswiederholungen im AWS Batch -Benutzerhandbuch.

  • Wenn die terminateJobsOnUpdate Einstellung auf gesetzt isttrue, werden laufende Jobs während eines Infrastruktur-Updates beendet. Die jobExecutionTimeoutMinutes Einstellung wird ignoriert.

  • Wenn die terminateJobsOnUpdate Einstellung auf gesetzt istfalse, können Jobs nach dem Infrastruktur-Update für zusätzliche Zeit ausgeführt werden. Diese zusätzliche Zeit ist in der jobExecutionTimeoutMinutes Einstellung konfiguriert. Die jobExecutionTimeoutMinutes Standardeinstellung ist 30 Minuten.

Sobald Kapazität in der Rechenumgebung verfügbar wird, werden neue Instanzen mit den aktualisierten Einstellungen gestartet und Jobs auf den neuen Instanzen gestartet. Sobald alle Jobs auf Instanzen mit den alten Einstellungen abgeschlossen sind, werden die alten Instanzen beendet. Wenn Kapazität verfügbar wird, bedeutet dies, dass die gewünschte Anzahl von v um mindestens so viele v unter der maximalen Anzahl CPUs von v CPUs liegt, CPUs wie es für den kleinsten Instance-Typ erforderlich ist.

Aktualisierungen der Infrastruktur

Ein Infrastruktur-Update ist erforderlich, um einige Einstellungen für eine Rechenumgebung zu ändern. Wenn eine der folgenden Einstellungen geändert wird, wird ein Infrastruktur-Update gestartet:

Wichtig

Die Rechenumgebung muss die AWSServiceRoleForBatchserviceverknüpfte Rolle verwenden, um Änderungen vorzunehmen, die ein Infrastruktur-Update erfordern.

Wenn die Rechenumgebung eine serviceverknüpfte Rolle verwendet, kann sie nicht geändert werden, sodass sie eine reguläre IAM-Rolle verwendet. Wenn die Rechenumgebung über eine reguläre IAM-Rolle verfügt, kann diese ebenfalls nicht so geändert werden, dass sie eine dienstverknüpfte Rolle verwendet. Daher können Sie Infrastrukturaktualisierungen nur für Rechenumgebungen durchführen, die mithilfe einer serviceverknüpften Rolle erstellt wurden.

  • Die Zuweisungsstrategie (allocationStrategy, muss entweder BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZED, oder SPOT_PRICE_CAPACITY_OPTIMIZED lauten. Wenn die ursprüngliche Zuweisungsstrategie lautetBEST_FIT, werden Infrastrukturaktualisierungen nicht unterstützt.)

    Anmerkung

    Wir empfehlen, in den meisten Fällen die Option SPOT_CAPACITY_OPTIMIZED n SPOT_PRICE_CAPACITY_OPTIMIZED anstelle von n zu verwenden.

  • Prozentsatz des Gebots (bidPercentage)

  • EC2 Konfiguration (ec2Configuration)

  • Schlüsselpaar (ec2KeyPair)

  • Bild-ID (imageId)

  • Instanzrolle (instanceRole)

  • Instanztypen (instanceTypes)

  • Vorlage starten (launchTemplate)

  • Platzierungsgruppe (placementGroup)

  • Sicherheitsgruppen (securityGroupIds)

  • VPC-Subnetze () subnets

  • EC2 Schlagworte () tags

  • Typ der Rechenumgebung (type, kann einer von EC2 oder seinSPOT)

  • Ob AWS Batch während eines Infrastruktur-Updates auf das neueste AMI aktualisiert werden soll, das von unterstützt wird updateToLatestImageVersion

Aktualisierung der AMI-ID

Während eines Infrastruktur-Updates kann sich die AMI-ID der Rechenumgebung ändern, je nachdem, ob AMIs sie in einer dieser drei Einstellungen angegeben ist. AMIs sind in der imageId (incomputeResources), imageIdOverride (inec2Configuration) oder der unter angegebenen Startvorlage angegebenlaunchTemplate. Nehmen wir an, dass in keiner dieser Einstellungen AMI angegeben IDs sind und die updateToLatestImageVersion Einstellung isttrue. Anschließend wird das neueste Amazon ECS-optimierte AMI, das von unterstützt AWS Batch wird, für jedes Infrastruktur-Update verwendet.

Wenn in mindestens einer dieser Einstellungen eine AMI-ID angegeben ist, hängt das Update davon ab, welche Einstellung die vor dem Update verwendete AMI-ID bereitgestellt hat. Wenn Sie eine Rechenumgebung erstellen, ist die Priorität für die Auswahl einer AMI-ID zuerst die Startvorlage, dann die imageId Einstellung und schließlich die imageIdOverride Einstellung. Wenn die verwendete AMI-ID jedoch aus der Startvorlage stammt, wird durch das Aktualisieren der imageId imageIdOverride Oder-Einstellungen die AMI-ID nicht aktualisiert. Die einzige Möglichkeit, eine aus der Startvorlage ausgewählte AMI-ID zu aktualisieren, besteht darin, die Startvorlage zu aktualisieren. Wenn der Versionsparameter der Startvorlage $Default oder ist$Latest, wird die Standard- oder neueste Version der angegebenen Startvorlage ausgewertet. Wenn standardmäßig eine andere AMI-ID ausgewählt ist oder die neueste Version der Startvorlage ausgewählt ist, wird diese AMI-ID im Update verwendet.

Wenn die Startvorlage nicht zur Auswahl der AMI-ID verwendet wurde, wird die AMI-ID verwendet, die in den imageIdOverride Parametern imageId oder angegeben ist. Wenn beide angegeben sind, wird die im imageIdOverride Parameter angegebene AMI-ID verwendet.

Angenommen, die Rechenumgebung verwendet eine AMI-IDimageId, die durch die launchTemplate ParameterimageIdOverride, oder angegeben wird, und Sie möchten das neueste für Amazon ECS optimierte AMI verwenden, das von unterstützt wird AWS Batch. Anschließend muss das Update die Einstellungen entfernen, die AMI bereitgestellt haben IDs. Denn imageId dazu muss eine leere Zeichenfolge für diesen Parameter angegeben werden. Denn imageIdOverride dazu muss eine leere Zeichenfolge für den ec2Configuration Parameter angegeben werden.

Wenn die AMI-ID aus der Startvorlage stammt, können Sie zum neuesten Amazon ECS-optimierten AMI wechseln, das auf eine der folgenden Arten unterstützt wird: AWS Batch

  • Entfernen Sie die Startvorlage, indem Sie eine leere Zeichenfolge für den launchTemplateName Parameter launchTemplateId oder angeben. Dadurch wird die gesamte Startvorlage entfernt und nicht nur die AMI-ID.

  • Wenn die aktualisierte Version der Startvorlage keine AMI-ID angibt, muss der updateToLatestImageVersion Parameter auf gesetzt werdentrue.