

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

# Distribuisci contenitori utilizzando Elastic Beanstalk
<a name="deploy-containers-by-using-elastic-beanstalk"></a>

*Thomas Scott e Jean-Baptiste Guillois, Amazon Web Services*

## Riepilogo
<a name="deploy-containers-by-using-elastic-beanstalk-summary"></a>

Sul cloud Amazon Web Services (AWS), AWS Elastic Beanstalk supporta Docker come piattaforma disponibile, in modo che i contenitori possano essere eseguiti con l'ambiente creato. Questo modello mostra come distribuire contenitori utilizzando il servizio Elastic Beanstalk. L'implementazione di questo modello utilizzerà l'ambiente del server Web basato sulla piattaforma Docker.

Per utilizzare Elastic Beanstalk per distribuire e scalare applicazioni e servizi Web, devi caricare il codice e la distribuzione viene gestita automaticamente. Sono inclusi anche il provisioning della capacità, il bilanciamento del carico, la scalabilità automatica e il monitoraggio dello stato delle applicazioni. Quando usi Elastic Beanstalk, puoi assumere il pieno controllo delle risorse AWS che crea per tuo conto. Non sono previsti costi aggiuntivi per l'utilizzo di Elastic Beanstalk. Paghi solo per le risorse AWS utilizzate per archiviare ed eseguire le tue applicazioni.

Questo modello include istruzioni per la distribuzione utilizzando l'[interfaccia a riga di comando AWS Elastic Beanstalk (EB CLI) e la Console di gestione AWS](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-advanced.html).

**Casi d'uso**

I casi d'uso di Elastic Beanstalk includono quanto segue: 
+ Implementa un ambiente prototipo per dimostrare un'applicazione frontend. (Questo modello utilizza un Dockerfile**** come esempio.)
+ Implementa un'API per gestire le richieste API per un determinato dominio.
+ Implementa una soluzione di orchestrazione utilizzando Docker-Compose (****non `docker-compose.yml` viene utilizzato come esempio pratico in questo modello).

## Prerequisiti e limitazioni
<a name="deploy-containers-by-using-elastic-beanstalk-prereqs"></a>

**Prerequisiti**
+ Un account AWS
+ AWS EB CLI installata localmente
+ Docker installato su un computer locale

**Limitazioni**
+ Il piano gratuito prevede un limite Docker di 100 pull per 6 ore per indirizzo IP.

## Architecture
<a name="deploy-containers-by-using-elastic-beanstalk-architecture"></a>

**Stack tecnologico Target**
+ Istanze Amazon Elastic Compute Cloud (Amazon EC2)
+ Gruppo di sicurezza
+ Application Load Balancer
+ Gruppo Auto Scaling

**Architettura Target**

![Architettura per l'implementazione di container con Elastic Beanstalk.](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/dfabcdc2-747f-40e2-a603-08ea31ba71d3/images/1d17ff09-1aea-4c72-adb5-eaf741601428.png)


**Automazione e scalabilità**

AWS Elastic Beanstalk può scalare automaticamente in base al numero di richieste effettuate. Le risorse AWS create per un ambiente includono un Application Load Balancer, un gruppo Auto Scaling e una o più istanze Amazon. EC2  

Il sistema di bilanciamento del carico si trova davanti EC2 alle istanze Amazon, che fanno parte del gruppo Auto Scaling. Amazon EC2 Auto Scaling avvia automaticamente EC2 istanze Amazon aggiuntive per far fronte all'aumento del carico sull'applicazione. Se il carico sull'applicazione diminuisce, Amazon EC2 Auto Scaling interrompe le istanze, ma mantiene almeno un'istanza in esecuzione.

**Trigger di scalabilità automatica**

Il gruppo Auto Scaling nel tuo ambiente Elastic Beanstalk utilizza due CloudWatch allarmi Amazon per avviare le operazioni di scalabilità. I trigger predefiniti eseguono il dimensionamento quando la media del traffico di rete in uscita da ciascuna istanza è superiore a 6 MB o inferiore a 2 MB per un intervallo di tempo di cinque minuti. Per utilizzare Amazon EC2 Auto Scaling in modo efficace, configura i trigger appropriati per la tua applicazione, il tipo di istanza e i requisiti di servizio. È possibile effettuare il dimensionamento in base a diverse statistiche, tra cui latenza, I/O su disco, uso della CPU e numero di richieste. Per ulteriori informazioni, consulta Trigger di [Auto Scaling.](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-cfg-autoscaling-triggers.html)

## Tools (Strumenti)
<a name="deploy-containers-by-using-elastic-beanstalk-tools"></a>

**Servizi AWS**
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.
+ [AWS EB Command Line Interface (EB CLI)](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html) è un client a riga di comando che puoi utilizzare per creare, configurare e gestire ambienti Elastic Beanstalk.
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribuisce il traffico di applicazioni o di rete in entrata su più destinazioni. Ad esempio, puoi distribuire il traffico tra istanze Amazon Elastic Compute Cloud (Amazon EC2), contenitori e indirizzi IP in una o più zone di disponibilità.

**Altri servizi**
+ [Docker impacchetta](https://www.docker.com/) il software in unità standardizzate chiamate contenitori che includono librerie, strumenti di sistema, codice e runtime.

**Codice**

Il codice per questo pattern è disponibile nel repository GitHub [Cluster Sample Application](https://github.com/aws-samples/cluster-sample-app).

## Epiche
<a name="deploy-containers-by-using-elastic-beanstalk-epics"></a>

### Costruisci con un Dockerfile
<a name="build-with-a-dockerfile"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clonare il repository remoto. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Sviluppatore di app, amministratore AWS, AWS DevOps | 
| Inizializza il progetto Elastic Beanstalk Docker. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Sviluppatore di app, amministratore AWS, AWS DevOps | 
| Testa il progetto localmente. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Sviluppatore di app, amministratore AWS, AWS DevOps | 

### Implementazione tramite EB CLI
<a name="deploy-using-eb-cli"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui il comando di distribuzione | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Sviluppatore di app, amministratore AWS, AWS DevOps | 
| Accedi alla versione distribuita. | Al termine del comando di distribuzione, accedi al progetto utilizzando il `eb open` comando. | Sviluppatore di app, amministratore AWS, AWS DevOps | 

### Esegui la distribuzione utilizzando la console
<a name="deploy-using-the-console"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Distribuisci l'applicazione utilizzando il browser. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Sviluppatore di app, amministratore AWS, AWS DevOps | 
| Accedi alla versione distribuita. | Dopo la distribuzione, accedi all'applicazione distribuita e scegli l'URL fornito. | Sviluppatore di app, amministratore AWS, AWS DevOps | 

## Risorse correlate
<a name="deploy-containers-by-using-elastic-beanstalk-resources"></a>
+ [Ambienti di server Web](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts-webserver.html)
+ [Installare l'EB CLI su macOS](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-osx.html)
+ [Installazione manuale dell'EB CLI](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-advanced.html)

## Informazioni aggiuntive
<a name="deploy-containers-by-using-elastic-beanstalk-additional"></a>

**Vantaggi dell'utilizzo di Elastic Beanstalk**
+ Provisioning automatico dell'infrastruttura
+ Gestione automatica della piattaforma sottostante
+ Patch e aggiornamenti automatici per supportare l'applicazione
+ Ridimensionamento automatico dell'applicazione
+ Possibilità di personalizzare il numero di nodi
+ Possibilità di accedere ai componenti dell'infrastruttura, se necessario
+ Facilità di implementazione rispetto ad altre soluzioni di implementazione di container