Procedure ottimali - Archiviazione persistente - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Procedure ottimali - Archiviazione persistente

Puoi utilizzare Amazon ECS per eseguire applicazioni containerizzate con stato su larga scala utilizzandoAWSservizi di archiviazione, come Amazon EFS, Amazon EBS o Amazon FSx for Windows File Server, che forniscono la persistenza dei dati a contenitori intrinsecamente effimeri. Il terminePersistenza dei datisignifica che i dati stessi durano il processo che li ha creati. Persistenza dei dati inAWSsi ottiene accoppiando i servizi di elaborazione e storage. Analogamente a Amazon EC2, puoi anche utilizzare Amazon ECS per disaccoppiare il ciclo di vita delle applicazioni containerizzate dai dati che consumano e producono. Utilizzo diAWS, le attività Amazon ECS possono mantenere i dati anche dopo la fine delle attività.

Per impostazione predefinita, i contenitori non mantengono i dati che producono. Quando un contenitore viene terminato, i dati che ha scritto al suo livello scrivibile vengono distrutti con il contenitore. Ciò rende i contenitori adatti per applicazioni stateless che non hanno bisogno di archiviare dati localmente. Le applicazioni containerizzate che richiedono la persistenza dei dati necessitano di un back-end di archiviazione che non viene distrutto quando il contenitore dell'applicazione termina.


            Diagramma che mostra i livelli di archiviazione di un contenitore.

Un'immagine contenitore è costruita su una serie di livelli. Ogni livello rappresenta un'istruzione nel Dockerfile da cui è stata creata l'immagine. Ogni layer è di sola lettura, ad eccezione del contenitore. Cioè, quando si crea un contenitore, un livello scrivibile viene aggiunto sui livelli sottostanti. Tutti i file creati dal contenitore, eliminati o modificati vengono scritti nel layer scrivibile. Quando il contenitore termina, anche il livello scrivibile viene eliminato simultaneamente. Un nuovo contenitore che utilizza la stessa immagine ha un proprio livello scrivibile. Questo layer non include alcuna modifica. Pertanto, i dati di un contenitore devono sempre essere memorizzati al di fuori del livello scrivibile contenitore.

Con Amazon ECS, puoi eseguire contenitori con stato utilizzando volumi. Amazon ECS è integrato nativamente con Amazon EFS e utilizza volumi integrati con Amazon EBS. Per i contenitori Windows, Amazon ECS si integra con Amazon FSx for Windows File Server per fornire spazio di archiviazione persistente.

Scegliere il giusto tipo di storage per i container

Le applicazioni in esecuzione in un cluster Amazon ECS possono utilizzare una varietà diAWSServizi di storage e prodotti di terze parti per fornire storage persistente per carichi di lavoro con stato. È consigliabile scegliere il back-end di storage per l'applicazione containerizzata in base all'architettura e ai requisiti di storage dell'applicazione. Per ulteriori informazioni suAWSservizi di archiviazione, vedereArchiviazione nel cloudAWS: .

Per i cluster Amazon ECS che contengono istanze Linux o sono utilizzati con Fargate, Amazon ECS si integra con Amazon EFS e Amazon EBS per fornire lo storage dei contenitori. La differenza più distintiva tra Amazon EFS e Amazon EBS è che è possibile montare simultaneamente un filesystem Amazon EFS su migliaia di attività Amazon ECS. Al contrario, i volumi Amazon EBS non supportano l'accesso simultaneo. In considerazione di ciò, Amazon EFS è l'opzione di archiviazione consigliata per le applicazioni containerizzate scalabili orizzontalmente. Questo perché supporta la concorrenza. Amazon EFS memorizza i dati in modo ridondante in più zone di disponibilità e offre un accesso a bassa latenza dalle attività Amazon ECS, indipendentemente dalla zona di disponibilità. Amazon EFS supporta attività eseguite sia su Amazon EC2 che su Fargate.

Supponiamo di avere un'applicazione come un database transazionale che richiede una latenza inferiore al millisecondo e non abbia bisogno di un filesystem condiviso quando è scalato orizzontalmente. Per tale applicazione, ti consigliamo di utilizzare i volumi Amazon EBS per lo storage persistente. Attualmente, Amazon ECS supporta i volumi Amazon EBS solo per le attività ospitate su Amazon EC2. Il Support per i volumi Amazon EBS non è disponibile per le attività su Fargate. Prima di utilizzare i volumi Amazon EBS con le attività Amazon ECS, devi prima allegare i volumi Amazon EBS alle istanze del contenitore e gestire i volumi separatamente dal ciclo di vita dell'attività.

Per i cluster che contengono istanze di Windows, Amazon FSx for Windows File Server fornisce spazio di archiviazione permanente per i contenitori. Amazon FSx for Windows File Server supporta distribuzioni multi-AZ. Attraverso queste distribuzioni, è possibile condividere un filesystem con attività Amazon ECS in esecuzione su più zone di disponibilità.

Puoi anche utilizzare l'archiviazione istanze Amazon EC2 per la persistenza dei dati per le attività Amazon ECS ospitate su Amazon EC2 utilizzando supporti bind o volumi Docker. Quando si utilizzano supporti bind o volumi Docker, i contenitori memorizzano i dati nel file system dell'istanza contenitore. Una limitazione dell'utilizzo di un filesystem host per lo storage dei contenitori è che i dati sono disponibili solo su una singola istanza contenitore alla volta. Ciò significa che i contenitori possono essere eseguiti solo sull'host in cui risiedono i dati. Pertanto, l'utilizzo dello storage host è consigliato solo in scenari in cui la replica dei dati viene gestita a livello di applicazione.