

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

# Esegui la migrazione di applicazioni Java locali su AWS utilizzando AWS App2Container
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container"></a>

*Dhananjay Karanjkar, Amazon Web Services*

## Riepilogo
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-summary"></a>

AWS App2Container (A2C) è uno strumento a riga di comando che aiuta a trasformare le applicazioni esistenti in esecuzione su macchine virtuali in contenitori, senza bisogno di modifiche al codice. A2C rileva le applicazioni in esecuzione su un server, identifica le dipendenze e genera artefatti pertinenti per una distribuzione senza interruzioni su Amazon Elastic Container Service (Amazon ECS) e Amazon Elastic Kubernetes Service (Amazon EKS).

Questo modello fornisce i passaggi per la migrazione remota di applicazioni Java locali distribuite su un server di applicazioni su AWS Fargate o Amazon EKS utilizzando App2Container tramite la macchina di lavoro. 

La macchina worker può essere utilizzata nei seguenti casi d'uso:
+ L'installazione di Docker non è consentita o non è disponibile sui server delle applicazioni in cui sono in esecuzione le applicazioni Java.
+ È necessario gestire la migrazione di più applicazioni distribuite su server fisici o virtuali diversi.

Questo modello utilizza AWS CodeCommit AWS CodePipeline, e AWS CodeBuild.

## Prerequisiti e limitazioni
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-prereqs"></a>

**Prerequisiti**
+ Un server di applicazioni con un'applicazione Java in esecuzione su un server Linux
+ Una macchina di lavoro con sistema operativo Linux
+ Una macchina di lavoro con almeno 20 GB di spazio disponibile su disco

**Limitazioni**
+ Non tutte le applicazioni sono supportate. Per ulteriori informazioni, consulta [Applicazioni supportate per Linux](https://docs.aws.amazon.com/app2container/latest/UserGuide/supported-applications.html).

## Architecture
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-architecture"></a>

**Stack tecnologico di origine**
+ Applicazioni Java in esecuzione su server Linux

**Stack tecnologico Target**
+ AWS CodeBuild
+ AWS CodeCommit
+ AWS CodeDeploy
+ AWS CodePipeline
+ Amazon Elastic Container Registry
+ AWS Fargate

**Architettura Target**

![Architettura per applicazioni Java locali su AWS.](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/61ed65a0-fab2-4fc8-8531-18bfd56a25b3/images/602cde7b-ab0c-46a5-8c37-afe304adf061.png)


 

## Tools (Strumenti)
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-tools"></a>

**Strumenti**
+ [AWS App2Container](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html) — AWS App2Container (A2C) è uno strumento a riga di comando che consente di eseguire applicazioni eseguite nei data center locali o su macchine virtuali, in modo che vengano eseguite in contenitori gestiti da Amazon ECS o Amazon EKS.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html): AWS CodeBuild è un servizio di build completamente gestito nel cloud. CodeBuild compila il codice sorgente, esegue test unitari e produce artefatti pronti per la distribuzione.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html): AWS CodeCommit è un servizio di controllo delle versioni ospitato da Amazon Web Services che puoi utilizzare per archiviare e gestire in modo privato risorse (come documenti, codice sorgente e file binari) nel cloud.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html): AWS CodePipeline è un servizio di distribuzione continua che puoi utilizzare per modellare, visualizzare e automatizzare i passaggi necessari per rilasciare il tuo software.
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) — Amazon Elastic Container Service (Amazon ECS) è un servizio di gestione dei container veloce e altamente scalabile per l'esecuzione, l'arresto e la gestione dei container su un cluster.
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) — Amazon Elastic Container Registry (Amazon ECR) è un servizio di registro di immagini di container gestito da AWS sicuro, scalabile e affidabile.
+ [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) — Amazon Elastic Kubernetes Service (Amazon EKS) è un servizio gestito che puoi usare per eseguire Kubernetes su AWS senza dover installare, utilizzare e gestire il tuo piano di controllo o i tuoi nodi Kubernetes.
+ [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html) — AWS Fargate è una tecnologia che puoi usare con Amazon ECS per eseguire container senza dover gestire server o cluster di istanze Amazon Elastic Compute Cloud (Amazon). EC2 Con Fargate, non è più necessario effettuare il provisioning, configurare o dimensionare i cluster di macchine virtuali per eseguire i container.

## Epiche
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-epics"></a>

