Progetta la tua soluzione per Amazon ECS - 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à.

Progetta la tua soluzione per Amazon ECS

È necessario progettare le applicazioni in modo che possano essere eseguite su container. Un container è un'unità di sviluppo software standardizzata che contiene tutto ciò che è necessario per l'esecuzione dell'applicazione software. Ciò include codice, runtime, strumenti di sistema e librerie di sistema pertinenti. I container vengono creati da un modello di sola lettura denominato immagine. Un'immagine del container è un artefatto statico contenente l'applicazione e le sue dipendenze. Le immagini sono generalmente create da un Dockerfile. Un Dockerfile è un file di testo semplice che contiene le istruzioni per la creazione di un container. In seguito alla creazione, tali immagini vengono archiviate in un registro, ad esempio Amazon ECR, da cui possono essere scaricate.

Dopo aver creato e archiviato l'immagine, puoi creare una definizione dell'attività di Amazon ECS. Una definizione di attività è un blueprint dell'applicazione. Si tratta di un file di testo in formato JSON che descrive i parametri e uno o più container che formano l'applicazione. Ad esempio, puoi utilizzarla per specificare l'immagine e i parametri del sistema operativo, i container da utilizzare, le porte da aprire per l'applicazione e i volumi di dati da utilizzare con i container nell'attività. I parametri specifici disponibili per la definizione di attività dipendono dalle esigenze dell'applicazione specifica.

Dopo aver stabilito la definizione di attività, implementala come servizio o attività nel cluster. Un cluster è un raggruppamento logico di attività o servizi in esecuzione sull'infrastruttura di capacità registrata in un cluster.

Si definisce attività la creazione dell'istanza relativa a una definizione di attività all'interno di un cluster. Puoi eseguire un processo autonomo oppure eseguire un processo come parte di un servizio. Puoi utilizzare un servizio Amazon ECS per eseguire e mantenere simultaneamente il numero desiderato di processi in un cluster Amazon ECS. Il funzionamento è che, se uno dei processi non riesce o si interrompe per qualsiasi motivo, il pianificatore del servizio Amazon ECS lancia un'altra istanza in base alla definizione di attività. Lo fa per sostituirlo e quindi mantenere il numero desiderato di processi nel servizio.

L'agente del container funziona su ogni istanza di container in un cluster Amazon ECS. L'agente invia ad Amazon ECS informazioni sui processi correntemente in esecuzione e sull'utilizzo delle risorse dei tuoi container. Avvia e interrompe i processi ogni volta che riceve una richiesta da Amazon ECS.

Dopo aver implementato l'attività o il servizio, puoi utilizzare uno degli strumenti seguenti per monitorare l'implementazione e l'applicazione:

  • CloudWatch

  • Monitoraggio del runtime

Capacity

Capacità: l'infrastruttura su cui vengono eseguiti i container Amazon ECS offre tre tipi di infrastruttura per i tuoi cluster:

  • Amazon ECS Managed Instances: gestisce AWS completamente le istanze Amazon EC2 sottostanti in esecuzione nel tuo account, inclusi il provisioning, l'applicazione di patch e la scalabilità. Questa opzione offre un equilibrio ottimale tra prestazioni, convenienza economica e semplicità operativa.

  • Serverless (Fargate): paghi solo per le risorse utilizzate dalle tue attività senza gestire alcuna infrastruttura. Ideale per carichi di lavoro variabili e per iniziare rapidamente.

  • EC2 Istanze Amazon: gestisci direttamente le EC2 istanze Amazon sottostanti, inclusa la selezione, la configurazione e la manutenzione delle istanze.

Usa le istanze gestite da Amazon ECS quando:

  • Desideri la semplicità di Fargate con un maggiore controllo sull'infrastruttura sottostante.

  • Hai bisogno di prestazioni prevedibili e ottimizzazione dei costi.

  • Vuoi AWS gestire la gestione dell'infrastruttura mantenendo la flessibilità.

Usa Fargate quando:

  • Vuoi concentrarti sulla tua applicazione senza gestire l'infrastruttura.

  • Hai carichi di lavoro variabili o imprevedibili.

  • Stai iniziando con i container e desideri l'opzione di implementazione più semplice.

Usa le EC2 istanze Amazon quando:

  • Necessiti di requisiti hardware specializzati (accelerazione GPU, elaborazione ad alte prestazioni).

  • Necessiti di prenotazioni della capacità o tipi di istanze specifici.

  • Hai bisogno di funzionalità privilegiate o personalizzate. AMIs

Specifici l'infrastruttura quando crei un cluster. Quando registri una definizione di attività, devi specificare anche il tipo di infrastruttura. La definizione dell'attività si riferisce all'infrastruttura come al “tipo di avvio”. Puoi anche utilizzare fornitori di capacità.

Endpoint di servizio

L'endpoint del servizio è l'URL del punto di ingresso per Amazon ECS che usi per connetterti al servizio in modo programmatico utilizzando Internet Protocol versione 4 (IPv4) o Internet Protocol versione 6 (). IPv6 Per impostazione predefinita, le richieste effettuate per connettersi ad Amazon ECS utilizzano programmaticamente endpoint di servizio che supportano solo le richieste. IPv4 Per connetterti a livello di codice con Amazon ECS utilizzando una delle due IPv4 IPv6 richieste, puoi utilizzare un endpoint dual-stack. Per ulteriori informazioni sugli endpoint dual-stack, consulta Utilizzo degli endpoint dual-stack Amazon ECS.

