Exécutez des tâches Amazon ECS sur Amazon WorkSpaces avec Amazon ECS Anywhere - Recommandations AWS

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.

Exécutez des tâches Amazon ECS sur Amazon WorkSpaces avec Amazon ECS Anywhere

Créée par Akash Kumar (AWS)

Récapitulatif

Amazon Elastic Container Service (Amazon ECS) Anywhere prend en charge le déploiement de tâches Amazon ECS dans n'importe quel environnement, y compris l'infrastructure gérée par Amazon Web Services (AWS) et l'infrastructure gérée par le client. Vous pouvez le faire en utilisant un plan de contrôle entièrement géré par AWS, exécuté dans le cloud et toujours à jour. 

Les entreprises utilisent souvent Amazon WorkSpaces pour développer des applications basées sur des conteneurs. Cela a nécessité Amazon Elastic Compute Cloud (Amazon EC2) ou AWS Fargate avec un cluster Amazon ECS pour tester et exécuter des tâches ECS. Désormais, en utilisant Amazon ECS Anywhere, vous pouvez ajouter Amazon WorkSpaces en tant qu'instances externes directement à un cluster ECS, et vous pouvez exécuter vos tâches directement. Cela réduit votre temps de développement, car vous pouvez tester votre conteneur avec un cluster ECS localement sur Amazon WorkSpaces. Vous pouvez également économiser sur le coût d'utilisation EC2 des instances Fargate pour tester vos applications de conteneurs.

Ce modèle montre comment déployer des tâches ECS sur Amazon WorkSpaces avec Amazon ECS Anywhere. Il configure le cluster ECS et utilise AWS Directory Service Simple AD pour lancer le WorkSpaces. Ensuite, l'exemple de tâche ECS lance NGINX dans le. WorkSpaces

Conditions préalables et limitations

Architecture

Pile technologique cible

  • Un cloud privé virtuel (VPC)

  • Un cluster Amazon ECS

  • Amazon WorkSpaces

  • AWS Directory Service avec Simple AD

Architecture cible

ECS Anywhere configure le cluster ECS et utilise Simple AD pour le lancer WorkSpaces.

L'architecture inclut les services et ressources suivants :

  • Un cluster ECS avec des sous-réseaux publics et privés dans un VPC personnalisé

  • Simple AD dans le VPC pour permettre aux utilisateurs d'accéder à Amazon WorkSpaces

  • Amazon WorkSpaces provisionné dans le VPC à l'aide de Simple AD

  • AWS Systems Manager est activé pour ajouter Amazon en WorkSpaces tant qu'instances gérées

  • À l'aide d'Amazon ECS et d'AWS Systems Manager Agent (agent SSM), Amazon WorkSpaces a ajouté à Systems Manager et au cluster ECS

  • Exemple de tâche ECS à exécuter WorkSpaces dans le cluster ECS

Outils

  • AWS Directory Service Simple Active Directory (Simple AD) est un annuaire géré autonome alimenté par un serveur compatible Samba 4 Active Directory. Simple AD fournit un sous-ensemble des fonctionnalités proposées par AWS Managed Microsoft AD, notamment la possibilité de gérer les utilisateurs et de se connecter en toute sécurité aux EC2 instances Amazon.

  • Amazon Elastic Container Service (Amazon ECS) est un service de gestion de conteneurs évolutif et rapide, qui facilite l'exécution, l'arrêt et la gestion de conteneurs Docker sur un cluster.

  • AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.

  • AWS Systems Manager vous aide à gérer vos applications et votre infrastructure exécutées dans le cloud AWS. Il simplifie la gestion des applications et des ressources, réduit le délai de détection et de résolution des problèmes opérationnels et vous aide à gérer vos ressources AWS en toute sécurité à grande échelle.

  • Amazon vous WorkSpaces aide à fournir des postes de travail Microsoft Windows ou Amazon Linux virtuels basés sur le cloud pour vos utilisateurs, connus sous WorkSpacesle nom de. WorkSpaces élimine le besoin d'acheter et de déployer du matériel ou d'installer des logiciels complexes.

Épopées

TâcheDescriptionCompétences requises

Créez et configurez le cluster ECS.

Pour créer le cluster ECS, suivez les instructions de la documentation AWS, notamment les étapes suivantes :

  • Pour sélectionner la compatibilité du cluster, choisissez Networking only, qui prendra en charge un Amazon WorkSpace en tant qu'instance externe du cluster ECS.

  • Choisissez de créer un nouveau VPC.

Architecte du cloud
TâcheDescriptionCompétences requises

Configurez Simple AD et lancez Amazon WorkSpaces.

Pour configurer un répertoire Simple AD pour votre VPC nouvellement créé et lancer Amazon WorkSpaces, suivez les instructions de la documentation AWS.

Architecte du cloud
TâcheDescriptionCompétences requises

Téléchargez les scripts ci-joints.

Sur votre ordinateur local, téléchargez les ssm-activation.json fichiers ssm-trust-policy.json et qui se trouvent dans la section Pièces jointes.

Architecte du cloud

Ajoutez le rôle IAM.

