Caratteristiche di Amazon ECS

Amazon Elastic Container Service (Amazon ECS) è un servizio di orchestrazione di container interamente gestito che aiuta a implementare, gestire e dimensionare facilmente le applicazioni containerizzate. Privo di versioni e prescrittivo, il piano di controllo di Amazon ECS si integra perfettamente con il resto dell'ambiente AWS per fornire una soluzione sicura e facile da usare per l'esecuzione di carichi di lavoro in container nel cloud. Amazon ECS può essere eseguito con Amazon Elastic Compute Cloud (Amazon EC2) o AWS Fargate, oppure con un'infrastruttura on-premise con Amazon ECS Anywhere.

Caratteristiche principali

AWS Fargate è incorporato in Amazon ECS, vale a dire che non c'è più bisogno di preoccuparsi di gestire server, avere a che fare con la pianificazione della capacità o trovare un modo di isolare i container per la sicurezza del flusso di lavoro. Basta definire i requisiti dell'applicazione, selezionare AWS Fargate come tipo di avvio nella console o nell'interfaccia a linea di comando (CLI) e AWS Fargate si occuperà di tutta la scalabilità e la gestione dell'infrastruttura necessarie per eseguire i container su opzioni di elaborazione flessibili, con integrazioni automatiche con altri servizi AWS di supporto di cui la tua applicazione ha bisogno.

Con Amazon ECS Anywhere puoi utilizzare la solita console Amazon ECS e gli strumenti operativi consueti per gestire i tuoi flussi di lavoro di container on-premise per un'esperienza omogenea in tutte le applicazioni basate su container. Puoi utilizzare Amazon ECS anche su AWS Outposts per eseguire applicazioni containerizzate che richiedono una latenza particolarmente bassa ai sistemi on-premise.

Amazon ECS si integra in maniera nativa con gli strumenti di sicurezza, identità, gestione e governance su cui già fai affidamento, il che ti consente di arrivare alla produzione in modo facile e con successo. Puoi assegnare autorizzazioni granulari a ciascun container, dando un alto livello di isolamento durante la costruzione di applicazioni. Avvia i container con la sicurezza e la conformità che ti sei abituato ad avere con AWS. Inoltre, grazie alle integrazioni con Amazon GuardDuty, puoi rilevare rapidamente e facilmente le minacce esterne ai tuoi carichi di lavoro prima che si concretizzino.

Amazon ECS è un servizio di orchestrazione dei container completamente gestito, con la configurazione e le best practice operative di AWS già incorporate, senza bisogno di gestire piano di controllo, nodi o add-on. Si integra in modo nativo sia con gli strumenti di AWS che quelli di terze parti per permettere ai team di concentrarsi più facilmente sulla costruzione delle applicazioni e non dell'ambiente.

Sviluppo

Amazon ECS supporta la gestione dei contenitori Windows. Un'AMI (Amazon Machine Image) di Windows ottimizzata per Amazon ECS offre prestazioni migliori sul tempo di lancio dei contenitori e delle istanza e visibilità sulla CPU, sull'utilizzo della memoria e sui parametri di prenotazione.

La CLI di AWS Copilot è uno strumento che consente agli sviluppatori di creare, rilasciare e usare applicazioni containerizzate pronte per la produzione in Amazon ECS e AWS Fargate. Copilot raccoglie le best practice, dall'infrastruttura alla distribuzione continua, e le mette a disposizione dei clienti attraverso la praticità della riga di comando. È inoltre possibile monitorare l'integrità del servizio visualizzandone lo stato e i log, dimensionare i servizi di produzione e configurare un nuovo ambiente per i test automatizzati. Scarica AWS Copilot.

Amazon ECS può essere usato con qualsiasi repository di immagini Docker di terze parti o registro Docker privato accessibile, ad esempio Docker Hub e Amazon Elastic Container Registry (Amazon ECR). Specificando il repository nella definizione di attività, Amazon ECS recupererà le immagini appropriate per le applicazioni.

Gestione

Amazon ECS consente di definire le attività tramite un modello in formato JSON (JavaScript Object Notation) chiamato definizione di attività. All'interno di una Definizione di attività è possibile specificare uno o più container 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 container. 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 ECS fornisce un set molto semplice di operazioni API che consente di integrare ed estendere il servizio. Le operazioni API consentono di creare ed eliminare cluster, attivare e disattivare la registrazione di attività, avviare e terminare container 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 container.

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 dall'Application Load Balancer associato in modo automatico.

