Configurar o AWS Elastic Load Balancer

Last Updated: 17/02/2023By

Como configurar o AWS Elastic Load Balancer e forçar o uso de HTTPS?

Este artigo fornece uma introdução ao uso de um balanceador de carga (clássico e aplicativo) por meio do Console de gerenciamento da AWS, uma interface baseada na web.

Aqui, você criará um balanceador de carga que recebe tráfego HTTP/HTTPS público e o envia para suas instâncias do EC2.

screenshot 20230211 222801 piccollage7368716020939504197

Requisitos:

  • Conta da AWS e acesso ao console da Web da AWS
  • Configuração de várias sub-redes (públicas e privadas) para configurar a configuração segura do ELB
  • Configuração de VPC da AWS
  • Grupos de segurança com regras apropriadas
  • NACLs irão regras adequadas
  • Múltiplas instâncias EC2 em execução com servidor web em execução (Apache/Nginx/IIS)
  • Certificado SSL HTTPS para configurar conexão segura (opcional)

Selecione um tipo de balanceador de carga:

O Elastic Load Balancing oferece suporte a dois tipos de load balancers: Application Load Balancers e Classic Load Balancers .

Para criar um Classic Load Balancer:

  • Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ .
  • Na barra de navegação, escolha uma região para seu balanceador de carga. Certifique-se de selecionar a mesma região que você selecionou para suas instâncias do EC2.
  • No painel de navegação, em LOAD BALANCE, escolha Load Balancers.
  • Escolha Criar balanceador de carga.
  • Escolha Classic Load Balancer e escolha Continuar

Para definir seu balanceador de carga

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ .
  2. No painel de navegação, em LOAD BALANCE , escolha Load Balancers .
  3. Escolha Criar balanceador de carga .
  4. Em Select load balancer type , escolha Classic Load Balancer .
  5. Em Load Balancer name , digite um nome para seu load balancer.
    O nome de seu Classic Load Balancer deve ser exclusivo dentro de seu conjunto de Classic Load Balancers para a região, pode ter no máximo 32 caracteres, pode conter apenas caracteres alfanuméricos e hifens e não deve começar ou terminar com um hífen.
  6. Para Create LB inside , selecione a mesma rede que você selecionou para suas instâncias: EC2-Classic ou uma VPC específica.
  7. [VPC padrão ou sua VPC criada personalizada] Se você selecionou uma VPC padrão e gostaria de escolher as sub-redes para seu load balancer, selecione Enable advanced VPC configuration .
  8. Para Configuração do ouvinte , deixe o ouvinte padrão e escolha Adicionar para adicionar outro ouvinte. Para Load Balancer Protocol para o novo ouvinte, selecione HTTPS (Secure HTTP) . Isso atualiza a porta do balanceador de carga , o protocolo de instância e a porta de instância .
    Por padrão, o protocolo da instância é HTTP e a porta da instância é 80.
    Se você deseja configurar a autenticação da instância de back-end, altere o protocolo da instância para HTTPS (HTTP de segurança) . Isso também atualiza Instance Port .
  9. [EC2-VPC] Para sub-redes disponíveis , selecione pelo menos uma sub-rede disponível usando seu ícone de adição. As sub-redes são movidas para Sub- redes selecionadas . Para melhorar a disponibilidade de seu balanceador de carga, selecione sub-redes de mais de uma zona de disponibilidade.
    Obs.
    Se você selecionou EC2-Classic como sua rede ou possui uma VPC padrão, mas não selecionou Enable advanced VPC configuration , não verá a interface do usuário para selecionar sub-redes.
    Você pode adicionar no máximo uma sub-rede por zona de disponibilidade. Se você selecionar uma segunda sub-rede de uma zona de disponibilidade onde já existe uma sub-rede selecionada, essa sub-rede substituirá a sub-rede atualmente selecionada para essa zona de disponibilidade.

012323 1826 configuraro1

Escolha Avançar: Atribuir grupos de segurança .

Atribuir grupos de segurança ao seu balanceador de carga em uma VPC

