Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Créez votre premier service en mode express à l'aide du AWS CLI
Ce didacticiel explique comment créer une application de service en mode express à l'aide du AWS AWS CLI. Vous allez déployer une application Web simple qui illustre les fonctionnalités de base du service Express Mode.
Conditions préalables
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un AWS compte avec les autorisations appropriées
Le AWS AWS CLI installé et configuré
Une image de conteneur stockée dans Amazon ECR ou dans un registre privé
Étape 1 : créer des rôles IAM
Un service en mode express nécessite deux rôles IAM. Le rôle d'exécution des tâches permet à Amazon ECS d'extraire des images de conteneurs et de rédiger des journaux en votre nom. Créez un rôle d'exécution de tâches et un rôle d'infrastructure avec les politiques suivantes :
#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
Pour de plus amples informations, veuillez consulter Rôle IAM d'exécution de tâche Amazon ECS.
Étape 2 : Création de votre première application de service en mode express
Créez une application de service en mode express avec les paramètres minimaux requis :
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
Cette commande crée une application de service en mode express avec :
Un nom de service unique généré à partir du nom de l'image
1 vCPU et 2 Go de mémoire
Port 80 pour le trafic HTTPS
Mise à l'échelle automatique basée sur l'utilisation du processeur
Application Load Balancer connecté à Internet dans le VPC par défaut et les sous-réseaux publics
Une URL propre à ce service au format
servicename.ecs.region.on.aws
La commande surveille en permanence les ressources au fur et à mesure de leur mise en service et renvoie l'état. Une fois le déploiement du service terminé, l'URL de l'application est prête à recevoir du trafic. Lorsque vous interrompez la surveillance, les informations relatives au service créé sont renvoyées, y compris l'ARN et l'URL du service :
{ "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" } }
Étape 3 : Création d'une application de service en mode express avec des paramètres personnalisés
Vous pouvez personnaliser votre application de service Express Mode en spécifiant des paramètres supplémentaires :
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
Cela crée une application avec :
Un nom personnalisé « my-web-app »
2 vCPU et 4 Go de mémoire
Port 8080 pour le trafic des applications
Point de contrôle de santé personnalisé
Variables d’environnement
Minimum 3 tâches, maximum 100 tâches pour une mise à l'échelle automatique
Étape 4 : Surveillez votre déploiement
L'--monitor-resourcesindicateur fonctionne sur tout appel de création, de mise à jour ou de suppression vers vos services en mode express. Mais en outre, vous pouvez surveiller les ressources d'un service à tout moment, indépendamment d'une action mutante. Le temps de déploiement peut varier en fonction des ressources à provisionner. Une fois que le statut passe àACTIVE, votre application est prête à recevoir du trafic.
aws ecs monitor-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88
Vous pouvez également trouver la configuration et l'état actuels de votre application de service Express Mode :
aws ecs describe-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88
Étape 5 : Accédez à votre application
Accédez à l'application de service Express Mode à l'aide de l'URL fournie lorsqu'elle devient active. Le format de l'URL est le suivant :
https://<service-name>.ecs.<region>.on.aws/
Par exemple :
https://app-23d97h88.ecs.us-west-2.on.aws/
Votre application est désormais en cours d'exécution avec :
SSL/TLS Résiliation automatique
Équilibrage de charge entre plusieurs zones de disponibilité
Mise à l'échelle automatique basée sur l'utilisation du processeur
CloudWatch journalisation et surveillance
Alarmes de rétrogradation 5XX et déploiements Canary pour les futures mises à jour