Qual seria a melhor maneira de conseguir tal coisa:
Eu tenho uma quantidade limitada de ips elásticos e tenho várias instâncias do EC2 para iniciar aplicativos pequenos.
Eu tenho uma ideia de ter um balanceador de carga ou uma instância do EC2 que possa rotear o tráfego para qualquer outra instância do EC2.
Por exemplo, haveria 3 instâncias:
- Instância 1 (ec2-00-00-0-01.eu-west-2.compute.amazonaws.com)
- Instância 2 (ec2-00-00-0-02.eu-west-2.compute.amazonaws.com)
- Instância 3 (ec2-00-00-0-03.eu-west-2.compute.amazonaws.com)
Eu gostaria de usar o DNS IPv4 público dessas instâncias.
Então, por exemplo, como eu poderia ter um único lugar que pudesse rotear o tráfego com base no nome de domínio.
Instância do EC2 (proxy reverso nginx) ou um balanceador de carga na AWS escutaria solicitações de domínios:
- instance1.com (encaminharia o tráfego para ec2-00-00-0-01)
- instance2.com (encaminharia o tráfego para ec2-00-00-0-02)
- instance3.com (encaminharia o tráfego para ec2-00-00-0-03)
Qual seria sua abordagem para lidar com esse cenário?
Suas aplicações precisam ser endereçadas por IP? Eles são http(s) padrão? Se apropriado, basta configurar um ALB, usar os nomes de domínio fornecidos e não se preocupar com IPs estáticos.
Duas coisas que não sei se você sabe:
Dentro de uma VPC, apenas IPs privados são usados. O NAT para IPs públicos é feito no gateway da Internet. ou seja, o balanceador de carga se conecta às instâncias usando seu IP privado, que nunca muda
Ao usar um balanceador de carga, você coloca o CNAME no DNS, em vez do endereço IP. Basicamente, os endereços IP se tornam irrelevantes se você usar um balanceador de carga.