Camada de AWS OpsWorks pilhas HAProxy - AWS OpsWorks

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á.

Camada de AWS OpsWorks pilhas HAProxy

nota

Essa camada está disponíveis apenas para o Chef 11 e pilhas anteriores com base em Linux.

A camada AWS OpsWorks Stacks HAProxy é uma camada AWS OpsWorks Stacks que fornece um modelo para instâncias que hospedam um servidor HAProxy — um balanceamento de carga TCP/HTTP confiável de alto desempenho. Uma pequena instância é normalmente suficiente para processar todo o tráfego do servidor dos aplicativos.

nota

As pilhas estão limitadas a uma única região. Para distribuir seu aplicativo em várias regiões, é necessário criar uma pilha separada para cada região.

Para criar uma camada HAProxy
  1. No painel de navegação, clique em Layers.

  2. Na página Layers, clique em Add a Layer ou + Layer. Em Layer type, selecione HAProxy.

A camada tem as seguintes definições de configuração, as quais são opcionais.

HAProxy statistics

Se a camada coleta e exibe estatísticas. O valor padrão é Yes.

Statistics URL

A cominho do URL da página estática. O URL completo é http://dnsname StatisticsPath, em que dnsname é o nome DNS da instância associada. O StatisticsPathvalor padrão é /haproxy? stats, que corresponde a algo como: http://ec2-54-245-151-7.us-west-2.compute.amazonaws.com/haproxy?stats.

Statistics user name

O nome de usuário da página de estatísticas, que você deve fornecer para visualizar a página de estatísticas. O valor padrão é “opsworks”.

Statistics password

A senha da página de estatísticas, que você deve fornecer para visualizar a página de estatísticas. O valor padrão é uma string gerada aleatoriamente.

Health check URL

O sufixo do URL de verificação de integridade. O HAProxy usa esse URL para periodicamente chamar um método HTTP em cada instância do servidor de aplicativo a fim de determinar se a instância está funcionando. Em caso de falha da verificação de saúde, o HAProxy interrompe o roteamento do tráfego para a instância até ser reiniciado, manualmente ou por meio de autorrecuperação. O valor padrão para o sufixo do URL é "/", que corresponde à página inicial da instância de servidor: http://DNSName/.

Health check method

Um método HTTP para ser usado a fim de verificar se as instâncias estão funcionando. O valor padrão é OPTIONS, e você também pode especificar GET ou HEAD. Para obter mais informações, consulte httpchk.

Grupos de segurança personalizados

Essa configuração aparece se você optar por não associar automaticamente um grupo de segurança embutido do AWS OpsWorks Stacks às suas camadas. Você deve especificar qual grupo de segurança associar com a camada. Certifique-se de que o grupo tenha as configurações corretas para permitir o tráfego entre as camadas. Para ter mais informações, consulte Criar uma nova pilha.

nota

Grave a senha para uso posterior; o AWS OpsWorks Stacks não permite que você visualize a senha depois de criar a camada. No entanto, você pode atualizar a senha acessando a página Edit da camada e clicando em Update password na guia General Settings.

Como funciona a camada HAProxy

Por padrão, o HAProxy faz o seguinte:

  • Detecta solicitações nas portas HTTP e HTTPS.

    Você pode configurar o HAProxy para detectar somente na porta HTTP ou HTTPS ao substitui o modelo de configuração do Chef, haproxy.cfg.erb.

  • Direciona o tráfego de entrada para instâncias que fazem parte de qualquer camada do servidor do aplicativo.

    Por padrão, o AWS OpsWorks Stacks configura o HAProxy para distribuir tráfego para instâncias que são membros de qualquer camada do servidor de aplicativos. Por exemplo, você pode ter uma pilha com Rails App Server e camadas PHP App Server, além de um HAProxy principal que distribui o tráfego para as instâncias em ambas as camadas. É possível configurar o roteamento padrão utilizando uma receita personalizada.

  • Direciona o tráfego em diversas Zonas de disponibilidade.

    Se uma Zona de disponibilidade for desativada, o load balancer direciona o tráfego de entrada para instâncias em outras zonas para que o aplicativo continue a ser executado sem interrupção. Por esse motivo, uma prática recomendada é distribuir os servidores de aplicativos em várias Zonas de disponibilidade.

  • Executa periodicamente o método de verificação de integridade em cada instância do servidor do aplicativo avaliar sua integridade.

    Se o método não retornar dentro de um período de tempo limite especificado, presume-se que a instância falhou e o HAProxy interrompe o roteamento de solicitações para a instância. AWS OpsWorks O Stacks também fornece uma forma de substituir automaticamente as instâncias com falha. Para ter mais informações, consulte Como usar a correção automática. Você pode alterar o método de verificação de integridade ao criar a camada.

  • Coleta as estatísticas e, como opção, as exibe em uma página da Web.

