View a markdown version of this page

Créez votre premier service en mode Express à l'aide du AWS CLI - Amazon Elastic Container Service

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 présente 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é

  • Un VPC par défaut avec des sous-réseaux publics dans la AWS région où vous créez le service. Par défaut, le service Express Mode crée un équilibreur de charge connecté à Internet dans le VPC et les sous-réseaux publics par défaut de votre compte. Si votre compte ne possède pas de VPC par défaut, créez-en un avant de commencer ou spécifiez vos propres sous-réseaux lors de la création du service. Pour plus d'informations, consultez la section VPC par défaut dans le guide de l'utilisateur Amazon VPC.

Étape 1 : Création de 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 des 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.

Note

Les rôles IAM finissent par être cohérents, de sorte qu'un rôle nouvellement créé peut ne pas être utilisable immédiatement. Si votre premier create-express-gateway-service appel échoue Unable to assume the service linked role (ou si une erreur similaire d'attribution de rôle se produit) juste après la création de ces rôles, attendez un court moment (environ une minute) que les rôles se propagent, puis réessayez la commande.

Étape 2 : Créez 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 \ --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

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 processeur virtuel et 2 Go de mémoire

  • Port 80 pour le trafic HTTPS

  • Mise à l'échelle automatique en fonction de l'utilisation du processeur

  • Un équilibreur de charge des applications connecté à Internet dans le VPC par défaut et les sous-réseaux publics

  • URL unique à ce service au format servicename.ecs.region.on.aws

La commande surveille en permanence les ressources au fur et à mesure de leur provisionnement et renvoie leur é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 processeurs virtuels et 4 Go de mémoire

  • Port 8080 pour le trafic des applications

  • Point de terminaison de contrôle de santé personnalisé

  • Variables d’environnement

  • Minimum 3 tâches, maximum 100 tâches pour la mise à l'échelle automatique

Créez un service en mode Express avec votre propre définition de tâche

Vous pouvez également créer un service en mode Express avec votre propre définition de tâche. Avec votre propre définition de tâche, vous avez le contrôle total de la configuration au niveau des tâches. Le mode Express continue de gérer l'infrastructure, y compris l'équilibrage de charge, la mise à l'échelle automatique et les déploiements Canary.

La commande AWS Command Line Interface (AWS AWS CLI) suivante crée un service en mode Express avec une définition de tâche personnalisée :

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 définition de votre tâche doit répondre aux exigences suivantes :

  • Un conteneur nommé Main

  • Le Main conteneur doit avoir un seul mappage de port TCP avec un port de conteneur et un nom de port

  • La définition de la tâche doit avoir FARGATE dans ses compatibilités

Note

Le taskDefinitionArn paramètre ne peut pas être spécifié avec primaryContainerexecutionRoleArn, taskRoleArncpu, ou memory dans le même appel d'API. Le mode Express dérive ces valeurs à partir de la définition de tâche fournie.

Étape 4 : Surveillez votre déploiement

Le --monitor-resources drapeau fonctionne sur tous les appels de création, de mise à jour ou de suppression vers vos services en mode Express. Mais en plus, vous pouvez surveiller les ressources d'un service à tout moment, indépendamment d'une action de mutation. La durée du 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/default/app-23d97h88

Vous pouvez également consulter 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/default/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 maintenant en cours d'exécution avec :

  • SSL/TLS Résiliation automatique

  • Équilibrage de charge entre plusieurs zones de disponibilité

  • Mise à l'échelle automatique en fonction de l'utilisation du processeur

  • CloudWatch journalisation et surveillance

  • Alarmes de restauration 5XX et déploiements de Canary pour les futures mises à jour