Database
 sql >> Database >  >> RDS >> Database

Come iniziare con Amazon ECS e Amazon Fargate

Docker può essere installato sulle piattaforme OS più comunemente utilizzate. CoreOS ha Docker preinstallato ed è progettato specificamente per l'esecuzione di contenitori Docker. Docker per AWS offre una modalità swarm Docker pronta all'uso in cui un cluster di nodi, chiamato swarm, fornisce una piattaforma distribuita per l'esecuzione di applicazioni container Docker.

Problema: Tutte le suddette piattaforme Docker sono solo diversi tipi di installazioni Docker e richiedono che i container Docker vengano eseguiti e gestiti sulla riga di comando.

Soluzione: Amazon ECS (Servizio di contenitori elastici ) è un servizio gestito per i container Docker con supporto integrato per ridimensionamento, bilanciamento del carico, networking, archiviazione, registrazione e altre attività di gestione dei container Docker. Amazon ECS supporta due tipi di lancio:EC2 e Fargate.

Con il tipo di avvio EC2, le istanze EC2 vengono avviate per eseguire i container Docker. Il tipo di lancio Fargate, introdotto di recente (novembre 2017), ospita attività che incapsulano i contenitori Docker. Le attività sono rese direttamente accessibili all'utente tramite un'Interfaccia di rete elastica (ENI ). Le istanze EC2 su cui viene eseguito il provisioning di Fargate non sono esposte all'utente e non sono direttamente accessibili.

In questo capitolo impareremo quanto segue:Cos'è Amazon Fargate

  • Vantaggi degli oggetti Fargate Amazon ECS
  • Risorse di calcolo in Amazon ECS Fargate
  • Cosa c'è di nuovo nella modalità del tipo di lancio di Amazon Fargate?

Cos'è Amazon Fargate

Amazon Fargate è un nuovo tipo di lancio per Amazon ECS e Amazon EKS (Servizio Kubernetes elastico )-servizi di orchestrazione gestiti per i container Docker su AWS. Con il tipo di lancio Fargate, l'infrastruttura è completamente fornita da Fargate. È serverless e nessuna istanza EC2 è esposta all'utente. I container Docker sono definiti come definizioni di container all'interno di una definizione di attività. Un servizio implementa la definizione dell'attività per eseguire una o più attività. Ogni attività è associata a un ENI. Se l'assegnazione automatica dell'IP pubblico a livello di attività è abilitata, a un'attività viene assegnato automaticamente un IP pubblico su cui un client esterno può accedere a un'attività. Le attività comunicano tra loro tramite un IP privato.

Vantaggi di Fargate

I vantaggi in ECS sono i seguenti:

  • Un servizio gestito per applicazioni containerizzate che non richiede molto input da parte dell'utente per eseguire applicazioni Docker
  • I microservizi costituiti da più applicazioni vengono eseguiti in contenitori isolati Ridimensiona automaticamente le attività in base al carico dell'applicazione
  • Si integra con altri servizi AWS inclusi IAM, CloudWatch Logs, Elastic Load Balancing, modelli CloudFormation, volumi EBS, Batch, ECR e log CloudTrail
  • Un cloud privato virtuale (VPC ) senza risorse condivise con altri utenti Fornisce supporto per l'esecuzione di CodePipeline con ECS come piattaforma di distribuzione
  • Supporta l'ultima versione Docker 17.0

Fargate offre i seguenti vantaggi aggiuntivi:

  • Con un tipo di lancio Fargate, un utente non crea o gestisce alcuna istanza EC2, poiché nessuna è esposta sul cluster.
  • Le attività sono esposte direttamente all'utente tramite un ENI.
  • L'infrastruttura sottostante è fornita da Fargate. Le istanze EC2 non devono essere gestite con il tipo di lancio Fargate.
  • CodePipeline supporta Fargate come piattaforma di distribuzione.
  • I microservizi basati su definizioni di container incapsulate in una definizione di attività sono collegati in modo esplicito e non devono essere collegati ad alcuna opzione aggiuntiva, come i collegamenti.
  • CloudWatch Logs potrebbe essere configurato automaticamente.

Oggetti Amazon ECS

Gli oggetti Amazon ECS con Fargate sono gli stessi del tipo di lancio EC2. Un cluster ECS è l'incapsulamento più esterno ed è costituito da uno o più servizi. Un cluster può essere distribuito su più zone di disponibilità. Un servizio è un'implementazione di una definizione di attività ed esegue una o più attività. Una definizione di attività può avere una o più revisioni di attività. Una revisione dell'attività è una definizione distinta dell'attività con una serie di attività e un servizio ad essa associati. Un'istanza Fargate è associata a una serie di attività in un servizio. Una definizione di attività è costituita da zero o più definizioni di contenitore. In genere, una definizione di attività viene associata a una o più definizioni di container e una definizione di attività che non consiste in alcuna definizione di container non esegue alcun container di attività. Un diagramma di oggetti ECS è mostrato come segue:

