Optimieren der Startzeit für Amazon-ECS-Aufgaben - Amazon Elastic Container Service

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.

Optimieren der Startzeit für Amazon-ECS-Aufgaben

Beachten Sie die folgenden Empfehlungen, um den Start Ihrer Aufgaben zu beschleunigen.

  • Container-Images und Binpack-Instances zwischenspeichern

    Wenn Sie dies verwenden EC2, können Sie das Pull-Verhalten des Amazon ECS-Container-Agenten wie folgt konfigurierenECS_IMAGE_PULL_BEHAVIOR:prefer-cached. Das Image wird per Fernzugriff abgerufen, wenn es kein zwischengespeichertes Image gibt. Andernfalls wird das zwischengespeicherte Image in der Instance verwendet. Die automatische Image-Bereinigung wird für den Container deaktiviert, um sicherzustellen, dass das zwischengespeicherte Image nicht entfernt wird. Dadurch wird die Abrufzeit für Images bei nachfolgenden Starts reduziert. Die Zwischenspeicherung hat eine noch größere Auswirkung, wenn Sie eine hohe Aufgabendichte in Ihren Container-Instances haben, die Sie mithilfe der binpack-Platzierungsstrategie konfigurieren können. Das Zwischenspeichern von Container-Images ist besonders vorteilhaft für Windows-basierte Workloads, die normalerweise große (Dutzende von GBs) Container-Image-Größen haben. Wenn Sie die binpack-Platzierungsstrategie verwenden, können Sie auch erwägen, Elastic-Network-Schnittstellen (ENI)-Trunking zu verwenden, um mehr Aufgaben im awsvpc-Netzwerkmodus auf jeder Container-Instance zu platzieren. ENI-Trunking erhöht die Anzahl der Aufgaben, die Sie im awsvpc-Modus ausführen können. Beispielsweise kann eine c5.large-Instance, die möglicherweise nur die gleichzeitige Ausführung von 2 Aufgaben unterstützt, mit ENI-Trunking bis zu 10 Aufgaben ausführen.

  • Auswahl eines optimalen Netzwerkmodus

    Obwohl es viele Fälle gibt, in denen der awsvpc Netzwerkmodus ideal ist, kann dieser Netzwerkmodus von Natur aus die Latenz beim Starten von Aufgaben erhöhen, da Amazon ECS-Workflows für jede Aufgabe im awsvpc Modus eine ENI bereitstellen und anhängen müssen, indem sie Amazon aufrufen EC2 APIs , was Ihren Aufgabenstarts einen Mehraufwand von mehreren Sekunden hinzufügt. Im Gegensatz dazu besteht ein entscheidender Vorteil des awsvpc-Netzwerkmodus darin, dass jede Aufgabe über eine Sicherheitsgruppe verfügt, die den Datenverkehr zulässt oder verweigert. Das bedeutet, dass Sie mehr Flexibilität haben, die Kommunikation zwischen Aufgaben und Services detaillierter zu steuern. Wenn die Bereitstellungsgeschwindigkeit Ihre Priorität ist, können Sie den bridge-Modus in Betracht ziehen, um das Starten von Aufgaben zu beschleunigen. Weitere Informationen finden Sie unter Eine Netzwerkschnittstelle für eine Amazon-ECS-Aufgabe zuweisen.

  • Verfolgen Sie Ihren Lebenszyklus beim Starten von Aufgaben, um Optimierungsmöglichkeiten zu finden.

    Es ist oft schwierig zu wissen, wie lange es dauert, bis Ihre Anwendung gestartet wird. Das Starten Ihres Container-Images, das Ausführen von Startskripten und andere Konfigurationen während des Anwendungsstarts können überraschend viel Zeit in Anspruch nehmen. Sie können den Aufgabenmetadaten-Endpunkt verwenden, um Metriken zu veröffentlichen, mit denen Sie die Startzeit der Anwendung nachverfolgen können, von der StartedAt in der Container-Metadaten-Antwort bis zur StartedAt-Zeit Ihrer Aufgabe oder Ihres Services. Anhand dieser Daten können Sie nachvollziehen, wie Ihre Anwendung zur Gesamtstartzeit beiträgt, und Bereiche ermitteln, in denen Sie unnötigen anwendungsspezifischen Aufwand reduzieren und Ihre Container-Images optimieren können. Weitere Informationen finden Sie unter Bewährte Methoden für Auto Scaling und Kapazitätsmanagement in Amazon ECS.

  • Wählen Sie einen optimalen Instance-Typ (für) EC2

    Die Auswahl des richtigen Instance-Typs basiert auf der Ressourcenreservierung (z. B. CPU, Arbeitsspeicher), die Sie für Ihre Aufgabe konfigurieren. Daher können Sie bei der Dimensionierung der Instance berechnen, wie viele Aufgaben einer einzelnen Instance zugewiesen werden können. Ein einfaches Beispiel für eine gut platzierte Aufgabe ist das Hosten von 4 Aufgaben, die 0,5 vCPU und 2 GB an Arbeitsspeicherreservierungen in einer m5.large-Instance erfordern (unterstützt 2 vCPUs und 8 GB Arbeitsspeicher). Die Reservierungen dieser Aufgabendefinition nutzen die Ressourcen der Instance voll aus.