As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Integração CodeDeploy com o Elastic Load Balancing
Durante CodeDeploy as implantações, um balanceador de carga impede que o tráfego da Internet seja roteado para instâncias quando elas não estão prontas, estão sendo implantadas no momento ou não são mais necessárias como parte de um ambiente. A função exata desempenhada pelo load balancer, no entanto, depende se ele é usado em uma implantação azul/verde ou em uma implantação no local.
nota
O uso de load balancers do Elastic Load Balancing é obrigatório em implantações azuis/verdes e opcional em implantações no local.
Tipos de Elastic Load Balancing
O Elastic Load Balancing fornece três tipos de balanceadores de carga que podem ser usados em CodeDeploy implantações: Classic Load Balancers, Application Load Balancers e Network Load Balancers.
- Classic Load Balancer
-
Roteia e carrega equilíbrios na camada de transporte (TCP/SSL) ou na camada do aplicativo (HTTP/HTTPS). Ele oferece suporte a uma VPC.
nota
Os Classic Load Balancers não são compatíveis com implantações do Amazon ECS.
- Application Load Balancer
-
Roteia e carrega equilíbrios na camada do aplicativo (HTTP/HTTPS) e é compatível com roteamento baseado em trajeto. Ele pode encaminhar solicitações para portas em cada instância do EC2 ou instância de contêiner na sua nuvem privada virtual (VPC).
nota
Os grupos de destino do Application Load Balancer devem ter um tipo de destino
instance
para implantações em instâncias do EC2 eIP
para implantações do Fargate. Para obter mais informações, consulte Tipo de destino. - Network Load Balancer
-
Roteia e faz o balanceamento de carga na camada de transporte (camada 4 do TCP/UDP) com base nas informações de endereço extraídas do cabeçalho do pacote TCP, e não do conteúdo do pacote. Os balanceadores de carga de rede podem lidar com picos de tráfego, reter o IP de origem do cliente e usar um IP fixo para a vida útil do balanceador de carga.
Para saber mais sobre os load balancers do Elastic Load Balancing, consulte os seguintes tópicos:
Implantações azuis/verdes
O redirecionamento do tráfego da instância por trás de um load balancer do Elastic Load Balancing é fundamental para implantações azul/verdes. CodeDeploy
Durante uma implantação azul/verde, o load balancer permite que o tráfego seja roteado às novas instâncias em um grupo de implantação nas quais a revisão de aplicativo mais recente tenha sido implantado (o ambiente de substituição), de acordo com as regras que você especificar e, em seguida, bloqueia o tráfego das instâncias antigas nas quais a revisão de aplicativo anterior estava sendo executada (o ambiente original).
Após as instâncias em um ambiente de substituição serem registradas em um ou mais balanceadores de carga, o registro das instâncias do ambiente original é cancelado e, se você escolher, as instâncias são encerradas.
Para uma implantação azul/verde, você pode especificar um ou mais grupos de destino dos Classic Load Balancers, do Application Load Balancer ou do Network Load Balancer no seu grupo de implantação. Você usa o CodeDeploy console ou adiciona AWS CLI os balanceadores de carga a um grupo de implantação.
Para obter mais informações sobre load balancers em implantações azuis/verdes, consulte os seguintes tópicos:
Implantações no local
Em uma implantação no local, um balanceador de carga impede que o tráfego da Internet seja direcionado para uma instância durante o processo, tornando-a novamente disponível para tráfego assim que essa implantação é concluída.
Se o load balancer não for usado durante uma implantação, o tráfego da Internet ainda poderá ser direcionado para uma instância durante o processo de implantação. Como resultado, seus clientes poderão encontrar aplicativos web quebrados, incompletos ou desatualizados. Quando você usa um load balancer do Elastic Load Balancing com uma implantação local, as instâncias em um grupo de implantação são canceladas do load balancer, atualizadas com a revisão mais recente do aplicativo e, em seguida, registradas novamente no load balancer como parte do mesmo grupo de implantação após a implantação ser bem-sucedida. CodeDeploy aguardará até 1 hora para que a instância fique íntegra por trás do balanceador de carga. Se a instância não for marcada como íntegra pelo balanceador de carga durante o período de espera, CodeDeploy ela passa para a próxima instância ou falha na implantação, com base na configuração de implantação.
Para uma implantação no local, você pode especificar um ou mais grupos de destino do Classic Load Balancers, do Application Load Balancer ou do Network Load Balancer. Você pode especificar os balanceadores de carga como parte da configuração do grupo de implantação ou usar um script fornecido por CodeDeploy para implementar os balanceadores de carga.
Especificar o balanceador de carga de implantação no local usando um grupo de implantação
Para adicionar balanceadores de carga a um grupo de implantação, você usa o CodeDeploy console ou AWS CLI. Para obter informações sobre como especificar um load balancer em um grupo de implantação para as implantações no local, consulte os seguintes tópicos:
Especificar o balanceador de carga de implantação no local usando um script
Use as etapas do procedimento a seguir para usar scripts de ciclo de vida de implantação para configurar o balanceamento de carga para implantações no local.
nota
Você deve usar CodeDeployDefault o. OneAtConfiguração de implantação ATime somente quando você está usando um script para configurar um balanceador de carga para uma implantação local. Não há suporte para execuções simultâneas, e o. CodeDeployDefault OneAtUma configuração de tempo garante a execução serial dos scripts. Para obter mais informações sobre configurações de implantação, consulte Trabalhando com configurações de implantação em CodeDeploy.
No repositório CodeDeploy Samples em GitHub, fornecemos instruções e amostras que você pode adaptar para usar os balanceadores de carga do CodeDeploy Elastic Load Balancing. Esses repositórios incluem três scripts de amostra — register_with_elb.sh
, deregister_from_elb.sh
e common_functions.sh
— que fornecem todo o código necessário para você poder trabalhar. Basta editar os espaços reservados nesses três scripts e fazer referência a eles no seu arquivo appspec.yml
.
Para configurar implantações no local CodeDeploy com instâncias do Amazon EC2 registradas nos balanceadores de carga do Elastic Load Balancing, faça o seguinte:
-
Baixe as amostras para o tipo de balanceador de carga que deseja usar para uma implantação no local:
-
Certifique-se de que cada uma de suas instâncias de destino do Amazon EC2 tenha o AWS CLI instalado.
-
Certifique-se de cada uma das suas instâncias de destino do Amazon EC2 tenha um perfil de instância do IAM conectado pelo menos com as permissões elasticloadbalancing:* e autoscaling:*.
-
Inclua no diretório do código-fonte do seu aplicativo os scripts de evento de ciclo de vida de implantação (
register_with_elb.sh
,deregister_from_elb.sh
ecommon_functions.sh
). -
Em
appspec.yml
Para a revisão do aplicativo, forneça instruções CodeDeploy para executar oregister_with_elb.sh
script durante o ApplicationStartevento e oderegister_from_elb.sh
script durante o ApplicationStopevento. -
Se a instância fizer parte de um grupo do Amazon EC2 Auto Scaling, você poderá ignorar essa etapa.
No script
common_functions.sh
:-
Se estiver usando o Classic Load Balancer
, especifique os nomes dos balanceadores de carga do Elastic Load Balancing em ELB_LIST=""
e faça as alterações necessárias nas outras configurações de implantação no arquivo. -
Se estiver usando o Application Load Balancer ou o Network Load Balancer
, especifique os nomes dos grupos de destino do Elastic Load Balancing em TARGET_GROUP_LIST=""
e faça as alterações necessárias nas outras configurações de implantação no arquivo.
-
-
Forneça o código-fonte do seu aplicativo, o
appspec.yml
e os scripts de evento de ciclo de vida de implantação em uma revisão de aplicativo e faça o upload da revisão. Implante a revisão nas instâncias do Amazon EC2. Durante a implantação, os scripts de evento de ciclo de vida de implantação cancelarão o registro da instância do Amazon EC2 no balanceador de carga, aguardará a drenagem da conexão e depois registrará novamente a instância do Amazon EC2 no balanceador de carga após a conclusão da implantação.