Una definizione di attività è un modello di applicazione e descrive uno o più contenitori. Sebbene alcuni attributi o impostazioni siano configurati a livello di attività, la maggior parte di essi è configurata a livello di contenitore. Più revisioni possono essere associate a una definizione di attività.

Un Servizio implementa una definizione di attività e definisce un conteggio desiderato per le attività da eseguire per una definizione di attività. Le funzionalità opzionali come il ridimensionamento automatico e il bilanciamento del carico sono configurate nel servizio.

Un cluster in un servizio ECS è un raggruppamento di uno o più servizi contenitore. Un nome cluster deve essere univoco all'interno di un account. Per impostazione predefinita viene eseguito il provisioning di un cluster denominato predefinito.

Risorse di calcolo in Amazon ECS Fargate

Dimensione dell'attività è costituito da Memoria attività (GB) e CPU attività (vCPU) . Sebbene sia opzionale nel tipo di lancio EC2, la dimensione dell'attività è richiesta con il tipo di lancio Fargate. È possibile definire facoltativamente la memoria a livello di contenitore Docker e le impostazioni della CPU, ma vengono sovrascritte dalle impostazioni a livello di definizione dell'attività. Sono supportate solo specifiche combinazioni di task memory e task CPU e la procedura guidata ECS indica con un messaggio il valore supportato (o intervallo di valori) per un valore selezionato. Ad esempio, l'intervallo di CPU valido per 1 GB di memoria è compreso tra 0,25 vCPU e 0,5 vCPU. Le risorse totali (memoria o CPU) configurate a livello di contenitore non devono superare le impostazioni delle risorse a livello di attività. Ad esempio, se una definizione di attività è composta da due contenitori (MySQL e WordPress) con un limite di memoria di 128 MB per ciascun contenitore, la memoria a livello di attività deve essere di almeno 256 MB. Inoltre, il totale della memoria a livello di contenitore non deve superare 256 MB. Allo stesso modo per la CPU. È possibile definire due limiti di memoria a livello di contenitore:Limite soft e limite rigido . Il limite Soft corrisponde alla MemoryReservation attributo a livello di attività e il limite Hard corrisponde alla memoria attributo a livello di attività. La somma delle prenotazioni di memoria del contenitore (limiti software) non deve superare la memoria attività. Il limite Hard per ogni contenitore non deve superare la memoria configurata a livello di attività. Per impostazione predefinita è necessario specificare un minimo di 4 GB per un contenitore.

Un esempio di dimensione dell'attività è mostrato nello screenshot seguente, in cui la Memoria attività (memoria attributo) è impostato su 0,5 GB (512 GB) e la CPU Task è impostato su 0,25 vCPU . A livello di container, come configurato nelle due definizioni di container, la prenotazione di memoria è di 128 MB per ogni container, il che rende la prenotazione di memoria totale di 256 MB ben entro i 512 GB assegnato a livello di attività. La dimensione dell'attività viene assegnata a un'attività, utilizzata o meno. Allo stesso modo, il numero di Unità CPU configurato per ogni contenitore è 10 , il che rende le unità CPU totali 20 per i contenitori all'interno delle unità CPU, 25 sono allocate a livello di attività. Fare riferimento allo screenshot seguente:

Configurazione delle dimensioni delle attività e allocazione per i container

Cosa c'è di nuovo nella modalità del tipo di lancio di Amazon Fargate?

Oltre e in concomitanza con i vantaggi di Fargate discussi in precedenza, Fargate supporta le seguenti nuove funzionalità:

  • Modalità di rete, awsvpc , è l'unica modalità supportata
  • Le mappature delle porte host non sono valide con la modalità di rete del tipo di avvio Fargate (awsvpc ) e le porte host su cui è esposta un'applicazione sono le stesse delle porte del contenitore
  • ecsTaskExecutionRole viene aggiunto per il tipo di lancio Fargate per consentire il pull di immagini Docker e l'invio di log a CloudWatch Logs
  • Solo gli awslog configurazione del log e awslogs log driver sono supportati con CloudWatch Logs
  • Il posizionamento delle attività non è supportato, poiché non è previsto il provisioning di istanze ECS per definire i vincoli di posizionamento per
  • Sono supportate solo le immagini Docker su Docker Hub e Amazon ECR I container Windows con privilegi non sono supportati per il tipo di lancio Fargate I dispositivi host non possono essere esposti a un container
  • L'ospite e percorso sorgente i parametri per i volumi non sono supportati con il tipo di lancio Fargate

Riepilogo

In questo capitolo introduttivo, abbiamo discusso i vantaggi dell'utilizzo del tipo di lancio Fargate, come le risorse di calcolo vengono distribuite e configurate con il tipo di lancio Fargate, come gli oggetti ECS con Fargate sono gli stessi del tipo di lancio EC2 e le nuove funzionalità in Fargate. Nel prossimo capitolo parleremo delle reti utilizzate con Fargate.

Il materiale precedente è un estratto dalla Guida rapida di Amazon Fargate , di Deepak Vohra, pubblicato da Pact Publishing.

Questo articolo è stato contribuito. ©Developer.com. Tutti i diritti riservati