Se você selecionou um VPC como sua rede, deve atribuir ao load balancer um security group que permita o tráfego de entrada para as portas que você especificou para o load balancer e as verificações de integridade do load balancer.

Observação

Se você selecionou EC2-Classic como sua rede, pode continuar na próxima etapa. Por padrão, o Elastic Load Balancing fornece um security group para load balancers no EC2-Classic.

Para atribuir security group ao seu load balancer

  1. Na página Atribuir grupos de segurança , selecione Criar um novo grupo de segurança .
  2. Digite um nome e uma descrição para seu grupo de segurança ou deixe o nome e a descrição padrão. Esse novo grupo de segurança contém uma regra que permite o tráfego para as portas que você configurou para uso do balanceador de carga.
  3. Escolha Avançar: Definir configurações de segurança .

Definir configurações de segurança

Ao usar HTTPS ou SSL para seu ouvinte front-end, você deve implantar um certificado SSL em seu balanceador de carga. O balanceador de carga usa o certificado para encerrar a conexão e, em seguida, descriptografar as solicitações dos clientes antes de enviá-las às instâncias.

Você também deve especificar uma política de segurança. O Elastic Load Balancing fornece políticas de segurança com configurações de negociação SSL predefinidas, ou você pode criar sua própria política de segurança personalizada.

Se você configurou HTTPS/SSL na conexão de back-end, pode habilitar a autenticação de suas instâncias.

Para definir as configurações de segurança

  1. Para Select Certificate , siga um destes procedimentos:
  2. Se você criou ou importou um certificado usando o AWS Certificate Manager, selecione Escolher um certificado existente do AWS Certificate Manager (ACM) e selecione o certificado em Certificate .
  3. Se você importou um certificado usando o IAM, selecione Escolher um certificado existente no AWS Identity and Access Management (IAM) e selecione seu certificado em Certificado .
  4. Se você tiver um certificado para importar, mas o ACM não estiver disponível em sua região, selecione Upload a new SSL Certificate to AWS Identity and Access Management (IAM) . Digite o nome do certificado. Em Private Key , copie e cole o conteúdo do arquivo de chave privada (codificado por PEM). Em Public Key Certificate , copie e cole o conteúdo do arquivo de certificado de chave pública (codificado por PEM). Em Cadeia de certificados , copie e cole o conteúdo do arquivo da cadeia de certificados (codificado por PEM), a menos que você esteja usando um certificado autoassinado e não seja importante que os navegadores aceitem implicitamente o certificado.
  5. Para Select a Cipher , verifique se a Política de segurança predefinida está selecionada e definida como ELBSecurityPolicy-XXXX-XX . Recomendamos que você sempre use a política de segurança predefinida mais recente.
  6. (Opcional) Se você configurou o ouvinte HTTPS para se comunicar com instâncias usando uma conexão criptografada, pode configurar opcionalmente a autenticação das instâncias.
  7. Para Certificado de back-end , selecione Habilitar autenticação de back -end .
    Observação
    Se você não vir a seção Certificado de back -end , volte para Configuração do ouvinte e selecione HTTPS (HTTP de segurança) para Protocolo de instância .
  8. Para Certificate name , digite o nome do certificado de chave pública.
  9. Para Certificate Body (pem coding) , copie e cole o conteúdo do certificado. O balanceador de carga se comunica com uma instância somente se sua chave pública corresponder a essa chave.
  10. Para adicionar outro certificado, escolha Adicionar outro certificado de back-end .
  11. Escolha Avançar: Configurar verificação de integridade .

Configurar verificações de integridade

O Elastic Load Balancing verifica automaticamente a integridade das instâncias do EC2 registradas para seu load balancer. Se o Elastic Load Balancing encontrar uma instância não íntegra, ele interromperá o envio de tráfego para a instância e redirecionará o tráfego para as instâncias íntegras. Para obter mais informações sobre como configurar verificações de integridade.

Para configurar verificações de integridade para suas instâncias

  1. Na página Configure Health Check , selecione um protocolo de ping e uma porta de ping. Suas instâncias do EC2 devem aceitar o tráfego especificado na porta de ping especificada.
  2. Para Ping Path , substitua o valor padrão por uma única barra (“/”). Isso instrui o Elastic Load Balancing a enviar solicitações de verificação de integridade para a página inicial padrão do seu servidor web, como index.html.
  3. Mantenha as outras configurações em seus valores padrão.
  4. Escolha Next: Add EC2 Instances .