Amazon ECS procederà automaticamente al ripristino dei container non integri per assicurare che l'applicazione possa impiegare sempre il numero desiderato di container.

I fornitori di capacità ti permettono di definire regole flessibili per la containerizzazione dei carichi di lavoro eseguiti su diversi tipi di capacità di calcolo e di gestire il dimensionamento della capacità. I fornitori di capacità funzionano sia con Amazon Elastic Compute Cloud (Amazon EC2) che con AWS Fargate. Durante l'esecuzione di attività e servizi, puoi dividerli tra più fornitori di capacità, abilitando nuove possibilità come l'esecuzione di un servizio in una sezione percentuale predefinita tra Fargate e Fargate Spot.

Amazon Elastic Block Store (Amazon EBS) è un servizio di storage a blocchi facile da usare, scalabile e ad alte prestazioni che consente di effettuare il provisioning di storage a costi contenuti per le tue implementazioni Amazon ECS e AWS Fargate. Puoi utilizzare tutte le configurazioni e le funzionalità di EBS con i carichi di lavoro dei container distribuiti su Amazon ECS.

Amazon Elastic File System (Amazon EFS) è un file system elastico, completamente gestito e scalabile, che ti permette di creare applicazioni moderne e rendere persistenti e condivisibili dati e stato dalle implementazioni di Amazon ECS e AWS Fargate. Tutti gli aspetti dell'utilizzo di Amazon EFS con i container, inclusa la connettività, sono già risolti, non è richiesta alcuna gestione. Devi concentrarti solo sulle applicazioni, non sull'infrastruttura. Ulteriori informazioni sull’archiviazione persistente dei file.

Programmazione e posizionamento di attività

Amazon ECS include numerose strategie 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 le strategie di pianificazione disponibili, è possibile pianificare processi in batch, l'esecuzione di applicazioni e servizi che richiedono lunghi tempi di elaborazione e processi daemon.

La pianificazione di attività di Amazon ECS consente di eseguire processi che svolgono attività e poi si fermano, quali le attività di elaborazione in batch. La pianificazione di attività avvia gli incarichi manualmente, automaticamente da un coda di processi o in base a un intervallo di tempo definito dall'utente.

Scopri di più sulla pianificazione delle attività di Amazon ECS »

La pianificazione di servizi Amazon ECS permette di eseguire servizi e applicazioni senza stato. La strategia di pianificazione assicura che un numero specifico di attività venga eseguito continuamente e riavvia gli incarichi se avvengono errori. I clienti possono assicurarsi che le attività siano registrate su un sistema di bilanciamento del carico Elastic Load Balancing e sia possibile eseguire controlli dello stato definiti dall'utente per le attività in esecuzione.

La pianificazione daemon Amazon ECS esegue automaticamente la stessa attività su ciascuna istanza selezionata nel tuo cluster ECS. Questo semplifica l'esecuzione di attività che forniscono funzionalità di gestione comuni per servizi quali la registrazione di log, il monitoraggio o i backup.

Amazon ECS permette agli utenti di personalizzare il modo in cui gli incarichi sono collocati su un cluster di istanze Amazon EC2 sulla base di attributi integrati come il tipo di istanza, la zona di disponibilità o gli attributi personalizzati definiti dall'utente. Utilizza attributi quali ambiente=produzione per etichettare le risorse, usa le azioni API per trovare tali risorse e le azioni API RunTask e CreateService per pianificare le attività su tali risorse.

Con Amazon ECS utilizza strategie di posizionamento quali bin pack e distribuzione per definire ulteriormente dopo posizionare le attività. Le policy possono essere concatenate per disporre di capacità di posizionamento sofisticate senza dover scrivere alcun codice.

Rete

Amazon ECS Service Connect semplifica il rilevamento dei servizi, la connettività e l'osservabilità del traffico per Amazon ECS. Ti aiuta a creare applicazioni più rapidamente permettendoti di concentrarti sul codice e non sull'infrastruttura di rete. Puoi utilizzare ECS Service Connect per definire il nome logico degli endpoint del servizio e utilizzarli nelle applicazioni del client per connetterti alle dipendenze. ECS Service Connect aiuta a inviare il traffico a endpoint integri e fornisce una ricca telemetria del traffico nella console ECS e in Amazon CloudWatch. Le implementazioni native di ECS sono più forti con ECS Service Connect, dato che questo servizio supporta lo svuotamento della connessione automatico che aiuta le applicazioni a passare a una nuova versione dell'endpoint del servizio senza riscontrare errori di traffico.

