Amazon EC2 Container Service (ECS) consente di eseguire e gestire con la massima semplicità applicazioni compatibili con Docker sui cluster delle istanze Amazon EC2. Le applicazioni incluse in pacchetti come contenitori locali vengono distribuite ed eseguite come contenitori gestiti da Amazon ECS. Amazon ECS solleva dalla necessità di installare, gestire e ridimensionare un'infrastruttura di gestione dei cluster, consentendo di pianificare le applicazioni compatibili con Docker nei cluster in base alle esigenze di risorse e ai requisiti di disponibilità. Amazon ECS consente di eseguire da uno a migliaia di contenitori su centinaia di istanze senza pesare sulla complessità di esecuzione delle applicazioni. È possibile eseguire applicazioni, processi in batch e microservizi. Amazon ECS estrapola la complessità dell'infrastruttura, consentendo di concentrare l'attenzione sulla progettazione e l'esecuzione delle applicazioni nei contenitori.
Con Amazon ECS, avrai visibilità e controllo completi sul cluster, dalla creazione all'arresto dei contenitori Docker, consentendoti di consultare informazioni dettagliate sullo stato del cluster. È possibile integrare e utilizzare sistemi di pianificazione dei contenitori personalizzati oppure collegare EC2 Container Service al processo di distribuzione software esistente (ad esempio sistemi di integrazione e distribuzione continui).
Amazon EC2 Container Service
Nozioni di baseRicevi dodici mesi di accesso al piano gratuito di utilizzo AWS e sfrutta le caratteristiche di supporto Basic di AWS, inclusa l'assistenza al cliente 24x7x365, il forum di supporto e molto altro.
Amazon EC2 Container Service supporta Docker e consente di eseguire e gestire i contenitori Docker su un cluster di istanze Amazon EC2. Ogni istanza Amazon EC2 in un cluster gestito da Amazon ECS eseguirà un daemon Docker, perciò qualsiasi applicazione inclusa in un pacchetto come contenitore locale sarà distribuita ed eseguita in Amazon ECS senza dover modificare la configurazione.
Controllare un'infrastruttura di gestione dei contenitori comporta l'installazione, il funzionamento e la ricalibrazione di software di gestione del cluster, sistemi di gestione della configurazione e soluzioni di monitoraggio. Progettare e gestire la disponibilità e la scalabilità di questi sistemi è un'operazione complessa. Amazon EC2 Container Service libera dalla complessità della gestione dei contenitori. Con Amazon ECS, è sufficiente avviare un cluster di istanze contenitore e specificare le attività che devono eseguire; Amazon ECS si prenderà carico di tutto il resto, gestione inclusa.
Amazon EC2 Container Service consente di definire le attività tramite un modello dichiarativo in formato JSON chiamato definizione di attività. All'interno di una definizione di attività è possibile specificare uno o più contenitori richiesti per l'attività, incluso il repository Docker, nonché i requisiti di immagine, memoria e CPU, i volumi di dati condivisi e le modalità di collegamento tra contenitori. Un singolo file di definizione di attività consente di avviare un qualsiasi numero di attività da registrare con il servizio. Con i file di definizione di attività è inoltre possibile controllare la versione delle specifiche dell'applicazione.
Amazon EC2 Container Service fornisce un set molto semplice di chiamate API che consente di integrare ed estendere il servizio. Le API consentono di creare ed eliminare cluster, attivare e annullare la registrazione di attività, avviare e terminare contenitori Docker e fornire informazioni dettagliate sullo stato del cluster e delle relative istanze. È anche possibile utilizzare AWS CloudFormation per effettuare il provisioning di cluster Amazon ECS, registrare definizioni di attività e pianificare contenitori.
Amazon EC2 Container Service include sistemi di pianificazione che dispongono il posizionamento dei contenitori nei cluster in base alle esigenze di risorse (ad esempio CPU o RAM) e ai requisiti di disponibilità. Utilizzando i sistemi di pianificazione disponibili, è possibile pianificare l'esecuzione di applicazioni e servizi che richiedono lunghi tempi di elaborazione e processi in batch. Le API di Amazon ECS, inoltre, forniscono informazioni complete sullo stato del cluster, consentendo di creare sistemi di pianificazione interni o integrare sistemi di terze parti (ad esempio Marathon). Amazon ECS è un sistema a stato condiviso con concorrenza ottimistica che permette a tutti i sistemi di pianificazione di consultare lo stato completo del cluster. È possibile pianificare i propri sistemi di pianificazione o integrare quelli di terze parti utilizzando le API di Amazon ECS o Blox, una raccolta di progetti open source per la gestione e l’orchestrazione dei contenitori. Per ulteriori informazioni, visita la pagina Blox GitHub.
Ripristino automatico dei contenitori
Il sistema di pianificazione di Amazon ECS procederà automaticamente al ripristino dei contenitori non integri per assicurare che l'applicazione possa impiegare sempre il numero desiderato di contenitori.
Distribuzione di contenitori
Amazon ECS consente di aggiornare i contenitori alle versioni più recenti con la massima semplicità. Caricando una nuova versione della definizione di attività dell'applicazione, il sistema di pianificazione di Amazon ECS avvierà automaticamente nuovi contenitori usando l'immagine aggiornata e interromperà i contenitori che utilizzano la versione non aggiornata. Amazon ECS attiva e annulla la registrazione dei contenitori dai sistemi di bilanciamento del carico associati in modo automatico.
Amazon ECS integra Elastic Load Balancing (ELB) per consentire la distribuzione del traffico su diversi contenitori. Specificando la definizione di attività e il sistema di bilanciamento del carico da utilizzare, il sistema di pianificazione di Amazon ECS aggiungerà e rimuoverà i contenitori automaticamente. È possibile specificare una porta dinamica nella definizione di attività, così il container avrà a disposizione una porta non utilizzata quando viene pianificato per l'esecuzione in un'istanza EC2. È anche possibile condividere un ELB con più servizi mediante routing basato sul percorso.
L'interfaccia a riga di comando di Amazon EC2 Container Service consente di semplificare lo sviluppo in locale e per configurare in modo semplice un cluster Amazon ECS con le risorse correlate (ad esempio un'istanza EC2). L'interfaccia a riga di comando di Amazon ECS supporta Docker Compose, uno strumento open source che consente di definire ed eseguire applicazioni multi-contenitore. La stessa definizione di Compose utilizzata per definire un'applicazione multi-contenitore può essere applicata su un computer di sviluppo e in produzione. L'interfaccia a riga di comando di Amazon ECS è open source e può essere scaricata da questa pagina.
Amazon ECS offre funzionalità di monitoraggio per contenitori e cluster. Tramite Amazon CloudWatch, è possibile monitorare l'utilizzo medio o globale di CPU e memoria per le attività in esecuzione raggruppate per definizione di attività, servizio o cluster. È anche possibile impostare allarmi di CloudWatch per ricevere un avviso quando i contenitori o i cluster necessitano di un ridimensionamento.
È possibile inviare i log dell'agente di ECS per ciascuna istanza di container e i log del container Docker ad Amazon CloudWatch Logs per semplificare la diagnosi dei problemi. È anche possibile registrare tutte le chiamate API di Amazon ECS e ricevere i file di log tramite AWS CloudTrail. Le informazioni registrate includono l'identità dell'autore e l'orario della chiamata API, l'indirizzo IP di origine dell'autore della chiamata API, i parametri della richiesta e gli elementi di risposta restituiti da Amazon ECS. CloudTrail fornisce uno storico delle chiamate API tramite la console di gestione di Amazon ECS, i kit SDK AWS e l'interfaccia a riga di comando di AWS, rendendo possibile analisi di sicurezza, monitoraggio delle modifiche alle risorse e audit di conformità.
Amazon EC2 Container Service può essere usato con qualsiasi registro Docker di terze parti o privato accessibile, oppure con Docker Hub, un repository di immagini Docker in hosting. Specificando il repository nella definizione di attività, Amazon ECS recupererà le immagini appropriate per le applicazioni.
Amazon EC2 Container Service consente di specificare un ruolo IAM per ogni attività di ECS. In questo modo le istanze di container ECS possono rivestire un ruolo minore, rispettando la policy di accesso di privilegio minimo e consentendo di gestire separatamente il ruolo dell'istanza e dell'attività. Permette inoltre di ottenere visibilità sull'utilizzo dei ruoli da parte delle attività grazie ai log di CloudTrail.