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
Un VPC predefinito con sottoreti pubbliche nella AWS regione in cui si crea il servizio. Per impostazione predefinita, il servizio Express Mode crea un sistema di bilanciamento del carico connesso a Internet nel VPC predefinito e nelle sottoreti pubbliche dell'account. Se il tuo account non dispone di un VPC predefinito, creane uno prima di iniziare o specifica le tue sottoreti quando crei il servizio. Per ulteriori informazioni, consulta i VPC predefiniti nella Amazon VPC User Guide.
Fase 1: Creare 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.
Nota
I ruoli IAM alla fine sono coerenti, quindi un ruolo appena creato potrebbe non essere utilizzabile immediatamente. Se la tua prima create-express-gateway-service chiamata fallisce Unable to assume the service linked role (o un errore simile a quello di assume-role) subito dopo aver creato questi ruoli, attendi qualche minuto (circa un minuto) che i ruoli si propaghino, quindi riprova a eseguire il comando.
Passaggio 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 \ --primary-container "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 unico 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
Questo crea 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
Crea un servizio Express Mode con la tua definizione di attività
È inoltre possibile creare un servizio Express Mode con una definizione di attività personalizzata. Con la propria definizione delle attività, si ha il pieno controllo sulla configurazione a livello di attività. Express Mode continua a gestire l'infrastruttura, incluso il bilanciamento del carico, la scalabilità automatica e le implementazioni Canary.
Il comando seguente AWS Command Line Interface (AWS AWS CLI) crea un servizio Express Mode con una definizione di attività personalizzata:
aws ecs create-express-gateway-service \ --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \ --task-definition-arn arn:aws:ecs:us-west-2:123456789012:task-definition/my-td:3 \ --health-check-path "/health" \ --monitor-resources
La definizione dell'attività deve soddisfare i seguenti requisiti:
Un contenitore denominato
MainIl
Maincontenitore deve avere una singola mappatura di porta TCP con una porta del contenitore e un nome di portaLa definizione dell'attività deve avere tra le sue
FARGATEcompatibilità
Nota
Il taskDefinitionArn parametro non può essere specificato conprimaryContainer,executionRoleArn, taskRoleArncpu, o memory nella stessa chiamata API. Express Mode ricava questi valori dalla definizione dell'attività fornita.
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/default/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/default/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/
Ad 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