Crea il tuo primo servizio Express Mode utilizzando il AWS CLI - Amazon Elastic Container Service

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

Crea il tuo primo servizio Express Mode utilizzando il AWS CLI

Questo tutorial mostra come creare un'applicazione di servizio Express Mode utilizzando. AWS AWS CLI Implementerai una semplice applicazione web che dimostra le funzionalità principali del servizio Express Mode.

Prerequisiti

Prima di iniziare, assicurati di disporre dei seguenti elementi:

  • Un AWS account con le autorizzazioni appropriate

  • L' AWS AWS CLI installato e configurato

  • Un'immagine del contenitore archiviata in Amazon ECR o in un registro privato

Fase 1: creazione di ruoli IAM

Un servizio Express Mode richiede due ruoli IAM. Il Task Execution Role consente ad Amazon ECS di estrarre immagini di container e scrivere log per tuo conto. Crea un ruolo di esecuzione delle attività e un ruolo di infrastruttura con le seguenti politiche:

#Create the roles with ECS trust policies aws iam create-role --role-name ecsTaskExecutionRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole", } ] }' aws iam create-role --role-name ecsInfrastructureRoleForExpressServices \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessInfrastructureForECSExpressServices", "Effect": "Allow", "Principal": { "Service": "ecs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
#Attach the AWS managed policies aws iam attach-role-policy --role-name ecsTaskExecutionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy aws iam attach-role-policy --role-name ecsInfrastructureRoleForExpressServices \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRoleforExpressGatewayServices

Per ulteriori informazioni, consulta Ruolo IAM di esecuzione di attività Amazon ECS.

Fase 2: Creare la prima applicazione di servizio Express Mode

Creare un'applicazione di servizio Express Mode con i parametri minimi richiesti:

aws ecs create-express-gateway-service \ --image "public.ecr.aws/nginx/nginx:latest" \ --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \ --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \ --monitor-resources

Questo comando crea un'applicazione di servizio Express Mode con:

  • Un nome di servizio univoco generato dal nome dell'immagine

  • 1 vCPU e 2 GB di memoria

  • Porta 80 per il traffico HTTPS

  • Scalabilità automatica basata sull'utilizzo della CPU

  • Un Application Load Balancer connesso a Internet nel VPC predefinito e nelle sottoreti pubbliche

  • Un URL univoco per questo servizio nel formato servicename.ecs.region.on.aws

Il comando monitora continuamente le risorse man mano che vengono fornite e ne restituisce lo stato. Una volta completata la distribuzione del servizio, l'URL dell'applicazione è pronto per ricevere traffico. Quando si interrompe il monitoraggio, vengono restituite le informazioni sul servizio creato, inclusi l'ARN e l'URL del servizio:

{ "service": { "cluster": "arn:aws:ecs:region:123456789012:cluster/default", "serviceName": "nginx-1234", "serviceArn": "arn:aws:ecs:region:123456789012:service/default/nginx-1234", "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices", "status": { "statusCode": "ACTIVE" }, "createdAt": "UNIXTIMESTAMP" } }

Fase 3: Creare un'applicazione di servizio Express Mode con impostazioni personalizzate

È possibile personalizzare l'applicazione di servizio Express Mode specificando parametri aggiuntivi:

aws ecs create-express-gateway-service \ --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \ --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \ --primary-container \ ‘{“image”=“123456789012.dkr.ecr.region.amazonaws.com/my-app:latest", \ “containerPort”=8080, \ “environment”=[{“name”=“ENV”,”value”=“production”},{“name”=“DEBUG”,”value”=“false”}]}’ \ --service-name "my-web-app" \ --cpu 2 \ --memory 4 \ --health-check-path "/health" \ --scaling-target ‘{“minTaskCount”=3,”maxTaskCount”=100}’ --monitor-resources

In questo modo viene creata un'applicazione con:

  • Un nome personalizzato "my-web-app»

  • 2 vCPU e 4 GB di memoria

  • Porta 8080 per il traffico delle applicazioni

  • Endpoint personalizzato per il controllo dello stato

  • Variabili di ambiente

  • Minimo 3 attività, massimo 100 attività per la scalabilità automatica

Fase 4: Monitora la distribuzione

Il --monitor-resources flag funziona su qualsiasi chiamata di creazione, aggiornamento o eliminazione ai servizi in modalità Express. Inoltre, è possibile monitorare le risorse di un servizio in qualsiasi momento, indipendentemente da un'azione di mutazione. I tempi di implementazione possono variare a seconda delle risorse da fornire. Una volta modificato lo statoACTIVE, l'applicazione è pronta a ricevere traffico.

aws ecs monitor-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88

È inoltre possibile trovare la configurazione e lo stato correnti dell'applicazione di servizio Express Mode:

aws ecs describe-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88

Fase 5: Accedere all'applicazione

Accedi all'applicazione del servizio Express Mode utilizzando l'URL fornito quando diventa attiva. Il formato dell'URL è:

https://<service-name>.ecs.<region>.on.aws/

Esempio:

https://app-23d97h88.ecs.us-west-2.on.aws/

L'applicazione è ora in esecuzione con:

  • SSL/TLS Terminazione automatica

  • Bilanciamento del carico su più zone di disponibilità

  • Scalabilità automatica basata sull'utilizzo della CPU

  • CloudWatch registrazione e monitoraggio

  • 5XX Rollback Alarms e Canary Deployments per aggiornamenti futuri