in Amazon Elastic Container Service (Amazon ECS)

Amazon Elastic Container Service (Amazon ECS) è un servizio di Amazon Web Services che consente di eseguire applicazioni Docker su cluster scalabili. Questo tutorial illustra come creare un'applicazione di esempio compatibile con Docker in un cluster Amazon ECS con un sistema di bilanciamento del carico, testare l'applicazione di prova ed eliminare le risorse per evitare spese aggiuntive.

Tutte le operazioni mostrate in questo tutorial possono essere eseguite nell'ambito del piano gratuito.

Gestisci le tue risorse AWS

Accedi alla console

La prima esecuzione guidata di Amazon ECS consente di creare un cluster e avviare un'applicazione Web di esempio. In questa fase, accederemo alla console di Amazon ECS e avvieremo la procedura guidata.



b. Con Amazon ECS, è possibile scegliere di usare Amazon Elastic Container Registry (Amazon ECR) per creare un repository di immagini e inoltrarvi un'immagine durante la prima esecuzione guidata (vedi immagine a destra). Questa caratteristica è al momento disponibile solo in alcune regioni. 

  • Se non viene visualizzata l'opzione relativa ad Amazon ECR, passa alla fase 2.
  • Se viene visualizzata l'opzione relativa ad Amazon ECR, deselezionare la casella accanto a Deploy a sample application onto an Amazon ECS Cluster e selezionare Continue.
deploy-docker-container-1

Fai clic per ingrandire l'immagine

deploy-docker-container-1

Una definizione di attività è come un programma su cui si basa l'applicazione. In questa fase, specificheremo una definizione di attività che permetta ad Amazon ECS di sapere quale immagine Docker usare per i container, quanti container saranno in uso e l'allocazione di risorse per ciascun container.


La definizione di attività è precaricata con valori di configurazione di default.

  • Controllare i valori di default e selezionare Next Step.

Se preferisci modificare le configurazioni, oppure se desideri ulteriori informazion, consulta Task Definition Parameters.

deploy-docker-container-2

Fai clic per ingrandire l'immagine

deploy-docker-container-2

Ora che la definizione di attività è stata creata, è necessario configurare il servizio Amazon ECS. Un servizio avvia e mantiene copie della definizione di attività nel cluster. Ad esempio, eseguendo un applicazione come servizio, Amazon ECS ripristinerà automaticamente qualsiasi attività interrotta, per mantenere inalterato il numero di copie configurato.


a. Configurare le opzioni del servizio come segue:

  • Service Name: il servizio di default sample-webapp è un'applicazione di tipo "Hello World" basata sul Web offerta da AWS. Prevede un'esecuzione senza interruzioni, perciò se viene eseguita come servizio si riavvierà quando l'attività perde la propria integrità o subisce interruzioni impreviste.
  • Desired number of tasks: per poter rientrare nel piano gratuito di AWS, lasciare il valore di default del numero di attività desiderate: 1. In questo modo verrà creata una sola copia dell'attività.
deploy-docker-container-3

Fai clic per ingrandire l'immagine

deploy-docker-container-3

b. Elastic Load Balancing: è possibile associare al servizio un sistema di bilanciamento del carico. Amazon ECS può creare un sistema di bilanciamento del carico Elastic Load Balancing (ELB) per distribuire il traffico tra le istanze del container in cui l'attività è in esecuzione.

  • Container name: host port: selezionare Simple-app:80.
  • Per l'applicazione di prova, anche per ELB listener protocol, ELB listener port e ELB health check possono essere lasciati i valori di default. Per ulteriori informazioni sulla configurazione dei sistemi di bilanciamento del carico, consulta Service Load Balancing.
deploy-docker-container-3b

Fai clic per ingrandire l'immagine

deploy-docker-container-3b

c. Prima di poter collegare un sistema di bilanciamento del carico a un servizio Amazon ECS, è necessario creare un ruolo IAM (Identity and Access Management) per i servizi in uso. In questo modo Amazon ECS potrà effettuare chiamate alle API di Amazon EC2 ed Elastic Load Balancing per eseguire e annullare la registrazione delle istanze con i sistemi di bilanciamento.

  • Se non è già disponibile un ruolo IAM per il servizio, Amazon ECS ne creerà uno denominato ecsServiceRole.
  • Se è disponibile un ruolo per il servizio Amazon ECS, selezionarlo dal menu a discesa.
deploy-docker-container-3c

Fai clic per ingrandire l'immagine

deploy-docker-container-3c

d. Verificare le impostazioni e selezionare Next Step.

deploy-docker-container-3d

Fai clic per ingrandire l'immagine

deploy-docker-container-3d

Le attività di Amazon ECS vengono eseguite su un cluster, ovvero un insieme di istanze di container che eseguono l'agent del container di Amazon ECS. In questa fase, configureremo il cluster, verificheremo le impostazioni di sicurezza e imposteremo i ruoli IAM. 


a. La configurazione da utilizzare è illustrata di seguito:

  • Cluster name: immettere il nome cluster sample-cluster.
  • EC2 instance type: il tipo di istanza t2.micro rientra nel piano gratuito. I tipi di istanza con CPU e memoria maggiori sono in grado di gestire più attività. Per ulteriori informazioni sui tipi di istanza, consulta Amazon EC2 Instance Types.
  • Number of instances: lasciare il valore di default 1 per lanciare una sola istanza Amazon EC2 per i cluster in cui avviare le attività. Più istanze sono presenti nel cluster, più attività è possibile gestire. 
  • Key pair: per accedere alle istanze tramite SSH, operazione prevista in un secondo momento, è necessaria una coppia di chiavi. Per continuare, fare clic su None – unable to SSH e selezionare una coppia di chiavi esistente oppure crearne una nuova nella console di Amazon EC2. 
