Direkt zum Inhalt

Wie kann ich die Latenz reduzieren, wenn ich Bilder mit Amazon ECS abrufe?

Lesedauer: 3 Minute
0

Ich möchte die Latenz reduzieren, wenn ich Bilder mit Amazon Elastic Container Service (Amazon ECS) abrufe.

Lösung

Die Größe von Bildern reduzieren

Reduziere die Image-Größe, um die Abrufzeit der Bilder zu verkürzen. Informationen zum Reduzieren der Image-Größe findest du unter Erstellen von bewährten Methoden auf der Docker Docs-Website.

Wenn du ein Amazon Linux 2023-Container-Image verwendest, empfiehlt es sich, ein AL2023 Minimal-Container-Image zu verwenden, um die Image-Größe zu reduzieren.

Den nächstgelegenen Endpunkt der AWS-Region verwenden

Um die Latenz zu reduzieren, verwende den Endpunkt „Region“, der dem Ort, an dem die Anwendung ausgeführt wird, am nächsten ist.

Wenn du ein öffentliches Register wie Amazon Elastic Container Registry (Amazon ECR) Public oder Docker Hub verwendest, verwende einen Pull-Through-Cache. Mit einem Pull-Through-Cache kannst du das Image in einem privaten Register mit demselben Endpunkt wie die Anwendung bereitstellen. Weitere Informationen findest du unter Synchronisieren eines Upstream-Registers mit einem privaten Amazon ECR-Register.

Wenn das Image bereits in einem privaten Amazon ECR-Register in einer anderen Region vorhanden ist, verwende die private Image-Replikation. Mit der privaten Image-Replikation kannst du dasselbe Image in der Anwendung „Region“ bereitstellen.

ECS_IMAGE_PULL_BEHAVIOR auf once setzen

Wenn du den Starttyp Amazon Elastic Compute Cloud (Amazon EC2) verwenden, ändere den Parameter ECS_IMAGE_PULL_BEHAVIOR, um das Amazon ECS-Pull-Verhalten zu konfigurieren. Um den Speicherplatz der Container-Instance zu reduzieren, setze ECS_IMAGE_PULL_BEHAVIOR auf once. Diese Konfiguration verwendet zwischengespeicherte Bilder und ruft Bilder nur dann aus der Ferne ab, wenn das Bild noch nie zuvor abgerufen oder durch automatische Bereinigung entfernt wurde. Weitere Informationen zur Image-Bereinigung findest du unter Automatische Amazon ECS-Aufgabe und Image-Bereinigung.

Im folgenden Beispiel ist ECS_IMAGE_PULL_BEHAVIOUR auf once gesetzt. Wenn die Aufgabe mit dem amazonlinux:2023-minimal-Container zum ersten Mal gestartet wird, ruft der Amazon ECS-Agent in der EC2-Instance das Image ab. Um zu überprüfen, wann der Image-Pull gestartet und beendet wurde, überprüfe den msg-Wert. Um die Abrufzeit des Images zu überprüfen, siehe elapsed und elapsedMS:

level=info time=2024-11-11T17:02:09Z msg="Pulling image for container concurrently" container="al2023" image="amazonlinux:2023-minimal" task="taskid"
level=info time=2024-11-11T17:02:14Z msg="Finished pulling image for container" task="taskid" container="al2023" image="amazonlinux:2023-minimal" elapsed="4.6245648s" elapsedMs=4624

Wenn die Aufgabe mit dem amazonlinux:2023-minimal-Container zum zweiten Mal gestartet wird, verwendet der Amazon ECS-Agent den Cache, ruft das Image jedoch nicht ab. Um zu überprüfen, ob Amazon ECS das zwischengespeicherte Image gefunden und dann verwendet hat, überprüfe den msg-Wert:

level=info time=2024-11-11T17:07:06Z msg="Found cached image, use it directly for container" task="taskid" container="al2023" image="amazonlinux:2023-minimal"

Weitere Informationen zu den Konfigurationsparametern des Amazon ECS-Agenten findest du unter Konfiguration des Amazon ECS-Container-Agenten.

Ähnliche Informationen

Die regionsübergreifende Replikation in Amazon ECR ist da

Optimierung der Leistung für Amazon ECR

AWS OFFICIALAktualisiert vor einem Jahr