

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à.

# Tutorial: distribuire un'applicazione in Amazon ECS
<a name="tutorial-ecs-deployment"></a>

 In questo tutorial, imparerai come distribuire un'applicazione in Amazon ECS utilizzando. CodeDeploy Si inizia con un'applicazione già creata e distribuita in Amazon ECS. La prima fase consiste nell'aggiornare l'applicazione modificando il file di definizione dell'attività con un nuovo tag. Successivamente, si utilizza CodeDeploy per distribuire l'aggiornamento. Durante la distribuzione, CodeDeploy installa l'aggiornamento in un nuovo set di attività sostitutivo. Quindi, sposta il traffico di produzione dalla versione originale dell'applicazione Amazon ECS, che si trova nel set di attività originale, alla versione aggiornata nel set di attività sostitutivo.

 Durante una distribuzione di Amazon ECS, CodeDeploy utilizza un sistema di bilanciamento del carico configurato con due gruppi target e un listener di traffico di produzione. Il diagramma seguente mostra come il load balancer, il listener di produzione, i gruppi target e l'applicazione Amazon ECS sono correlati prima dell'inizio della distribuzione. In questa esercitazione viene utilizzato un Application Load Balancer. Puoi anche usare un Network Load Balancer. 

![\[Application Load Balancer o Network Load Balancer, un listener di produzione, due gruppi target, un set di attività e un servizio Amazon ECS.\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-1.png)


 Una volta completata la distribuzione, il listener del traffico di produzione serve il traffico verso il nuovo set di attività di sostituzione e il set di attività originale viene terminato. Il seguente diagramma mostra il modo in cui le risorse sono correlate dopo una distribuzione riuscita. Per ulteriori informazioni, consulta [Cosa succede durante una distribuzione di Amazon ECS](deployment-steps-ecs.md#deployment-steps-what-happens). 

![\[Application Load Balancer o Network Load Balancer, un listener di produzione, due gruppi target e un set di attività sostitutivo.\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-with-no-test-listener-step-5.png)


Per informazioni su come utilizzare AWS CLI per distribuire un'applicazione in Amazon ECS, consulta [Tutorial: Creazione di un servizio utilizzando una blue/green ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html) distribuzione. Per informazioni su come rilevare e distribuire automaticamente le modifiche CodePipeline a un servizio Amazon ECS con CodeDeploy, consulta [Tutorial: Create a pipeline with an Amazon ECR](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html) source and deployment. ECS-to-CodeDeploy 

Dopo aver completato questo tutorial, puoi utilizzare l' CodeDeploy applicazione e il gruppo di distribuzione che hai creato per aggiungere un test di convalida della distribuzione. [Tutorial: distribuisci un servizio Amazon ECS con un test di convalida](tutorial-ecs-deployment-with-hooks.md) 

**Topics**
+ [Prerequisiti](tutorial-ecs-prereqs.md)
+ [Fase 1: aggiorna la tua applicazione Amazon ECS](tutorial-ecs-update-the-ecs-application.md)
+ [Fase 2: Creare il file AppSpec](tutorial-ecs-create-appspec-file.md)
+ [Passaggio 3: utilizza la CodeDeploy console per distribuire l'applicazione](tutorial-ecs-deployment-deploy.md)
+ [Fase 4: pulizia](tutorial-ecs-clean-up.md)

# Prerequisiti
<a name="tutorial-ecs-prereqs"></a>

Per completare questo tutorial, è necessario innanzitutto:
+  Completare le fasi 2 e 3 in [Guida introduttiva con CodeDeploy](getting-started-codedeploy.md). 
+  Crea un Application Load Balancer configurato con due gruppi target e un listener. Per informazioni sulla creazione di un sistema di bilanciamento del carico tramite la console, consulta [Configura un sistema di bilanciamento del carico, gruppi target e listener per le distribuzioni di CodeDeploy Amazon ECS](deployment-groups-create-load-balancer-for-ecs.md). Per informazioni sulla creazione di un load balancer utilizzando AWS CLI, consulta [Step 1: Create an Application Load Balancer](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html#create-blue-green-loadbalancer) nella *Amazon Elastic Container Service* User Guide. Quando si crea il sistema di bilanciamento del carico, annotare quanto segue per questo tutorial: 
  +  Il nome del sistema di bilanciamento del carico. 
  +  I nomi dei gruppi target. 
  +  La porta utilizzata dal listener del sistema di bilanciamento del carico. 
+  Crea un cluster e un servizio Amazon ECS. Per ulteriori informazioni, consulta i passaggi 2, 3 e 4 del [Tutorial: Creazione di un servizio utilizzando una blue/green distribuzione](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html) nella *Amazon Elastic Container Service User Guide*. Annota quanto segue per questo tutorial: 
  +  Il nome del tuo cluster Amazon ECS. 
  +  L'ARN della definizione dell'attività utilizzata dal tuo servizio Amazon ECS. 
  +  Il nome del contenitore utilizzato dal tuo servizio Amazon ECS. 
+  Crea un bucket Amazon S3 per il tuo file. AppSpec 

# Fase 1: aggiorna la tua applicazione Amazon ECS
<a name="tutorial-ecs-update-the-ecs-application"></a>

 In questa sezione, aggiorni la tua applicazione Amazon ECS con una nuova revisione della definizione del task. La revisione aggiornata aggiunge una nuova coppia di chiavi e tag. Nel[Passaggio 3: utilizza la CodeDeploy console per distribuire l'applicazione](tutorial-ecs-deployment-deploy.md), distribuisci la versione aggiornata della tua applicazione Amazon ECS. 

**Per aggiornare la definizione dell'attività**

1. [Apri la console nella versione 2. https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/v2)

1.  Nel riquadro di navigazione, scegli **Definizioni di attività**. 

1. Scegli la definizione di attività utilizzata dal tuo servizio Amazon ECS.

1. Seleziona la revisione della definizione di attività, quindi scegli **Crea nuova revisione**, **Crea nuova revisione**.

1.  Per questo tutorial, è necessario effettuare un piccolo aggiornamento alla definizione dell'attività aggiungendo un tag. Nella parte inferiore della pagina, sotto **Tag**, crea un nuovo tag inserendo una nuova coppia di chiavi e valori. 

1.  Scegli **Create** (Crea). 

   Il numero di revisione della definizione dell'attività viene incrementato di uno. 

1.  Scegli la scheda **JSON**. Prendere nota di quanto segue perché queste informazioni sono necessarie nella fase successiva. 
   +  Il valore per `taskDefinitionArn`. Il formato è: `arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision`. Questo è l'ARN della definizione di attività aggiornata. 
   +  Nell'elemento `containerDefinitions`, il valore per `name`. Questo è il nome del container. 
   +  Nell'elemento `portMappings`, il valore per `containerPort`. Questa è la porta per il container. 

# Fase 2: Creare il file AppSpec
<a name="tutorial-ecs-create-appspec-file"></a>

 In questa sezione, crei il tuo AppSpec file e lo carichi nel bucket Amazon S3 che hai creato nella sezione. [Prerequisiti](tutorial-ecs-prereqs.md) Il AppSpec file per una distribuzione Amazon ECS specifica la definizione dell'attività, il nome del contenitore e la porta del contenitore. Per ulteriori informazioni, consultare [AppSpec Esempio di file per una distribuzione Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs) e [AppSpec sezione «risorse» per le distribuzioni di Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Per creare il tuo file AppSpec**

1.  Se vuoi creare il tuo AppSpec file usando YAML, crea un file denominato. `appspec.yml` Se vuoi creare il tuo AppSpec file usando JSON, crea un file denominato. `appspec.json` 

1.  Scegli la scheda appropriata, a seconda che utilizzi YAML o JSON per il tuo AppSpec file, e copiane il contenuto nel AppSpec file appena creato. Per la proprietà `TaskDefinition`, utilizzare l'ARN della definizione dell'attività annotato nella sezione [Fase 1: aggiorna la tua applicazione Amazon ECS](tutorial-ecs-update-the-ecs-application.md). 

------
#### [ JSON AppSpec ]

   ```
   {
     "version": 0.0,
     "Resources": [
       {
         "TargetService": {
           "Type": "AWS::ECS::Service",
           "Properties": {
             "TaskDefinition": "arn:aws:ecs:aws-region-id:aws-account-id:task-definition/ecs-demo-task-definition:revision-number",
             "LoadBalancerInfo": {
               "ContainerName": "your-container-name",
               "ContainerPort": your-container-port
             }
           }
         }
       }
     ]
   }
   ```

------
#### [ YAML AppSpec ]

   ```
   version: 0.0
   Resources:
     - TargetService:
         Type: AWS::ECS::Service
         Properties:
           TaskDefinition: "arn:aws:ecs:aws-region-id:aws-account-id:task-definition/ecs-demo-task-definition:revision-number"
           LoadBalancerInfo:
             ContainerName: "your-container-name"
             ContainerPort: your-container-port
   ```

------
**Nota**  
 Il set di attività di sostituzione eredita la sottorete, il gruppo di sicurezza, la versione della piattaforma e i valori IP pubblici assegnati dal set di attività originale. È possibile sovrascrivere questi valori per il set di attività sostitutivo impostando le relative proprietà opzionali nel file. AppSpec Per ulteriori informazioni, consultare [AppSpec sezione «risorse» per le distribuzioni di Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs) e [AppSpec Esempio di file per una distribuzione Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs). 

1.  Carica il AppSpec file nel bucket S3 che hai creato come prerequisito per questo tutorial. 

# Passaggio 3: utilizza la CodeDeploy console per distribuire l'applicazione
<a name="tutorial-ecs-deployment-deploy"></a>

 In questa sezione, crei un' CodeDeploy applicazione e un gruppo di distribuzione per distribuire l'applicazione aggiornata in Amazon ECS. Durante la distribuzione, CodeDeploy sposta il traffico di produzione dell'applicazione alla nuova versione in un nuovo set di attività sostitutivo. Per completare questa fase, sono necessari i seguenti elementi: 
+  Il nome del tuo cluster Amazon ECS. 
+  Il nome del tuo servizio Amazon ECS. 
+  Il nome dell'Application Load Balancer. 
+  La porta del listener di produzione. 
+  I nomi dei gruppi target. 
+  Nome del bucket S3 creato. 

**Per creare un'applicazione CodeDeploy**

1. Accedi a Console di gestione AWS e apri la CodeDeploy console all'indirizzo [https://console.aws.amazon.com/codedeploy/](https://console.aws.amazon.com/codedeploy/).

1. Scegli **Crea applicazione**.

1. In **Application name (Nome applicazione)**, immettere **ecs-demo-codedeploy-app**.

1. In **Compute platform (Piattaforma di calcolo)**, scegli **Amazon ECS**.

1. Scegli **Crea applicazione**.

**Per creare un gruppo CodeDeploy di distribuzione**

1. Nella pagina delle applicazioni, nella scheda **Deployment groups (Gruppi di distribuzione)**, scegliere **Create deployment group (Crea gruppo di distribuzione)**.

1. In **Deployment group name (Nome del gruppo di distribuzione)**, immettere **ecs-demo-dg**.

1. In **Ruolo di servizio**, scegli un ruolo di servizio che garantisca CodeDeploy l'accesso ad Amazon ECS. Per ulteriori informazioni, consulta [Gestione delle identità e degli accessi per AWS CodeDeploy](security-iam.md).

1. In **Configurazione dell'ambiente**, scegli il nome del cluster Amazon ECS e il nome del servizio.

1. In **Load balancer**, scegli il nome del load balancer che serve il traffico verso il tuo servizio Amazon ECS.

1. **Da **Production listener port**, scegli la porta e il protocollo per il listener che fornisce il traffico di produzione al tuo servizio Amazon ECS (ad esempio, HTTP: 80).** Questo tutorial non include un listener di test opzionale, quindi non scegliere una porta da **Test listener port (Porta listener test)**. 

1. Da **Target group 1 name (Nome gruppo di destinazione 1)** e **Target group 2 name (Nome gruppo di destinazione 2)**, scegliere i due diversi gruppi di destinazione utilizzati per instradare il traffico durante la distribuzione. Assicurati che questi siano i gruppi di destinazione creati per il sistema di bilanciamento del carico. Non importa quale viene utilizzato per il gruppo target 1 e quale viene utilizzato per il gruppo target 2.

1. Scegliere **Reroute traffic immediately (Reinstrada immediatamente il traffico)**.

1. Per **Original revision termination (Terminazione revisione originale)**, scegliere 0 giorni, 0 ore e 5 minuti. In questo modo la distribuzione viene completata più rapidamente rispetto all'utilizzo dell'impostazione predefinita (1 ora).  
![\[La sezione di configurazione dell'ambiente della console. CodeDeploy\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/ecs-demo-create-acd-dg.png)

1. Scegliere **Create deployment group (Crea gruppo di distribuzione)**.

**Per distribuire la tua applicazione Amazon ECS**

1. Nella pagina della console del gruppo di distribuzione, scegliere **Create deployment (Crea distribuzione)**.

1.  Per il **gruppo Deployment**, scegli. **ecs-demo-dg** 

1.  Per **Revision type (Tipo di revisione)**, scegliere **My application is stored in Amazon S3 (La mia applicazione è archiviata in Amazon S3)**. In **Revision location (Posizione revisione)**, immettere il nome del bucket S3. 

1.  Per **Revision file type (Tipo di file revisione)**, scegliere **.json** o **.yaml**, a seconda dei casi. 

1.  (Facoltativo) In **Deployment description (Descrizione distribuzione)**, immetti una descrizione per questa distribuzione. 

1. Scegli **Create deployment (Crea distribuzione)**.

1.  In **Deployment status (Stato distribuzione)**, è possibile monitorare la distribuzione. Dopo che il 100% del traffico di produzione è stato indirizzato al set di attività sostitutivo e prima della scadenza del tempo di attesa di cinque minuti, puoi scegliere **Termina il set di attività originale per terminare immediatamente il set** di attività originale. Se non si sceglie **Terminate original task set (Termina set di attività originale)**, il set di attività originale termina dopo la scadenza del tempo di attesa di cinque minuti specificato.  
![\[La sezione sullo stato della distribuzione della console. CodeDeploy\]](http://docs.aws.amazon.com/it_it/codedeploy/latest/userguide/images/ecs-tutorial-deployment-status-without-test-listener.png)

# Fase 4: pulizia
<a name="tutorial-ecs-clean-up"></a>

 Il tutorial successivo, [Tutorial: distribuisci un servizio Amazon ECS con un test di convalida](tutorial-ecs-deployment-with-hooks.md), si basa su questo tutorial e utilizza il gruppo di distribuzione e l’applicazione CodeDeploy creati. Per seguire le fasi del tutorial, ignorare questa fase e non eliminare le risorse create. 

**Nota**  
 Sul tuo AWS account non sono previsti addebiti per le CodeDeploy risorse che hai creato. 

I nomi delle risorse in questi passaggi sono i nomi suggeriti in questo tutorial (ad esempio, **ecs-demo-codedeploy-app** per il nome dell' CodeDeploy applicazione). Se hai utilizzato nomi diversi, assicurati di utilizzarli durante la pulizia. 

1. Utilizzate il [delete-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-deployment-group.html)comando per eliminare il gruppo CodeDeploy di distribuzione.

   ```
   aws deploy delete-deployment-group --application-name ecs-demo-codedeploy-app --deployment-group-name ecs-demo-dg --region aws-region-id
   ```

1. Utilizzate il comando [delete-application](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-application.html) per eliminare l' CodeDeploy applicazione.

   ```
   aws deploy delete-application --application-name ecs-demo-codedeploy-app --region aws-region-id
   ```