Con ECS Service Connect, puoi:

• Impostare il modo in cui le applicazioni client si connettono alle loro dipendenze in un unico passaggio

• Scrivere ed eseguire applicazioni distribuite resilienti con nomi logici

• Monitorare e distribuire traffico tra attività ECS senza implementare e configurare sistemi di bilanciamento del carico

• Implementare servizi più rapidamente e fornire integrazione semplice dei microservizi ECS che comprendono un'applicazione

Scopri di più sulla migrazione dei servizi Amazon ECS esistenti dal rilevamento servizi a ECS Service Connect »

Amazon ECS è integrato con AWS Cloud Map per facilitare ai servizi containerizzati la possibilità di individuarsi e connettersi tra di loro. AWS Cloud Map è un servizio di individuazione di risorse su cloud che permette di definire nomi personalizzati per le risorse di applicazione. Ciò aumenta la disponibilità dell'applicazione poiché il servizio Web trova sempre l'ubicazione più aggiornata di queste risorse che cambiano in modo dinamico.

Scopri di più sulla migrazione dei servizi Amazon ECS esistenti dal rilevamento servizi a ECS Service Connect »

Amazon ECS supporta le reti Docker e si integra con Amazon VPC per fornire isolamento alle istanze di container. In questo modo è possibile controllare in che modo i container dovranno connettersi ad altri servizi e al traffico esterno. Con Amazon ECS, è possibile scegliere tra quattro diverse modalità di networking per i container, a seconda del caso d'uso:

Networking attività/awsvpc
In questa modalità, ad ogni attività ECS viene assegnata un'interfaccia di rete elastica dedicata, assegnando così ai container tutte le funzionalità di rete di un cloud privato virtuale, come le istanze EC2.

Bridge
In questa modalità viene creato un bridge Linux che collega tutti i container in esecuzione sull'host in una rete locale virtuale, accessibile tramite la connessione di rete predefinita dell'host.

Host
In questa modalità i container sono aggiunti direttamente allo stack di rete dell'host, lasciandoli esposti in rete senza isolamento.

Nessuno
In questa modalità non è prevista alcuna caratteristica di rete esterna per i container.

Amazon ECS integra Elastic Load Balancing (ELB) per consentire la distribuzione del traffico su diversi contenitori tramite Application Load Balancer o Network Load Balancer. Specificando la definizione di attività e il sistema di bilanciamento del carico da utilizzare, Amazon ECS aggiungerà e rimuoverà i container automaticamente. Specifica 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. Condividi inoltre un sistema di bilanciamento del carico con più servizi mediante routing basato sul percorso.

Monitoraggio e accessi

Amazon ECS offre funzionalità di monitoraggio per container 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. Imposta allarmi di CloudWatch per ricevere un avviso quando i container o i cluster necessitano di un dimensionamento.

Amazon ECS consente di registrare tutte le chiamate API di Amazon ECS e ricevere i file di log consegnati 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 AWS, 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à.

AWS Config si integra con Amazon ECS per fornirti visibilità nella configurazione delle risorse AWS sul tuo account AWS. AWS Config permette di monitorare e tenere traccia di come le risorse sono state configurate, come sono correlate una all'altra e come queste configurazioni e relazioni cambiano nel tempo. AWS Config permette di semplificare conformità e sicurezza, soluzione dei problemi operativa e amministrazione delle risorse.

Distribuzioni ibride

Puoi utilizzare Amazon ECS su AWS Outposts per eseguire applicazioni containerizzate che richiedono una latenza particolarmente bassa ai sistemi on-premise. Outposts è un servizio completamente gestito che estende l'infrastruttura di AWS, i servizi AWS, le API e gli strumenti, praticamente per qualsiasi sito connesso. Con Amazon ECS su Outposts puoi gestire container on-premise con la stessa facilità con cui gestisci i container nel cloud.

Con Amazon ECS Anywhere puoi utilizzare la solita console Amazon ECS e gli strumenti operativi consueti per gestire i tuoi flussi di lavoro di container on-premise per un'esperienza omogenea in tutte le applicazioni basate su container. L'integrazione di AWS Systems Manager (SSM) stabilisce attendibilità in modo automatico e sicuro tra hardware on-premise e piano di controllo AWS.

Ulteriori informazioni su Amazon ECS Anywhere »