Gestisci le applicazioni container locali configurando Amazon ECS Anywhere con AWS CDK - Prontuario AWS

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

Creato dal dott. Rahul Sharad Gaikwad (AWS)

Archivio amazon-ecs-anywhere-cdk di codice: -samples

Ambiente: PoC o pilota

Tecnologie: modernizzazione; contenitori e microservizi; cloud ibrido DevOps; infrastruttura

Carico di lavoro: tutti gli altri carichi di lavoro

Servizi AWS: AWS CDK; Amazon ECS; AWS Identity and Access Management

Riepilogo

Amazon ECS 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).

Prerequisiti e limitazioni

Prerequisiti

Limitazioni

Versioni del prodotto

  • AWS CDK Toolkit versione 2

  • npm versione 7.20.3 o successiva

  • Node.js versione 16.6.1 o successiva

Architettura

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.

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

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

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

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

Automazione e scalabilità

Il GitHub repository 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.

Strumenti

Codice

Il codice sorgente per questo pattern è disponibile nel GitHub repository Amazon ECS Anywhere CDK Samples. Per clonare e utilizzare il repository, segui le istruzioni nella sezione successiva.

Epiche

AttivitàDescrizioneCompetenze richieste

Verifica la versione di AWS CDK.

Verifica la versione di AWS CDK Toolkit eseguendo il seguente comando:

cdk --version

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 per aggiornarla.

DevOps ingegnere

Configura le credenziali AWS.

Per configurare le credenziali, esegui il aws configure comando e segui le istruzioni:

$aws configure AWS Access Key ID [None]: <your-access-key-ID> AWS Secret Access Key [None]: <your-secret-access-key> Default region name [None]: <your-Region-name> Default output format [None]:
DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Clona il repository di codice AWS CDK.

Clona il repository di GitHub codice per questo pattern usando il comando:

git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git
DevOps ingegnere

Avvia l'ambiente.

Per distribuire il CloudFormation modello AWS nell'account e nella regione AWS che desideri utilizzare, esegui il seguente comando:

cdk bootstrap <account-number>/<Region>

Per ulteriori informazioni, consulta Bootstrapping nella documentazione di AWS CDK.

DevOps ingegnere
AttivitàDescrizioneCompetenze 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:

$cd amazon-ecs-anywhere-cdk-samples $npm install $npm fund

Questi comandi installano tutti i pacchetti dal repository di esempio. 

Importante: in caso di errori relativi ai pacchetti mancanti, usa uno dei seguenti comandi:

$npm ci

oppure

$npm install -g @aws-cdk/<package_name>

Per ulteriori informazioni, consulta npm ci e npm install nella documentazione di npm.

DevOps ingegnere

Compilare il progetto.

Per creare il codice del progetto, esegui il comando:

npm run build

Per ulteriori informazioni sulla creazione e la distribuzione del progetto, consulta La tua prima app AWS CDK nella documentazione di AWS CDK.

DevOps ingegnere

Distribuisci il progetto

Per distribuire il codice del progetto, esegui il comando:

cdk deploy
DevOps ingegnere

Verifica la creazione e l'output dello stack.

Apri la CloudFormation console AWS all'indirizzo https://console.aws.amazon.com/cloudformation e scegli lo EcsAnywhereStack stack. La scheda Outputs mostra i comandi da eseguire sulla macchina virtuale esterna.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Configura la tua VM usando Vagrant.

A scopo dimostrativo, puoi usare HashiCorp Vagrant 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.

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.

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: 

aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json

3. Esporta l'ID di attivazione e i valori del codice:

export ACTIVATION_ID=<activation-ID> export ACTIVATION_CODE=<activation-code>

4. Scarica lo script di installazione sul server o sulla macchina virtuale locale:

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

5. Esegui lo script di installazione sul server o sulla macchina virtuale locale:

sudo ./ecs-anywhere-install.sh \ --cluster test-ecs-anywhere \ --activation-id $ACTIVATION_ID \ --activation-code $ACTIVATION_CODE \ --region <Region>

Per ulteriori informazioni sulla configurazione e la registrazione di una macchina virtuale, consulta Registrazione di un'istanza esterna in un cluster 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:

aws ssm describe-instance-information aws ecs list-container-instances --cluster $CLUSTER_NAME
DevOps ingegnere
AttivitàDescrizioneCompetenze 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 eseguire la pulizia, esegui il comando:

cdk destroy
DevOps ingegnere

Risorse correlate