Best Practices - Beständiger Speicher - 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.

Best Practices - Beständiger Speicher

Sie können Amazon ECS verwenden, um statusbehaftete containerisierte Anwendungen skalierbar auszuführen, indem SieAWSSpeicherservices wie Amazon EFS, Amazon EBS oder Amazon FSx for Windows File Server, die Datenpersistenz für inhärent kurzlebige Container bereitstellen. Der BegriffDatenpersistenzbedeutet, dass die Daten selbst den Prozess überdauern, der sie erstellt hat. DatenpersistenzAWSwird durch die Kopplung von Rechen- und Speicherdiensten erreicht. Ähnlich wie bei Amazon EC2 können Sie Amazon ECS auch verwenden, um den Lebenszyklus Ihrer containerisierten Anwendungen von den Daten zu entkoppeln, die sie verbrauchen und produzieren. Verwenden vonAWS-Speicherservices können Amazon ECS-Aufgaben Daten auch nach Beendigung der Aufgaben beibehalten.

Standardmäßig behalten Container die von ihnen erzeugten Daten nicht bei. Wenn ein Container beendet wird, werden die Daten, die er in seine schreibbare Ebene geschrieben hat, mit dem Container zerstört. Dadurch eignen sich Container für zustandslose Anwendungen, die keine Daten lokal speichern müssen. Containerisierte Anwendungen, die Datenpersistenz erfordern, benötigen ein Speicher-Backend, das beim Beenden des Anwendungscontainers nicht zerstört wird.


            Diagramm, das die Speicherebenen eines Containers anzeigt.

Ein Containerbild besteht aus einer Reihe von Layern. Jede Ebene stellt eine Anweisung in der Dockerdatei dar, aus der das Image erstellt wurde. Jeder Layer ist schreibgeschützt, mit Ausnahme des Containers. Das heißt, wenn Sie einen Container erstellen, wird über den zugrunde liegenden Layern ein beschreibbarer Layer hinzugefügt. Alle Dateien, die der Container erstellt, löscht oder ändert, werden in die beschreibbare Ebene geschrieben. Wenn der Container beendet wird, wird auch der beschreibbare Layer gleichzeitig gelöscht. Ein neuer Container, der dasselbe Bild verwendet, verfügt über einen eigenen beschreibbaren Layer. Dieser Layer enthält keine Änderungen. Daher müssen die Daten eines Containers immer außerhalb des Container-schreibbaren Layers gespeichert werden.

Mit Amazon ECS können Sie Stateful-Container mit Volumes ausführen. Amazon ECS ist nativ in Amazon EFS integriert und verwendet Volumes, die in Amazon EBS integriert sind. Bei Windows-Containern kann Amazon ECS mit Amazon FSx for Windows File Server integriert werden, um dauerhaften Speicher bereitzustellen.

Auswahl der richtigen Lagerart für Ihre Container

Anwendungen, die in einem Amazon ECS-Cluster ausgeführt werden, können eine Vielzahl vonAWS-Speicherservices und Produkte von Drittanbietern, um dauerhaften Speicher für statusbehaftete Arbeitslasten bereitzustellen. Sie sollten Ihr Speicher-Backend für Ihre containerisierte Anwendung basierend auf der Architektur und den Speicheranforderungen Ihrer Anwendung auswählen. Weitere Informationen zuAWS-Speicherdienste finden Sie unterCloud-SpeicherAWS.

Für Amazon ECS-Cluster, die Linux-Instances enthalten oder mit Fargate verwendet werden, lässt sich Amazon ECS in Amazon EFS und Amazon EBS integrieren, um Containerspeicher bereitzustellen. Der deutlichste Unterschied zwischen Amazon EFS und Amazon EBS besteht darin, dass Sie gleichzeitig ein Amazon EFS-Dateisystem für Tausende von Amazon ECS-Aufgaben einbinden können. Im Gegensatz dazu unterstützen Amazon EBS-Volumes keinen gleichzeitigen Zugriff. In diesem Zusammenhang ist Amazon EFS die empfohlene Speicheroption für containerisierte Anwendungen, die horizontal skaliert werden. Dies liegt daran, dass es Parallelität unterstützt. Amazon EFS speichert Ihre Daten redundant über mehrere Availability Zones hinweg und bietet Zugriff auf Amazon ECS-Aufgaben mit geringer Latenz, unabhängig von Availability Zone. Amazon EFS unterstützt Aufgaben, die sowohl auf Amazon EC2 als auch auf Fargate ausgeführt werden.

Angenommen, Sie verfügen über eine Anwendung wie eine Transaktionsdatenbank, die Latenz unter Millisekunden erfordert und kein freigegebenes Dateisystem benötigt, wenn es horizontal skaliert wird. Für eine solche Anwendung empfehlen wir die Verwendung von Amazon EBS-Volumes für persistenten Speicher. Derzeit unterstützt Amazon ECS Amazon EBS-Volumes nur für Tasks, die auf Amazon EC2 gehostet werden. Support für Amazon EBS-Volumes ist für Aufgaben in Fargate nicht verfügbar. Bevor Sie Amazon EBS-Volumes mit Amazon ECS-Aufgaben verwenden, müssen Sie zuerst Amazon EBS-Volumes Container-Instances anhängen und Volumes getrennt vom Lebenszyklus der Aufgabe verwalten.

Für Cluster, die Windows-Instanzen enthalten, bietet Amazon FSx for Windows File Server dauerhaften Speicher für Container. Amazon FSx for Windows File Server ysteme unterstützen Multi-AZ-Bereitstellungen. Durch diese Bereitstellungen können Sie ein Dateisystem für Amazon ECS-Aufgaben freigeben, die über mehrere Availability Zones hinweg ausgeführt werden.

Sie können Amazon EC2 Instance-Speicher auch für Datenpersistenz für Amazon ECS-Aufgaben verwenden, die auf Amazon EC2 mithilfe von Bind-Mounts oder Docker-Volumes gehostet werden. Bei Verwendung von Bind-Mounts oder Docker-Volumes speichern Container Daten im Container-Instanz-Dateisystem. Eine Einschränkung bei der Verwendung eines Host-Dateisystems für die Containerspeicherung besteht darin, dass die Daten jeweils nur auf einer einzelnen Container-Instanz verfügbar sind. Dies bedeutet, dass Container nur auf dem Host ausgeführt werden können, auf dem sich die Daten befinden. Daher wird die Verwendung von Hostspeicher nur in Szenarien empfohlen, in denen die Datenreplikation auf Anwendungsebene gehandhabt wird.