Integração CodeDeploy com o Elastic Load Balancing - AWS CodeDeploy

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 balanceadores de carga do Elastic Load Balancing é obrigatório em implantações azul/verdes e opcional em implantações locais.

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-alvo do Application Load Balancer devem ter um tipo de destino instance para implantações em instâncias do EC2 e para IP implantações do Fargate. Para obter mais informações, consulte Tipo de alvo.

Network Load Balancer

Rotas e balanceamentos de carga na camada de transporte (camada TCP/UDP 4) com base nas informações de endereço extraídas do cabeçalho do pacote TCP, 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 balanceadores de carga 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 balanceador de carga 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).

Depois que as instâncias em um ambiente substituto são registradas com um ou mais balanceadores de carga, as instâncias do ambiente original são canceladas e, se você preferir, encerradas.

Para uma implantação azul/verde, você pode especificar um ou mais grupos alvo do 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 local, você pode especificar um ou mais grupos-alvo 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.

Especifique o balanceador de carga de implantação local usando um grupo de implantação

Para adicionar balanceadores de carga a um grupo de implantação, você usa o CodeDeploy console ouAWS 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:

Especifique o balanceador de carga de implantação 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 no 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 exemplos de scripts—register_with_elb.sh,deregister_from_elb.sh, e common_functions.sh —que fornecem todo o código de que você precisa para começar. 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:

  1. Baixe as amostras para o tipo de balanceador de carga que deseja usar para uma implantação no local:

  2. Certifique-se de que cada uma de suas instâncias de destino do Amazon EC2 tenha o AWS CLI instalado.

  3. Certifique-se de que cada uma de suas instâncias de destino do Amazon EC2 tenha um perfil de instância do IAM anexado com, no mínimo, as permissões elasticloadbalancing: * e autoscaling: *.

  4. 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 e common_functions.sh).

  5. Em appspec.yml Para a revisão do aplicativo, forneça instruções CodeDeploy para executar o register_with_elb.sh script durante o ApplicationStartevento e o deregister_from_elb.sh script durante o ApplicationStopevento.

  6. Se a instância fizer parte de um grupo do Amazon EC2 Auto Scaling, você pode pular essa etapa.

    No scriptcommon_functions.sh:

    • Se você estiver usando o Classic Load Balancer, especifique os nomes dos balanceadores de carga do Elastic Load Balancing e faça as alterações necessárias ELB_LIST="" nas outras configurações de implantação no arquivo.

    • Se você estiver usando o Application Load Balancer ou o Network Load Balancer, especifique os nomes dos grupos de destino do Elastic Load Balancing e faça as alterações necessárias TARGET_GROUP_LIST="" nas outras configurações de implantação no arquivo.

  7. 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 eventos do ciclo de vida da implantação cancelarão o registro da instância do Amazon EC2 com o balanceador de carga, aguardarão que a conexão seja drenada e, em seguida, registrarão novamente a instância do Amazon EC2 com o balanceador de carga após a conclusão da implantação.