Registre instâncias do EC2 com seu balanceador de carga

Seu balanceador de carga distribui o tráfego entre as instâncias registradas nele. Você pode selecionar instâncias do EC2 em uma única zona de disponibilidade ou em várias zonas de disponibilidade na mesma região do balanceador de carga.

Para registrar instâncias do EC2 com seu balanceador de carga

  1. Na página Add EC2 Instances , selecione as instâncias para registrar com seu load balancer.
  2. Deixe o balanceamento de carga entre zonas e a drenagem de conexão ativados.
  3. Escolha Avançar: Adicionar tags .

012323 1826 configuraro2

Marque seu balanceador de carga (opcional)

Você pode marcar seu balanceador de carga ou continuar na próxima etapa.

Para adicionar tags ao seu balanceador de carga

  1. Na página Adicionar tags , especifique uma chave e um valor para a tag.
  2. Para adicionar outra tag, escolha Create Tag e especifique uma chave e um valor para a tag.
  3. Depois de terminar de adicionar tags, escolha Revisar e criar .

Crie e verifique seu balanceador de carga

Antes de criar o balanceador de carga, revise as configurações selecionadas. Depois de criar o balanceador de carga, você pode verificar se ele está enviando tráfego para suas instâncias do EC2.

Para criar e testar seu balanceador de carga

  1. Na página Revisão , verifique suas configurações. Se precisar fazer alterações, escolha o link correspondente para editar as configurações.
  2. Escolha Criar .
  3. Depois de ser notificado de que seu balanceador de carga foi criado, escolha Fechar .
  4. Selecione seu novo balanceador de carga.
  5. Na guia Descrição , verifique a linha Status . Se indicar que algumas de suas instâncias não estão em serviço, provavelmente é porque elas ainda estão em processo de registro.

012323 1826 configuraro3

Como forçar o HTTPS por trás do AWS ELB

Nas configurações mais comuns, ao executar seu aplicativo da web por trás do Nginx ou Apache, sua solicitação https:// será redirecionada para http://. Às vezes, você pode querer reescrever todas as solicitações HTTP para HTTPS.

O Amazon Elastic Load Balancer (ELB) oferece suporte a um cabeçalho HTTP chamado X-FORWARDED-PROTO . Todas as requisições HTTPS passando pelo ELB terão o valor de X-FORWARDED-PROTO igual a ” HTTPS “. Para as solicitações HTTP, você pode forçar o HTTPS adicionando uma regra de reescrita simples, como segue:

Nginx:

No arquivo de configuração do site nginx, reescreva-o:

servidor {
escuta 80;
….
location / {
if ($http_x_forwarded_proto != ‘https’) {
reescrever ^ https://$host$request_uri? permanente;
}
….
}
}

Apache:

Você pode reescrever essas configurações no arquivo de configuração de seus sites:

<VirtualHost *:80>

Reescrever Motor Ligado

RewriteCond %{HTTP:X-Forwarded-Proto} !https

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}

</VirtualHost>

IIS:

Você precisa instalar o módulo IIS Url-Rewrite, usando a GUI de configuração, adicione essas configurações

<reescrever xdt:Transformar=”Inserir”>

<regras>

<rule name=”HTTPS regravado atrás da regra ELB” stopProcessing=”true”>

<match url=”^(.*)$” ignoreCase=”false” />

<condições>

<add input=”{HTTP_X_FORWARDED_PROTO}” padrão=”^http$” ignoreCase=”false” />

</condições>

<action type=”Redirect” redirectType=”Encontrado” url=”https://{SERVER_NAME}{URL}” />

</regra>

</regras>

</reescrever>

AWS

Amazon Web Services

Elb

Elastic Load Balancer

Http Https

newsletter-icon

Novidades via inbox

Fique por dentro no meu Boletim digital toda semana um conteúdo novo

Leave A Comment