deploy-docker-container-5a

Fai clic per ingrandire l'immagine

deploy-docker-container-5a

b. (Opzionale) Security Group: il valore per il gruppo di sicurezza di default, (Anywhere), consente di accedere in ogni momento da Internet. È anche possibile scegliere un blocco CIDR che limiti l'accesso alle istanze.

deploy-docker-container-5b

Fai clic per ingrandire l'immagine

deploy-docker-container-5b

c. Ruolo IAM per l'istanza del container:

  • Se non è disponibile un ruolo IAM, la procedura guidata di Amazon ECS ne creerà uno.
  • Se è già disponibile un ruolo IAM esistente per l'istanza del container, selezionarlo dall'elenco a discesa.
deploy-docker-container-5c

Fai clic per ingrandire l'immagine

deploy-docker-container-5c

d. Selezionare Review and Launch.

deploy-docker-container-5d

Fai clic per ingrandire l'immagine

deploy-docker-container-5d

Nelle fasi precedenti è stata configurata la definizione di attività (che è simile a un programma su cui si basa l'applicazione), il servizio Amazon ECS (che avvia e mantiene le copie delle definizioni di attività) e il cluster (che è l'insieme di istanze di container che eseguono l'agent del container). In questa fase, verificheremo, lanceremo e visualizzeremo le risorse create.


a. Prima di procedere, è ancora possibile verificare che definizione di attività e configurazione di attività cluster siano corrette.

  • Selezionare Launch instance & run service
deploy-docker-container-6

Fai clic per ingrandire l'immagine

deploy-docker-container-6

b. La pagina visualizzata, Launch Status, mostra lo stato del lancio e descrive le fasi del processo. 

  • Una volta completato il lancio, selezionare View service.
deploy-docker-container-7

Fai clic per ingrandire l'immagine

deploy-docker-container-7

In questa fase, verificheremo che l'applicazione di esempio sia stata lanciata correttamente e che sia in esecuzione; per questo caricheremo il nome DNS del sistema di bilanciamento tramite il browser.


a. nella pagina Web dell'applicazione di esempio, fare clic sul nome del sistema di bilanciamento del carico.

deploy-docker-container-10

Fai clic per ingrandire l'immagine

deploy-docker-container-10

b. È arrivato il momento di testare l'applicazione di prova:

  • Copiare il nome DNS del sistema di bilanciamento del carico.
  • Incollare il nome in una nuova finestra del browser.
  • Premere Invio sulla tastiera per visualizzare l'applicazione di esempio (in questo caso una pagina Web statica).
deploy-docker-container-12a

Fai clic per ingrandire l'immagine

deploy-docker-container-12a

In questo tutorial sono state lanciate tre risorse: un cluster Amazon ECS, un'istanza Amazon EC2 e un sistema di bilanciamento del carico. In questa fase, elimineremo tutte le risorse create per evitare spese indesiderate.


a. Tornare alla console di Amazon ECS. 

  • Fare clic su nome del cluster (sample-cluster).
deploy-docker-container-13

Fai clic per ingrandire l'immagine

deploy-docker-container-13

b. Selezionare la casella di controllo accanto a sample-webapp e fare clic su Update.

deploy-docker-container-15

Fai clic per ingrandire l'immagine

deploy-docker-container-15

c. Per accertarsi di non eliminare per errore un servizio con attività attive, è necessario interrompere tutte le attività prima di consentire ad Amazon ECS di eliminare un servizio. 

  • Impostare il numero di attività a 0 e selezionare Update Service.
  • Dopo aver aggiornato il servizio, selezionare Delete.
deploy-docker-container-14

Fai clic per ingrandire l'immagine

deploy-docker-container-14

d. Eliminare le istanze Amazon EC2 lanciate con il cluster:

  • Accedere alla console di Amazon EC2.
  • Nel pannello a sinistra, selezionare Instances.
  • Selezionare la casella di controllo accanto all'istanza denominata ECS Instance – EC2ContainerService-default.
  • Selezionare ActionsInstance State > Terminate.

 

 

deploy-docker-container-17

Fai clic per ingrandire l'immagine

deploy-docker-container-17

e. Eliminare i sistemi di bilanciamento del carico:

  • Nel pannello a sinistra, selezionare Load Balancers.
  • Selezionare la casella di controllo accanto al sistema di bilanciamento del carico creato per il servizio (doverbbe iniziare con EC2Contai-EcsElast). 
  • Fare clic con il tasto destro del mouse e selezionare Delete.

 

deploy-docker-container-19a

Fai clic per ingrandire l'immagine

deploy-docker-container-19a

Congratulazioni! Hai configurato, distribuito ed eliminato un'applicazione compatibile con Docker in Amazon Elastic Container Service (Amazon ECS). Amazon ECS è un servizio di gestione di container altamente scalabile ad elevate prestazioni che supporta i container Docker e consente di eseguire applicazioni su un cluster gestito di istanze Amazon EC2 in modo semplice.

Ora che sei in grado di distriburie un'applicazione compatibile con Docker in Amazon ECS, puoi passare al tutorial successivo, che illustra come creare un registro Docker per immagazzinare le immagini del container. Creerai un'immagine Docker, la inoltrerai in un repository e la utilizzerai per distribuire un'applicazione in Amazon ECS.

Creazione di un registro Docker

No