Ajoutez des variables d'environnement en fonction des besoins de votre entreprise.

export AWS_DEFAULT_REGION=${AWS_REGION_ID} export ROLE_NAME=${ECS_TASK_ROLE} export CLUSTER_NAME=${ECS_CLUSTER_NAME} export SERVICE_NAME=${ECS_CLUSTER_SERVICE_NAME}

Exécutez la commande suivante.

aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document file://ssm-trust-policy.json
Architecte du cloud

Ajoutez la SSMManaged InstanceCore politique Amazon au rôle IAM.

Exécutez la commande suivante.

aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
Architecte du cloud

Ajoutez la politique Amazon EC2 ContainerServicefor EC2 Role au rôle IAM.

Exécutez la commande suivante.

aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role
Architecte du cloud

Vérifiez le rôle IAM.

Pour vérifier le rôle IAM, exécutez la commande suivante.

aws iam list-attached-role-policies --role-name $ROLE_NAME
Architecte du cloud

Activez Systems Manager.

Exécutez la commande suivante.

aws ssm create-activation --iam-role $ROLE_NAME | tee ssm-activation.json
Architecte du cloud
TâcheDescriptionCompétences requises

Connect à votre WorkSpaces.

Pour vous connecter à vos espaces de travail et les configurer, suivez les instructions de la documentation AWS.

Développeur d’applications

Téléchargez le script d'installation ecs-anywhere.

À l’invite de commande, exécutez la commande suivante.

curl -o "ecs-anywhere-install.sh" "https://amazon-ecs-agent-packages-preview.s3.us-east-1.amazonaws.com/ecs-anywhere-install.sh" && sudo chmod +x ecs-anywhere-install.sh
Développeur d’applications

Vérifiez l'intégrité du script shell.

(Facultatif) Exécutez la commande suivante.

curl -o "ecs-anywhere-install.sh.sha256" "https://amazon-ecs-agent-packages-preview.s3.us-east-1.amazonaws.com/ecs-anywhere-install.sh.sha256" && sha256sum -c ecs-anywhere-install.sh.sha256
Développeur d’applications

Ajoutez un référentiel EPEL sur Amazon Linux.

Pour ajouter un référentiel EPEL (Extra Packages for Enterprise Linux), exécutez la commandesudo amazon-linux-extras install epel -y.

Développeur d’applications

Installez Amazon ECS Anywhere.

Pour exécuter le script d'installation, utilisez la commande suivante.

sudo ./ecs-anywhere-install.sh --cluster $CLUSTER_NAME --activation-id $ACTIVATION_ID --activation-code $ACTIVATION_CODE --region $AWS_REGION

Vérifiez les informations d'instance à partir du cluster ECS.

Pour vérifier les informations relatives à l'instance de cluster Systems Manager et ECS et valider WorkSpaces celles qui ont été ajoutées au cluster, exécutez la commande suivante depuis votre ordinateur local.

aws ssm describe-instance-information" && "aws ecs list-container-instances --cluster $CLUSTER_NAME
Développeur d’applications
TâcheDescriptionCompétences requises

Créez un rôle IAM d'exécution de tâches.

Téléchargez task-execution-assume-role.json et external-task-definition.json depuis la section Pièces jointes

Sur votre ordinateur local, exécutez la commande suivante.

aws iam --region $AWS_DEFAULT_REGION create-role --role-name $ECS_TASK_EXECUTION_ROLE --assume-role-policy-document file://task-execution-assume-role.json
Architecte du cloud

Ajoutez la politique au rôle d'exécution.

Exécutez la commande suivante.

aws iam --region $AWS_DEFAULT_REGION attach-role-policy --role-name $ECS_TASK_EXECUTION_ROLE --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
Architecte du cloud

Créez un rôle de tâche.

Exécutez la commande suivante.

aws iam --region $AWS_DEFAULT_REGION create-role --role-name $ECS_TASK_EXECUTION_ROLE --assume-role-policy-document file://task-execution-assume-role.json
Architecte du cloud

Enregistrez la définition de tâche dans le cluster.

Sur votre ordinateur local, exécutez la commande suivante.

aws ecs register-task-definition --cli-input-json file://external-task-definition.json
Architecte du cloud

Exécutez la tâche.

Sur votre ordinateur local, exécutez la commande suivante.

aws ecs run-task --cluster $CLUSTER_NAME --launch-type EXTERNAL --task-definition nginx
Architecte du cloud

Validez l'état d'exécution de la tâche.

Pour récupérer l'ID de tâche, exécutez la commande suivante.

export TEST_TASKID=$(aws ecs list-tasks --cluster $CLUSTER_NAME | jq -r '.taskArns[0]')

À l'aide de l'ID de tâche, exécutez la commande suivante.

aws ecs describe-tasks --cluster $CLUSTER_NAME --tasks ${TEST_TASKID}
Architecte du cloud

Vérifiez la tâche sur le WorkSpace.

Pour vérifier que NGINX s'exécute sur le WorkSpace, exécutez la commande.  curl http://localhost:8080

Développeur d’applications

Ressources connexes

Pièces jointes

Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip