Come iniziare con Auto-Scaling Contenitore Distribuzioni su AWS ECS

0
38

AWS Elastic Contenitore di Servizio (ECS) è un compute motore specificamente progettati per il Mobile contenitori. Si può utilizzare per distribuire i contenitori utilizzando sottostante istanze EC2, o eseguire un server indipendente dalla distribuzione sul Fargate.

Che cosa È ECS?

L’utilizzo di base di ECS è abbastanza semplice. Piuttosto che dover amministrare server Linux, è sufficiente dare un Mobile contenitore, scegli la quantità di potenza di calcolo che si vuole dare, e impostare il lavoro. ECS gestisce il lavoro sporco di trovare il metallo per eseguirlo. Per impostazione predefinita, funziona senza server utilizzando Fargate, anche se si può anche scegliere di eseguire i vostri contenitori su istanze EC2, e di mantenere il pieno controllo su di loro.

Ogni volta che si desidera effettuare aggiornamenti, è sufficiente aggiornare il contenitore nel contenitore del registro di sistema e innescare un aggiornamento per ECS. È possibile automatizzare l’intero processo utilizzando CodePipeline, che può costruire il contenitore dalla sorgente e il roll-out di un blu/verde di distribuzione a ECS.

ECS può anche essere facilmente adattato automaticamente con un singolo interruttore di rispetto per EC2, che richiede un po ‘ di impostazioni aggiuntive. Se si sceglie di abilitare questa funzione, ECS distribuirà automaticamente nuovi contenitori per soddisfare la domanda ogni volta che l’utilizzo della CPU, utilizzo della memoria, o altri allarmi arrivare in alto. Con auto-scaling, non dovrai mai preoccuparti di aggiornare il proprio server, ad una classe superiore, o manualmente la distribuzione di più di loro. L’effetto opposto è anche vero, la tua applicazione può scalare verso il basso durante le ore di risparmiare denaro nel processo.

Per quanto pricing va, non ci sono costi aggiuntivi per l’EC2 lancio del modello. Si pagano solo per il sottostante istanze. Per Fargate, la tassa è calcolata in base al numero di cpu e di memoria richiesto. Se si esegue i numeri, Fargate risulta essere il 20% più costoso sulla carta. Tuttavia, questo è compensato dal fatto che Fargate distribuzioni (se configurato correttamente) solo uso esattamente come la quantità di risorse di cui hanno bisogno, che ottimizza i costi di un bel po’. Fargate supporta anche il Punto di Istanze, che risparmiare un sacco di soldi su EC2, e fare Fargate preferito metodo di lancio, in ogni caso, che non necessitano di un accesso diretto al server sottostante per qualche motivo.

Impostazione della finestra Mobile e Spingendo per la RACC

Per ottenere il contenitore per ECS, allora avrai bisogno di spingerlo a un repository. È possibile utilizzare la finestra Mobile hub o il proprio registro di sistema server, ma AWS offre la propria soluzione con Elastico Contenitore del Registro di sistema. Si può spingere contenitori di qui, e li hanno privati al tuo account AWS, e facilmente accessibile da altri servizi come la ECS e CodePipeline.

Testa a RACCOLTA Console di Gestione e creare un nuovo repository. Il repository URI dipende dal tuo account AWS ID—è possibile copiare sotto la “URI” colonna.

Salvare lo script riportato di seguito come updateECR.sh accanto al tuo Dockerfile. Sostituire il TAG e di pronti contro termine le variabili con i valori appropriati.

TAG=”finestra mobile-test”
PCT=”ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/”$TAG”:le ultime”

aws ecr get-login-password | mobile login –username AWS –password stdin $REPO
mobile build-t $TAG .
mobile tag $TAG:più recente $REPO
mobile push $REPO

L’esecuzione di questo script di login ECR, costruire il vostro contenitore, tag, e spingere il proprio repository. Se si aggiorna l’elenco, si dovrebbe vedere il vostro contenitore:

