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 à ELB
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 toutefois de son utilisation dans le cadre d'un blue/green déploiement ou d'un déploiement sur place.
Note
L'utilisation d'équilibreurs de charge Elastic Load Balancing est obligatoire dans les déploiements et facultative dans blue/green les déploiements sur place.
Types d'ELB
ELB 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
-
Les itinéraires et les équilibres de charge se situent soit au niveau de la couche transport (TCP/SSL) or the application layer (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 demandes vers les ports de chaque EC2 instance ou instance de conteneur de votre cloud privé virtuel (VPC).
Note
Les groupes cibles d'Application Load Balancer doivent avoir un type de cible pour les déploiements sur des EC2 instances et
instancepour les déploiementsIPFargate. 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 ELB, 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 CodeDeploy blue/green les déploiements.
Lors d'un blue/green déploiement, l'équilibreur de charge permet d'acheminer le trafic vers les nouvelles instances d'un groupe de déploiement dans lequel la dernière révision de l'application a été déployée (l'environnement de remplacement), conformément aux règles que vous spécifiez, puis bloque le trafic provenant des anciennes instances sur lesquelles la révision précédente de l'application était exécutée (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 blue/green déploiement, vous pouvez spécifier un ou plusieurs groupes cibles Classic Load Balancer, Application Load Balancer ou 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 plus d'informations sur les équilibreurs de charge dans blue/green les déploiements, 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, selon 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. OneAtATime configuration de déploiement 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. OneAtATime ce paramètre 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 d'échantillons GitHub, nous fournissons des instructions et des échantillons que vous pouvez adapter pour utiliser les équilibreurs de charge CodeDeploy ELB. 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 avec des EC2 instances CodeDeploy Amazon enregistrées auprès des équilibreurs de charge ELB, 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 EC2 instances Amazon cibles est AWS CLI installée.
-
Assurez-vous que chacune de vos EC2 instances Amazon 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.shetcommon_functions.sh). -
Dans la
appspec.ymlsection pour la révision de l'application, fournissez des instructions CodeDeploy pour exécuter leregister_with_elb.shscript pendant l'ApplicationStartévénement et lederegister_from_elb.shscript 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 ELB et apportez les modifications nécessaires aux autres paramètres de déploiement du fichier. ELB_LIST="" -
Si vous utilisez l'Application Load Balancer ou le Network Load
Balancer, spécifiez les noms des groupes cibles ELB et TARGET_GROUP_LIST=""apportez les modifications nécessaires aux autres paramètres de déploiement du fichier.
-
-
Groupez le code source de votre application, le
appspec.ymlet 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 EC2 instances Amazon. Pendant le déploiement, les scripts d'événements du cycle de vie du déploiement annuleront l'enregistrement de l' EC2 instance Amazon auprès de l'équilibreur de charge, attendront que la connexion soit épuisée, puis réenregistreront l'instance EC2 Amazon auprès de l'équilibreur de charge une fois le déploiement terminé.