Importante

Para que a verificação de integridade funcione corretamente com o método OPÇÕES padrão, o aplicativo deve retornar um código de status 2xx ou 3xx.

Por padrão, quando você adiciona uma instância a uma camada do HAProxy, o AWS OpsWorks Stacks atribui a ela um endereço IP elástico para representar o aplicativo, que é público para o mundo. Como o endereço IP elástico da instância HAProxy é o único URL exposto publicamente do aplicativo, não é necessário criar e gerenciar nomes de domínio público para as instâncias do servidor de aplicativo subjacente. Você pode obter o endereço na página Instâncias e examinar o endereço IP público da instância, como a ilustração a seguir mostra. Um endereço seguido de (EIP) é um endereço IP elástico. Para obter mais informações sobre endereços IP elásticos, consulte Endereços IP elásticos (EIP).

Quando você interrompe uma instância do HAProxy, o AWS OpsWorks Stacks retém o endereço IP elástico e o reatribui à instância quando você a reinicia. Por padrão, ao excluir uma instância do HAProxy, o AWS OpsWorks Stacks exclui o endereço IP da instância. Para manter o endereço desmarque a opção Excluir o IP elástico da instância, como mostrado na ilustração a seguir.

Essa opção afeta o que acontece ao adicionar uma nova instância à camada para substituir uma instância excluída:

  • Se você manteve o endereço IP elástico da instância excluída, o AWS OpsWorks Stacks atribui o endereço à nova instância.

  • Caso contrário, o AWS OpsWorks Stacks atribuirá um novo endereço IP elástico à instância e você deverá atualizar as configurações do registrador de DNS para mapear para o novo endereço.

Quando as instâncias do servidor de aplicativos ficam on-line ou off-line, manualmente ou como consequência da escalabilidade automática ou da autorrecuperação; a configuração do balanceador de carga deve ser atualizada para direcionar o tráfego até o conjunto atual de instâncias on-line. Essa tarefa é processada automaticamente pelas receitas internas da camada:

  • Quando novas instâncias são ativadas, o AWS OpsWorks Stacks aciona um evento de ciclo de vida do Configure. As receitas de Configurar internas da camada HAProxy atualizam a configuração do balanceador de carga para que também distribua solicitações para qualquer nova instância do servidor do aplicativo.

  • Quando as instâncias ficam off-line ou uma instância falha em uma verificação de saúde, o AWS OpsWorks Stacks também aciona um evento de ciclo de vida do Configure. As receitas de Configurar do HAProxy atualizam a configuração do load balancer para direcionar o tráfego somente para as instâncias online restantes.

Por fim, você também pode usar um domínio personalizado com a camada HAProxy. Para ter mais informações, consulte Usando domínios predefinidos.

Página de estatísticas

Se você tiver habilitado a página de estatísticas, o HAProxy exibe uma página contendo diversas métricas no URL especificado.

Como visualizar estatísticas do HAProxy
  1. Obtenha o nome DNS público da instância HAProxy da página Detalhes da instância e o copie.

  2. Na página Camadas, clique em HAProxy para abrir a página de detalhes da camada.

  3. Obtenha o URL das estatísticas nos detalhes da camada e anexe-os ao nome DNS público. Por exemplo: http://ec2-54-245-102-172.us-west-2.compute.amazonaws.com/haproxy?stats para isso.

  4. Cole o URL da etapa anterior no navegador e use o nome do usuário e a senha especificada ao criar a camada para abrir a página de estatísticas.