Exécutez ECS des tâches Amazon 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 ECS des tâches Amazon sur Amazon WorkSpaces avec Amazon ECS Anywhere

Créée par Akash Kumar () AWS

Environnement : Production

Technologies : conteneurs et microservices ; modernisation

Charge de travail : toutes les autres charges de travail

AWSservices : Amazon ECS ; Amazon WorkSpaces ; AWS Directory Service

Récapitulatif

Amazon Elastic Container Service (AmazonECS) Anywhere prend en charge le déploiement de ECS tâches Amazon dans n'importe quel environnement, y compris l'infrastructure gérée 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 AWS géré, 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 (AmazonEC2) ou AWS Fargate avec un cluster ECS Amazon 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 ECS cluster, 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 ECS cluster 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 ECS tâches sur Amazon WorkSpaces avec Amazon ECS Anywhere. Il configure le ECS cluster et utilise AWS Directory Service Simple AD pour lancer le WorkSpaces. L'exemple de ECS tâche est ensuite lancé NGINX dans le WorkSpaces.

Conditions préalables et limitations

Architecture

Pile technologique cible

  • Un cloud privé virtuel (VPC)

  • Un ECS cluster Amazon

  • Amazon WorkSpaces

  • AWSDirectory Service avec Simple AD

Architecture cible

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

L'architecture inclut les services et ressources suivants :

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

  • Simple AD dans le VPC pour fournir aux utilisateurs un accès à Amazon WorkSpaces

  • Amazon WorkSpaces approvisionné à l'VPCaide de Simple AD

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

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

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

Outils

  • AWSDirectory 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 (AmazonECS) est un service de gestion de conteneurs rapide et évolutif qui vous permet d'exécuter, d'arrêter et de gérer des conteneurs sur un cluster.

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

  • AWSSystems Manager vous aide à gérer vos applications et votre infrastructure exécutées dans le AWS cloud. 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 AWS ressources 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 ECS cluster.

Pour créer le ECS cluster, suivez les instructions de la AWSdocumentation, 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 ECS cluster.

  • Choisissez d'en créer un nouveauVPC.

Architecte du cloud
TâcheDescriptionCompétences requises

Configurez Simple AD et lancez Amazon WorkSpaces.

Pour configurer un annuaire Simple AD pour votre Amazon nouvellement créé VPC et le lancer WorkSpaces, suivez les instructions de la AWSdocumentation.

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 IAM rôle.

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 mazonSSMManaged InstanceCore politique A au IAM rôle.

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 EC2ContainerServiceforEC2Role politique Amazon au IAM rôle.

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 IAM rôle.

Pour vérifier le IAM rôle, 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 AWSdocumentation.

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 EPEL référentiel sur Amazon Linux.

Pour ajouter un référentiel Extra Packages for Enterprise Linux (EPEL), 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 relatives à l'instance depuis le ECS cluster.

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

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

Créez un IAM rôle 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 qu'NGINXil 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