Ceci est le guide du AWS CDK développeur de la version 2. L'ancienne CDK version 1 est entrée en maintenance le 1er juin 2022 et a pris fin le 1er juin 2023.
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.
Exemple : créez un AWS Fargate service à l'aide du AWS CDK
Dans cet exemple, nous vous montrons comment créer un AWS Fargate service exécuté sur un cluster Amazon Elastic Container Service (AmazonECS) dirigé par un Application Load Balancer connecté à Internet à partir d'une image sur Amazon. ECR
Amazon ECS est un service de gestion de conteneurs rapide et hautement évolutif qui facilite l'exécution, l'arrêt et la gestion Docker des conteneurs sur un cluster. Vous pouvez héberger votre cluster sur une infrastructure sans serveur gérée ECS par Amazon en lançant vos services ou tâches à l'aide du type de lancement Fargate. Pour plus de contrôle, vous pouvez héberger vos tâches sur un cluster d'instances Amazon Elastic Compute Cloud (AmazonEC2) que vous gérez à l'aide du type de EC2 lancement Amazon.
Dans cet exemple, nous lançons certains services en utilisant le type de lancement Fargate. Si vous avez utilisé le AWS Management Console pour créer un service Fargate, vous savez qu'il existe de nombreuses étapes à suivre pour accomplir cette tâche. AWS propose plusieurs didacticiels et rubriques de documentation qui vous guident dans la création d'un service Fargate, notamment :
Cet exemple crée un service Fargate similaire à l'aide du. AWS CDK
La ECS structure Amazon utilisée dans cet exemple vous aide à utiliser AWS les services en offrant les avantages suivants :
-
Configure automatiquement un équilibreur de charge.
-
Ouvre automatiquement un groupe de sécurité pour les équilibreurs de charge. Cela permet aux équilibreurs de charge de communiquer avec les instances sans avoir à créer explicitement un groupe de sécurité.
-
Ordonne automatiquement la dépendance entre le service et l'équilibreur de charge attaché à un groupe cible, où il AWS CDK applique l'ordre correct de création de l'écouteur avant la création d'une instance.
-
Configure automatiquement les données utilisateur pour dimensionner automatiquement les groupes. Cela crée la configuration correcte à laquelle associer un clusterAMIs.
-
Valide les combinaisons de paramètres à un stade précoce. Cela permet de détecter les AWS CloudFormation problèmes plus tôt, ce qui permet de gagner du temps de déploiement. Par exemple, en fonction de la tâche, il est facile de mal configurer les paramètres de mémoire. Auparavant, nous ne rencontrions aucune erreur tant que nous n'avions pas déployé notre application. Mais maintenant, ils AWS CDK peuvent détecter une mauvaise configuration et émettre une erreur lorsque nous synthétisons notre application.
-
Ajoute automatiquement des autorisations pour Amazon Elastic Container Registry (AmazonECR) si nous utilisons une image d'AmazonECR.
-
Échelle automatiquement. Il AWS CDK fournit une méthode qui nous permet de dimensionner automatiquement les instances lorsque nous utilisons un EC2 cluster Amazon. Cela se produit automatiquement lorsque nous utilisons une instance dans un cluster Fargate.
En outre, cela AWS CDK empêche la suppression d'une instance lorsque le dimensionnement automatique tente d'arrêter une instance, alors qu'une tâche est en cours d'exécution ou est planifiée sur cette instance.
Auparavant, nous devions créer une fonction Lambda pour disposer de cette fonctionnalité.
-
Assure le support des actifs, afin que nous puissions déployer une source depuis notre machine vers Amazon ECS en une seule étape. Auparavant, pour utiliser une source d'application, nous devions effectuer plusieurs étapes manuelles, telles que le téléchargement sur Amazon ECR et la création d'une Docker image.
Important
Les ApplicationLoadBalancedFargateService
structures que nous utiliserons incluent de nombreux AWS
composants, dont certains ont des coûts non négligeables s'ils restent provisionnés dans notre AWS compte, même si nous ne les utilisons pas. Assurez-vous de nettoyer (cdk destroy) si vous suivez cet exemple.
Création d'un CDK projet
Nous commençons par créer un CDK projet. Il s'agit d'un répertoire qui stocke notre AWS CDK code, y compris notre CDK application.
Ensuite, nous exécutons l'application et confirmons qu'elle crée une pile vide.
cdk synth
Création d'un service Fargate
Nous pouvons exécuter nos tâches de conteneur de deux manières différentes avec Amazon ECS :
-
Utilisez le type de
Fargate
lancement, où Amazon ECS gère les machines physiques sur lesquelles nos conteneurs s'exécutent pour nous. -
Utilisez le type de
EC2
lancement, où nous effectuons la gestion, par exemple en spécifiant le dimensionnement automatique.
Dans cet exemple, nous allons créer un service Fargate exécuté sur un cluster ECS Amazon, dirigé par un Application Load Balancer connecté à Internet.
Nous ajoutons les importations du module AWS Construct Library suivantes à notre fichier de pile :
Dans notre stack, nous ajoutons le code suivant :
Ensuite, nous validons notre code en exécutant ce qui suit pour synthétiser notre pile :
cdk synth
La pile est composée de centaines de lignes, nous ne la montrerons donc pas ici. La pile doit contenir une instance par défaut, un sous-réseau privé et un sous-réseau public pour les trois zones de disponibilité, ainsi qu'un groupe de sécurité.
Pour déployer la pile, nous exécutons les opérations suivantes :
cdk deploy
AWS CloudFormation affiche des informations sur les dizaines d'étapes qu'il effectue lors du déploiement de notre application.
Une fois le déploiement terminé, nous avons créé avec succès un service ECS Amazon basé sur Fargate pour Docker exécuter une image.
Nettoyage
En tant que bonne pratique de maintenance générale, et afin de minimiser les coûts inutiles, nous supprimons notre pile une fois terminée :
cdk destroy