La distribuzione sul ECS

Per il lancio di un contenitore di ECS, avrete bisogno di due cose:

  • Una “Definizione di Attività”, che contiene i metadati relativi contenitori stessi—che le porte sono esposti, la quantità di memoria da allocare ai contenitori, etc. È possibile eseguire più contenitori in una singola definizione di attività, se l’applicazione fa uso di più.
  • Un “Servizio”, che rappresenta una distribuzione di una definizione di attività, la creazione di reti ad esso associati, e il ridimensionamento automatico delle impostazioni. È possibile raggruppare più servizi in un unico Cluster.”

Devi creare la definizione di attività prima, in modo da creare uno da “Definizioni di Attività” nella barra laterale.

Dare un nome e specificare il compito di memoria e di vCPU dimensioni. Tenete a mente che si può sempre creare più contenitori e collegarli tra loro con un sistema di Bilanciamento del Carico. Se stai pianificando l’uso di auto-scaling, avrai voglia di pensare a questo valore come unità di misura dimensioni del contenitore, piuttosto che la distribuzione di un singolo 16 vCPU contenitore, si può scegliere di distribuire otto 2 vCPU contenitori.

Avanti, fare clic su “Aggiungi Contenitore” per definire i contenitori di questa definizione di attività sarà gratuita. Incollare l’URI della finestra Mobile contenitore in RACC. È anche possibile impostare soft e hard – memoria dei limiti di qui, e porte aperte (applicabile solo per EC2 lancio tipi).

Una volta creato, è possibile implementare i Servizi di questa definizione. Oltre al capo i “Cluster” e creare un nuovo cluster, scegliendo Fargate o EC2 a seconda delle vostre preferenze. Facoltativamente, è possibile scegliere di creare un nuovo VPC per questo cluster, o si può implementare di default nella tua VPC.

È possibile eseguire operazioni manualmente, ma è meglio creare un servizio per gestire. Creare un nuovo servizio dal Cluster di vista:

Dare un nome, selezionare il tipo di lancio che si sta utilizzando, e selezionare la definizione di attività che hai appena creato. Qui, è possibile impostare il numero di attività che vuoi lanciare, e come molti di loro devono essere sani e in qualsiasi momento. Se uno dei compiti che non riesce o è terminato, uno nuovo, filata a sostituirlo. Questo è indipendente auto-scaling.

Nella schermata successiva, selezionare la VPC, e selezionare una subnet da distribuire nel. Inoltre ti consigliamo di aprire il Gruppo di Protezione che il vostro servizio, e aprire le porte necessarie per la vostra applicazione.

È inoltre possibile aggiungere un sistema di Bilanciamento del Carico o impostare i DNS, impostazioni di questa pagina. Se si utilizza un sistema di Bilanciamento del Carico, si desidera assicurarsi di impostare un ragionevole “Health Check ” Periodo di Grazia” per evitare che i compiti vengano contrassegnati come malsana mentre ancora il lancio.

Nella schermata successiva, è possibile configurare auto-scaling, che è semplice come accendere, specificando il numero di attività che si desidera eseguire, il numero massimo che si può permettere, e il minimo che ECS non dovrebbe mai scendere al di sotto.

È possibile impostare il rilevamento del bersaglio ridimensionamento della politica di TargetTrackingPolicy, e il ECSServiceAverageCPUUtilization soglia per il 75-80% o giù di lì. Se non si desidera utilizzare il target tracking politica, è possibile eseguire manualmente la scala su e giù, sulla base di Ur allarmi.

Una volta distribuito, il servizio avrà un minuto a fuoco il primo contenitori, e sarà a disposizione il contenitore o di Bilanciamento del Carico di ENI endpoint. Se si desidera, è possibile assegnare un Elastico IP per questo l’ENI, che è possibile configurare con i tuoi DNS per un collegamento permanente al cluster.