Rete

AWS le risorse vengono create in sottoreti. Quando usi EC2 le istanze, Amazon ECS avvia le istanze nella sottorete specificata al momento della creazione di un cluster. Le tue attività vengono eseguite nella sottorete dell'istanza. Per le macchine virtuali Fargate oppure on-premises, si specifica la sottorete quando si esegue un'attività o si crea un servizio.

A seconda dell'applicazione, la sottorete può essere una sottorete privata o pubblica e la sottorete può trovarsi in una delle seguenti risorse: AWS

  • Zone di disponibilità

  • Local Zones

  • Zone Wavelength

  • Regioni AWS

  • AWS Outposts

Per ulteriori informazioni, consulta Applicazioni Amazon ECS in sottoreti condivise, zone locali e zone Wavelength o Amazon Elastic Container Service su AWS Outposts.

È possibile collegare l'applicazione a Internet utilizzando uno dei seguenti metodi:

  • Una sottorete pubblica con un gateway Internet

    Utilizza le sottoreti pubbliche quando hai applicazioni pubbliche che richiedono grandi quantità di larghezza di banda o una latenza minima. Gli scenari applicabili includono lo streaming video e i servizi di gioco.

  • Una sottorete privata con un gateway NAT

    Utilizza le sottoreti private quando desideri proteggere i container dall'accesso esterno diretto. Gli scenari applicabili includono sistemi di elaborazione dei pagamenti o container che archiviano dati e password degli utenti.

  • AWS PrivateLink

    AWS PrivateLink Utilizzala per avere una connettività privata tra VPCs i AWS servizi e le reti locali senza esporre il traffico alla rete Internet pubblica.

Accesso alle funzionalità

Puoi utilizzare le impostazioni dell'account Amazon ECS per accedere alle seguenti funzionalità:

  • Container Insights

    CloudWatch Container Insights raccoglie, aggrega e riepiloga metriche e log delle applicazioni e dei microservizi containerizzati. I parametri includono l'utilizzo di risorse come CPU, memoria, dischi e rete.

  • Trunking awsvpc

    Per determinati tipi di EC2 istanze, puoi avere interfacce di rete aggiuntive () disponibili sulle istanze di container appena lanciate. ENIs

  • Autorizzazione all'assegnazione di tag

    Gli utenti devono disporre dell'autorizzazione per le operazioni che creano la risorsa, ad esempio ecsCreateCluster. Se i tag sono specificati nell'azione di creazione della risorsa, AWS esegue un'autorizzazione aggiuntiva sull'azione per verificare se gli utenti o i ecs:TagResource ruoli dispongono delle autorizzazioni per creare tag.

  • Conformità FIPS-140 di Fargate

    Fargate supporta il Federal Information Processing Standard (FIPS-140) che specifica i requisiti di sicurezza previsti per i moduli crittografici che proteggono le informazioni sensibili. È l'attuale standard governativo degli Stati Uniti e del Canada ed è applicabile ai sistemi che devono essere conformi al Federal Information Security Management Act (FISMA) o al Federal Risk and Authorization Management Program (FedRAMP).

  • Modifiche all'orario di ritiro delle attività Fargate

    Puoi configurare il periodo di attesa prima che le attività Fargate vengano ritirate per l'applicazione di patch.

  • VPC dual stack

    Consenti alle attività di comunicare più IPv4 o meno entrambe. IPv6

  • Formato Amazon Resource Name (ARN)

    Alcune funzionalità, ad esempio l'autorizzazione all'assegnazione dei tag, richiedono un nuovo formato del Nome della risorsa Amazon (ARN).

Per ulteriori informazioni, consulta Accedi alle funzionalità di Amazon ECS con le impostazioni dell'account.

Ruoli IAM

Un ruolo IAM è un'identità IAM che puoi creare nel tuo account e che dispone di autorizzazioni specifiche. In Amazon ECS puoi creare ruoli per concedere autorizzazioni a risorse Amazon ECS come container o servizi.

Alcune funzionalità di Amazon ECS richiedono dei ruoli. Per ulteriori informazioni, consulta Ruoli IAM per Amazon ECS.

Registrazione dei log

I log e il monitoraggio sono importanti per garantire l'affidabilità, la disponibilità e le prestazioni dei carichi di lavoro di Amazon ECS. Sono disponibili le seguenti opzioni:

  • Amazon CloudWatch logs: indirizza i log verso Amazon CloudWatch

  • FireLensper Amazon ECS: indirizza i log verso un AWS servizio o una AWS Partner Network destinazione per l'archiviazione e l'analisi dei log. AWS Partner Network È una comunità globale di partner che sfrutta programmi, competenze e risorse per creare, commercializzare e vendere offerte per i clienti.

Best Practice per l'immagine dei container

Di seguito sono riportati i principi chiave per le immagini dei container Amazon ECS:

  • Includere tutte le dipendenze nell'immagine

  • Eseguire un processo per ciascun container

  • Gestire SIGTERM per spegnimenti senza intoppi

  • Scrivere i log su stdout e stderr

  • Utilizzare tag univoci, evitare latest nella produzione