

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

# Gestisci le applicazioni container locali configurando Amazon ECS Anywhere con AWS CDK
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk"></a>

*Dott. Rahul Sharad Gaikwad, Amazon Web Services*

## Riepilogo
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-summary"></a>

[Amazon ECS](https://aws.amazon.com/ecs/anywhere/) Anywhere è un'estensione di Amazon Elastic Container Service (Amazon ECS). Puoi usare ECS Anywhere per distribuire attività native di Amazon ECS in un ambiente locale o gestito dal cliente. Questa funzionalità aiuta a ridurre i costi e mitigare l'orchestrazione e le operazioni complesse dei container locali. Puoi utilizzare ECS Anywhere per distribuire ed eseguire applicazioni container in ambienti sia locali che cloud. Elimina la necessità per il team di apprendere più domini e set di competenze o di gestire software complessi da solo.

Questo modello illustra i passaggi per configurare ECS Anywhere utilizzando gli stack [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/).

## Prerequisiti e limitazioni
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ AWS Command Line Interface (AWS CLI), installata e configurata. (Vedi [Installazione, aggiornamento e disinstallazione dell'interfaccia a riga di comando di AWS nella documentazione](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dell'interfaccia a riga di comando di AWS.) 
+ AWS CDK Toolkit, installato e configurato. (Consulta [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) nella documentazione di AWS CDK e segui le istruzioni per installare la versione 2 a livello globale).
+ Node package manager (npm), installato e configurato per AWS CDK in. TypeScript (Vedi [Download e installazione di Node.js e npm nella documentazione di npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).)

**Limitazioni**
+ Per limitazioni e considerazioni, consulta [Istanze esterne (Amazon ECS Anywhere) nella documentazione di Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html#ecs-anywhere-considerations).

**Versioni del prodotto**
+ AWS CDK Toolkit versione 2
+ npm versione 7.20.3 o successiva
+ Node.js versione 16.6.1 o successiva

## Architecture
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-architecture"></a>

**Stack tecnologico Target**
+ AWS CloudFormation
+ AWS CDK
+ Amazon ECS Anywhere
+ AWS Identity and Access Management (IAM)

**Architettura Target**

Il diagramma seguente illustra un'architettura di sistema di alto livello di configurazione di ECS Anywhere che utilizza AWS CDK con TypeScript, come implementato da questo modello.

1. Quando distribuisci lo stack CDK AWS, viene creato uno CloudFormation stack su AWS.

1. Lo CloudFormation stack fornisce un cluster Amazon ECS e le relative risorse AWS.

1. Per registrare un'istanza esterna con un cluster Amazon ECS, devi installare AWS Systems Manager Agent (SSM Agent) sulla tua macchina virtuale (VM) e registrare la macchina virtuale come istanza gestita da AWS Systems Manager. 

1. È inoltre necessario installare l'agente contenitore Amazon ECS e Docker sulla macchina virtuale per registrarla come istanza esterna nel cluster Amazon ECS.

1. Quando l'istanza esterna è registrata e configurata con il cluster Amazon ECS, può eseguire più contenitori sulla macchina virtuale, che è registrata come istanza esterna.

![Configurazione di ECS Anywhere utilizzando il CDK AWS con. TypeScript](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/3ed63c00-40e7-4831-bb9d-63049c3490aa/images/ff7dc774-830d-4b9f-8262-7314afe7a033.png)


 

**Automazione e scalabilità**

Il [GitHub repository](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples/) fornito con questo modello utilizza AWS CDK come strumento Infrastructure as Code (IaC) per creare la configurazione per questa architettura. AWS CDK ti aiuta a orchestrare le risorse e configurare ECS Anywhere.

## Tools (Strumenti)
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-tools"></a>
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) è un framework di sviluppo software che aiuta a definire e fornire l'infrastruttura cloud AWS in codice.
+ [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.

**Codice**

Il codice sorgente per questo pattern è disponibile nel GitHub repository [Amazon ECS Anywhere CDK](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples) Samples. Per clonare e utilizzare il repository, segui le istruzioni nella sezione successiva.

## Epiche
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-epics"></a>

### Verifica la configurazione di AWS CDK
<a name="verify-aws-cdk-configuration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica la versione di AWS CDK. | Verifica la versione di AWS CDK Toolkit eseguendo il seguente comando:<pre>cdk --version</pre><br />Questo modello richiede la versione 2 di AWS CDK. Se disponi di una versione precedente di AWS CDK, segui le istruzioni nella [documentazione di AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) per aggiornarla. | DevOps ingegnere | 
| Configura le credenziali AWS. | Per configurare le credenziali, esegui il `aws configure` comando e segui le istruzioni:<pre>$aws configure<br />AWS Access Key ID [None]: <your-access-key-ID><br />AWS Secret Access Key [None]: <your-secret-access-key><br />Default region name [None]: <your-Region-name><br />Default output format [None]:</pre> | DevOps ingegnere | 

### Esegui il bootstrap dell'ambiente AWS CDK
<a name="bootstrap-the-aws-cdk-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clona il repository di codice AWS CDK. | Clona il repository di GitHub codice per questo pattern usando il comando:<pre>git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git</pre> | DevOps ingegnere | 
| Avvia l'ambiente. | Per distribuire il CloudFormation modello AWS nell'account e nella regione AWS che desideri utilizzare, esegui il seguente comando:<pre>cdk bootstrap <account-number>/<Region></pre><br />Per ulteriori informazioni, consulta [Bootstrapping nella documentazione](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) di AWS CDK. | DevOps ingegnere | 

### Crea e distribuisci il progetto
<a name="build-and-deploy-the-project"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa le dipendenze dei pacchetti e compila i file TypeScript . | Installa le dipendenze del pacchetto e compila TypeScript i file eseguendo i seguenti comandi:<pre>$cd amazon-ecs-anywhere-cdk-samples<br />$npm install<br />$npm fund </pre><br />Questi comandi installano tutti i pacchetti dal repository di esempio. Se ricevi errori sui pacchetti mancanti, usa uno dei seguenti comandi:<pre>$npm ci   </pre><br />oppure<pre>$npm install -g @aws-cdk/<package_name></pre><br />Per ulteriori informazioni, consulta [npm ci](https://docs.npmjs.com/cli/v7/commands/npm-ci) e [npm install nella documentazione](https://docs.npmjs.com/cli/v7/commands/npm-install) di npm. | DevOps ingegnere | 
| Compilare il progetto. | Per creare il codice del progetto, esegui il comando:<pre>npm run build</pre><br />Per ulteriori informazioni sulla creazione e la distribuzione del progetto, consulta La [tua prima app AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html#:~:text=the%20third%20parameter.-,Synthesize%20an%20AWS%20CloudFormation%20template,-Synthesize%20an%20AWS) nella documentazione di AWS CDK. | DevOps ingegnere | 
| Distribuisci il progetto | Per distribuire il codice del progetto, esegui il comando:<pre>cdk deploy</pre> | DevOps ingegnere | 
| Verifica la creazione e l'output dello stack. | Apri la CloudFormation console AWS all'indirizzo [https://console.aws.amazon.com/cloudformation****](https://console.aws.amazon.com/cloudformation/) e scegli lo stack. `EcsAnywhereStack` La scheda **Outputs** mostra i comandi da eseguire sulla macchina virtuale esterna. | DevOps ingegnere | 

### Configura una macchina locale
<a name="set-up-an-on-premises-machine"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la tua VM usando Vagrant. | A scopo dimostrativo, puoi usare [HashiCorp Vagrant](https://www.vagrantup.com/) per creare una macchina virtuale. Vagrant è un'utilità open source per la creazione e la manutenzione di ambienti di sviluppo software virtuali portatili. Crea una VM Vagrant eseguendo il `vagrant up` comando dalla directory principale in cui è posizionato Vagrantfile. [Per ulteriori informazioni, consulta la documentazione di Vagrant.](https://www.vagrantup.com/docs/cli/up) | DevOps ingegnere | 
| Registra la tua macchina virtuale come istanza esterna. | 1. Accedi alla VM Vagrant utilizzando il comando. `vagrant ssh` [Per ulteriori informazioni, consulta la documentazione di Vagrant.](https://www.vagrantup.com/docs/cli/ssh)<br />2. Crea un codice di attivazione e un ID che puoi utilizzare per registrare la tua macchina virtuale con AWS Systems Manager e attivare l'istanza esterna. L'output di questo comando include `ActivationId` e `ActivationCode` valori: <pre>aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json</pre><br />3. Esporta l'ID di attivazione e i valori del codice:<pre>export ACTIVATION_ID=<activation-ID><br />export ACTIVATION_CODE=<activation-code></pre><br />4. Scarica lo script di installazione sul server o sulla macchina virtuale locale:<pre>curl -o "ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh" && sudo chmod +x ecs-anywhere-install.sh</pre><br />5. Esegui lo script di installazione sul server o sulla macchina virtuale locale:<pre>sudo ./ecs-anywhere-install.sh \<br />    --cluster test-ecs-anywhere \<br />     --activation-id $ACTIVATION_ID \<br />     --activation-code $ACTIVATION_CODE \<br />    --region <Region></pre><br />Per ulteriori informazioni sulla configurazione e la registrazione di una macchina virtuale, consulta [Registrazione di un'istanza esterna in un cluster](https://docs.amazonaws.cn/en_us/AmazonECS/latest/developerguide/ecs-anywhere-registration.html) nella documentazione di Amazon ECS. | DevOps ingegnere | 
| Verifica lo stato di ECS Anywhere e della macchina virtuale esterna. | Per verificare se la tua casella virtuale è connessa al piano di controllo di Amazon ECS e se è in funzione, usa i seguenti comandi:<pre>aws ssm describe-instance-information<br />aws ecs list-container-instances --cluster $CLUSTER_NAME</pre> | DevOps ingegnere | 

### Eliminazione
<a name="clean-up"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Pulisci ed elimina le risorse. | Dopo aver seguito questo schema, dovresti rimuovere le risorse che hai creato per evitare di incorrere in ulteriori addebiti. Per pulire, esegui il comando:<pre>cdk destroy</pre> | DevOps ingegnere | 

## Risorse correlate
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-resources"></a>
+ [Documentazione di Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) 
+ [Demo di Amazon ECS Anywhere](https://www.youtube.com/watch?v=-eud6yUXsJM)
+ [Esempi di workshop su Amazon ECS Anywhere](https://github.com/aws-samples/aws-ecs-anywhere-workshop-samples)