### Imposta le credenziali
<a name="set-up-credentials"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un segreto per accedere al server delle applicazioni. | Per accedere al server delle applicazioni in remoto dalla macchina di lavoro, crea un segreto in AWS Secrets Manager. Per il tuo segreto, puoi utilizzare la chiave privata SSH o il certificato e la chiave privata SSH. Per ulteriori informazioni, consulta [Manage secrets for AWS App2Container](https://docs.aws.amazon.com/app2container/latest/UserGuide/manage-secrets.html). | DevOps, Sviluppatore | 

### Configurare la macchina operaia
<a name="set-up-the-worker-machine"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa il file tar. | Esegui `sudo yum install -y tar`. | DevOps, Sviluppatore | 
| Installare l'interfaccia a riga di comando di AWS. | Per installare Amazon Command Line Interface (AWS CLI), esegui. `curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"` <br />Decomprimere `awscliv2.zip`.<br />Esegui `sudo ./aws/install`. | DevOps, Sviluppatore | 
| Installa App2Container. | Esegui i comandi seguenti:<br />`curl -o AWSApp2Container-installer-linux.tar.gz https://app2container-release-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/AWSApp2Container-installer-linux.tar.gz`<br />`sudo tar xvf AWSApp2Container-installer-linux.tar.gz`<br />`sudo ./install.sh` | DevOps, Sviluppatore | 
| Configura i profili. | Per configurare il profilo predefinito di AWS, esegui`sudo aws configure`.<br />Per configurare il profilo predefinito denominato AWS, esegui`sudo aws configure --profile <profile name>`. | DevOps, Sviluppatore | 
| Installazione di Docker. | Esegui i comandi seguenti.<br />`sudo yum install -y docker`<br />`sudo systemctl enable docker & sudo systemctl restart docker` |  | 
| Inizializza App2Container. | Per inizializzare App2Container, sono necessarie le seguenti informazioni:[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)<br />Esegui `sudo app2container init`. | DevOps, Sviluppatore | 

### Configurare la macchina di lavoro
<a name="configure-the-worker-machine"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la macchina di lavoro per connettersi in remoto ed eseguire i comandi App2Container sul server delle applicazioni. | Per configurare la macchina di lavoro, sono necessarie le seguenti informazioni:[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)<br />Esegui `sudo app2container remote configure`. | DevOps, Sviluppatore | 

### Scopri, analizza ed estrai le applicazioni sulla macchina operatrice
<a name="discover-analyze-and-extract-applications-on-the-worker-machine"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scopri le applicazioni Java locali. | Per scoprire in remoto tutte le applicazioni in esecuzione sul server delle applicazioni, esegui il comando seguente.<br />`sudo app2container remote inventory --target <FQDN/IP of App server>`<br />Questo comando genera un elenco di applicazioni distribuite in. `inventory.json` | Sviluppatore, DevOps | 
| Analizza le applicazioni scoperte. | Per analizzare in remoto ogni applicazione utilizzando l'application-id ottenuto nella fase di inventario, esegui il comando seguente.<br />`sudo app2container remote analyze --application-id <java-app-id> --target <FQDN/IP of App Server>`<br />Questo genera il `analysis.json` file nella posizione dell'area di lavoro. Dopo aver generato questo file, puoi modificare i parametri di containerizzazione in base alle tue esigenze. | Sviluppatore, DevOps | 
| Estrarre le applicazioni analizzate. | Per generare un archivio applicativo per l'applicazione analizzata, esegui in remoto il comando seguente, che genererà il pacchetto tar nella posizione dell'area di lavoro.<br />`sudo app2container remote extract --application-id <application id> --target <FQDN/IP of App Server>`<br />Gli artefatti estratti possono essere generati sulla macchina di lavoro locale. | Sviluppatore, DevOps | 

### Containerizza gli artefatti estratti sulla macchina operaia
<a name="containerize-the-extracted-artifacts-on-the-worker-machine"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Containerizza gli artefatti estratti. | Containerizzate gli artefatti estratti nel passaggio precedente eseguendo il comando seguente.<br />`sudo app2container containerize --input-archive <tar bundle location on worker machine>` | Sviluppatore, DevOps | 
| Finalizza l'obiettivo. | Per finalizzare l'obiettivo, apri`deployment.json`, che viene creato all'esecuzione del `containerize` comando. Per specificare AWS Fargate come destinazione, imposta su`createEcsArtifacts`. `true` Per impostare Amazon EKS come obiettivo, imposta su `createEksArtifacts` true. | Sviluppatore, DevOps | 

### Genera ed esegui il provisioning di artefatti AWS
<a name="generate-and-provision-aws-artifacts"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Genera artefatti di distribuzione AWS sulla macchina di lavoro. | Per generare artefatti di distribuzione, esegui il comando seguente.<br />`sudo app2container generate app-deployment --application-id <application id>`<br />Questo genera il CloudFormation modello `ecs-master.yml` AWS nell'area di lavoro. | DevOps | 
| Fornisci gli artefatti. | Per fornire ulteriormente gli artefatti generati, distribuisci il CloudFormation modello AWS eseguendo il comando seguente.<br />`aws cloudformation deploy --template-file <path to ecs-master.yml> --capabilities CAPABILITY_NAMED_IAM --stack-name <application id>–ECS` | DevOps | 
| Genera la pipeline. | Modify`pipeline.json`, creato nella storia precedente, in base alle tue esigenze. Quindi esegui il `generate pipeline` comando per generare gli artefatti di distribuzione della pipeline. | DevOps | 

## Risorse correlate
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-resources"></a>
+ [Che cos'è App2Container?](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html)
+ [Post sul blog di AWS App2Container](https://aws.amazon.com/blogs/aws/aws-app2container-a-new-containerizing-tool-for-java-and-asp-net-applications/)
+ [Nozioni di base sulla configurazione dell'interfaccia a riga di comando di AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)
+ [Nozioni di base su Docker per Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html)
+ [Comandi Docker](https://docs.docker.com/engine/reference/commandline/cli/)