Optimieren Sie die Startzeit von 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 Sie die Startzeit von Amazon ECS-Aufgaben

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

  • Container-Images und Binpack-Instances zwischenspeichern

    Wenn Sie den EC2 Starttyp verwenden, können Sie das Pull-Verhalten des Amazon ECS-Container-Agenten wie folgt konfigurierenECS_IMAGE_PULL_BEHAVIOR:prefer-cached. Das Bild wird remote abgerufen, wenn kein zwischengespeichertes Bild vorhanden ist. Andernfalls wird das zwischengespeicherte Image in der Instance verwendet. Die automatische Bildbereinigung ist für den Container deaktiviert, um sicherzustellen, dass das zwischengespeicherte Bild nicht entfernt wird. Dadurch wird die Abrufzeit für das Abrufen von Bildern für nachfolgende Starts reduziert. Der Effekt von Caching ist noch größer, 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 für Windows-basierte Workloads von Vorteil, die normalerweise große (Dutzende von GBs) Container-Image-Größen haben. Wenn Sie die binpack Platzierungsstrategie verwenden, können Sie auch die Verwendung von Elastic Network Interface (ENI) -Trunking in Betracht ziehen, um mehr Aufgaben im awsvpc Netzwerkmodus auf jeder Container-Instance zu platzieren. ENI-Trunking erhöht die Anzahl der Aufgaben, die Sie im Modus ausführen awsvpc können. Beispielsweise kann eine c5.large-Instance, die möglicherweise nur die gleichzeitige Ausführung von 2 Aufgaben unterstützt, bis zu 10 Aufgaben mit ENI-Trunking ausführen.

  • Wählen Sie einen 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. Dies bedeutet, dass Sie flexibler sind, um die Kommunikation zwischen Aufgaben und Diensten 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 Zuweisen einer Netzwerkschnittstelle für eine Amazon ECS-Aufgabe.

  • 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 Task-Metadaten-Endpunkt verwenden, um Metriken zu veröffentlichen, mit denen Sie die Startzeit der Anwendung von StartedAt der Antwort auf die Container-Metadaten bis zur StartedAt Zeit Ihrer Aufgabe oder Ihres Dienstes verfolgen können. Anhand dieser Daten können Sie nachvollziehen, wie Ihre Anwendung zur Gesamtstartzeit beiträgt, und Bereiche ermitteln, in denen Sie unnötigen anwendungsspezifischen Overhead reduzieren und Ihre Container-Images optimieren können. Weitere Informationen finden Sie unter Optimieren Sie die Kapazität und Verfügbarkeit von Amazon ECS.

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

    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 Instanz berechnen, wie viele Aufgaben einer einzelnen Instanz 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 Speicherreservierungen in einer m5.large-Instance erfordern (unterstützt 2 vCPUs und 8 GB Arbeitsspeicher). Die Reservierungen dieser Aufgabendefinition nutzen die Ressourcen der Instanz voll aus.