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.
Intégration CodeDeploy à Elastic Load Balancing
Lors CodeDeploy des déploiements, un équilibreur de charge empêche le trafic Internet d'être acheminé vers des instances lorsqu'elles ne sont pas prêtes, sont en cours de déploiement ou ne sont plus nécessaires dans le cadre d'un environnement. Le rôle exact joué par l'équilibreur de charge dépend néanmoins de son utilisation dans un déploiement bleu/vert ou dans un déploiement sur place.
Note
L'utilisation d'équilibreurs de charge Elastic Load Balancing est obligatoire dans les déploiements bleu/vert et facultative dans les déploiements sur place.
Types d'équilibreurs de charge Elastic Load Balancing
Elastic Load Balancing propose trois types d'équilibreurs de charge qui peuvent être utilisés dans les CodeDeploy déploiements : les équilibreurs de charge classiques, les équilibreurs de charge d'application et les équilibreurs de charge réseau.
- Classic Load Balancer
-
Achemine et équilibre les charges au niveau de la couche de transport (TCP/SSL) ou de la couche d'application (HTTP/HTTPS). Il prend en charge un VPC.
Note
Les équilibreurs de charge classiques ne sont pas pris en charge avec les déploiements Amazon ECS.
- Application Load Balancer
-
Achemine et équilibre les charges au niveau de la couche d'application (HTTP/HTTPS) et prend en charge le routage basé sur le chemin d'accès. Il peut acheminer les requêtes vers des ports sur chaque instance EC2 ou de conteneur dans votre Virtual Private Cloud (VPC).
Note
Les groupes cibles d'Application Load Balancer doivent avoir un type de cible pour les déploiements sur des instances EC2 et
instance
pourIP
les déploiements Fargate. Pour plus d'informations, consultez la section Type de cible. - Network Load Balancer
-
Routes et équilibres de charge au niveau de la couche transport (couche TCP/UDP 4) sur la base des informations d'adresse extraites de l'en-tête du paquet TCP, et non du contenu du paquet. Un équilibreur de charge Network Load Balancer peut traiter les pics de trafic, conserver l'adresse IP source du client et utiliser une adresse IP fixe pendant la durée de vie de l'équilibreur de charge.
Pour en savoir plus sur les équilibreurs de charge Elastic Load Balancing, consultez les rubriques suivantes :
Déploiements bleu/vert
Le réacheminement du trafic d'instance via un équilibreur de charge Elastic Load Balancing est fondamental pour les déploiements CodeDeploy bleu/vert.
Lors d'un déploiement bleu/vert, l'équilibreur de charge permet au trafic d'être acheminé vers les nouvelles instances d'un groupe de déploiement vers lequel la dernière révision d'application a été déployée (l'environnement de remplacement), en respectant les règles spécifiées, et bloque ensuite le trafic à partir des anciennes instances dans lesquelles la précédente révision d'application était en cours d'exécution (l'environnement d'origine).
Une fois que les instances d'un environnement de remplacement sont enregistrées auprès d'un ou de plusieurs équilibreurs de charge, les instances de l'environnement d'origine sont désenregistrées et, si vous le souhaitez, résiliées.
Pour un déploiement bleu/vert, vous pouvez spécifier un ou plusieurs équilibreurs de charge classiques, groupes cibles Application Load Balancer ou groupes cibles Network Load Balancer dans votre groupe de déploiement. Vous utilisez la CodeDeploy console ou AWS CLI pour ajouter les équilibreurs de charge à un groupe de déploiement.
Pour en savoir plus sur les équilibreurs de charge dans les déploiements bleu/vert, consultez les rubriques suivantes :
Déploiements sur place
Lors d'un déploiement sur place, un équilibreur de charge empêche le trafic Internet d'être acheminé vers une instance alors qu'il est déployé sur cette dernière, et ensuite il met de nouveau l'instance à disposition du trafic après la fin du déploiement sur cette dernière.
Si un équilibreur de charge n'est pas utilisé pendant un déploiement sur place, le trafic Internet peut continuer à être dirigé vers une instance au cours du processus de déploiement. Vos clients risquent donc de rencontrer des applications web rompues, incomplètes ou obsolètes. Lorsque vous utilisez un équilibreur de charge Elastic Load Balancing dans le cadre d'un déploiement sur place, les instances d'un groupe de déploiement sont désenregistrées de l'équilibreur de charge, mises à jour avec la dernière révision de l'application, puis réenregistrées auprès de l'équilibreur de charge dans le cadre du même groupe de déploiement une fois le déploiement réussi. CodeDeploy attendra jusqu'à 1 heure pour que l'instance soit saine derrière l'équilibreur de charge. Si l'instance n'est pas marquée comme saine par l'équilibreur de charge pendant la période d'attente, CodeDeploy elle passe à l'instance suivante ou échoue, en fonction de la configuration du déploiement.
Pour un déploiement sur place, vous pouvez spécifier un ou plusieurs Classic Load Balancers, des groupes cibles Application Load Balancer ou des groupes cibles Network Load Balancer. Vous pouvez spécifier les équilibreurs de charge dans le cadre de la configuration du groupe de déploiement, ou vous pouvez utiliser un script fourni par CodeDeploy pour implémenter les équilibreurs de charge.
Spécifiez un équilibreur de charge de déploiement sur place à l'aide d'un groupe de déploiement
Pour ajouter des équilibreurs de charge à un groupe de déploiement, vous utilisez la CodeDeploy console ou AWS CLI. Pour plus d'informations sur la spécification d'un équilibreur de charge dans un groupe de déploiement pour les déploiements sur place, consultez les rubriques suivantes :
Spécifiez un équilibreur de charge de déploiement sur place à l'aide d'un script
Utilisez les étapes de la procédure suivante pour utiliser les scripts de cycle de vie du déploiement et configurer l'équilibrage de charge pour les déploiements sur place.
Note
Vous devez utiliser le CodeDeployDefault. OneAtConfiguration de déploiement ATime uniquement lorsque vous utilisez un script pour configurer un équilibreur de charge pour un déploiement sur place. Les exécutions simultanées ne sont pas prises en charge, et le CodeDeployDefault. OneAtLe réglage ATime garantit une exécution en série des scripts. Pour plus d'informations sur les configurations de déploiement, consultez Utilisation des configurations de déploiement dans CodeDeploy.
Dans le référentiel CodeDeploy Samples GitHub, nous fournissons des instructions et des exemples que vous pouvez adapter pour utiliser les équilibreurs de charge CodeDeploy Elastic Load Balancing. Ces référentiels incluent trois exemples de scripts (register_with_elb.sh
,deregister_from_elb.sh
, etcommon_functions.sh
) qui fournissent tout le code dont vous avez besoin pour démarrer. Il vous suffit de modifier les espaces réservés dans ces trois scripts, puis de faire référence à ces scripts à partir de votre fichier appspec.yml
.
Pour configurer des déploiements sur place CodeDeploy avec des instances Amazon EC2 enregistrées auprès des équilibreurs de charge Elastic Load Balancing, procédez comme suit :
-
Téléchargez les exemples pour le type d'équilibreur de charge que vous voulez utiliser pour un déploiement sur place :
-
Assurez-vous que chacune de vos instances Amazon EC2 cibles est installée. AWS CLI
-
Assurez-vous que chacune de vos instances Amazon EC2 cibles possède un profil d'instance IAM associé avec, au minimum, les autorisations elasticloadbalancing : * et autoscaling : *.
-
Incluez dans le répertoire de code source de votre application les scripts d'événement de cycle de vie de déploiement (
register_with_elb.sh
,deregister_from_elb.sh
etcommon_functions.sh
). -
Dans la
appspec.yml
section pour la révision de l'application, fournissez des instructions CodeDeploy pour exécuter leregister_with_elb.sh
script pendant l'ApplicationStartévénement et lederegister_from_elb.sh
script pendant l'ApplicationStopévénement. -
Si l'instance fait partie d'un groupe Amazon EC2 Auto Scaling, vous pouvez ignorer cette étape.
Dans le script
common_functions.sh
:-
Si vous utilisez le Classic Load Balancer
, spécifiez les noms des équilibreurs de charge Elastic Load Balancing dans ELB_LIST=""
le fichier et apportez les modifications nécessaires aux autres paramètres de déploiement. -
Si vous utilisez l'Application Load Balancer ou le Network Load
Balancer, spécifiez les noms des groupes cibles Elastic Load Balancing TARGET_GROUP_LIST=""
dans le fichier et apportez les modifications nécessaires aux autres paramètres de déploiement du fichier.
-
-
Groupez le code source de votre application, le
appspec.yml
et les scripts d'événement de cycle de vie de déploiement dans une révision d'application, puis chargez la révision. Déployez la révision sur les instances Amazon EC2. Pendant le déploiement, les scripts d'événements du cycle de vie du déploiement annuleront l'enregistrement de l'instance Amazon EC2 auprès de l'équilibreur de charge, attendront que la connexion soit épuisée, puis réenregistreront l'instance Amazon EC2 auprès de l'équilibreur de charge une fois le déploiement terminé.