Liberando Elastic IP no EC2 teve Cloudfront parar de funcionar

1

Eu tinha atingido o limite de alocações do Elastic IP na minha conta da AWS. Eu tenho um aplicativo Elastic Beanstalk que está sendo servido em Cloudfront. Pensei que desde que o CNAME do aplicativo foi mapeado para o CNAME do Cloudfront, liberar o Elastic IP da instância do ec2 do aplicativo EB deve ser bom, então eu fiz isso. No entanto, o aplicativo EB parou de funcionar. Mesmo se eu tentei acessar o aplicativo da Web usando o CNAME do Cloudfront, ele ainda não está acessível. A instância ec2 recebeu um endereço IP público logo após o Elastic IP ser lançado.

Alguém pode lançar alguma luz? Como posso resolver este problema?

Obrigado

    
por Michael 27.09.2018 / 13:17

2 respostas

1

Resumindo: CloudFront não fica na sua VPC e conversa com o seu EB pela Internet pública. Assim, o seu EB precisa que o IP público seja acessível pelo CloudFront . O IP público pode ser IP elástico ou o IP público efêmero "padrão".

IP elástico tem algumas vantagens sobre o IP público padrão - o mais importante é que ele pode ser movido da instância do EC2 para a instância do EC2 e permanece alocado na sua conta mesmo o EC2 está parado.

Não tenho certeza se o EB pode trabalhar com os IPs públicos padrão (não-EIPs). Eu acho que não porque eles são bastante instáveis e não previsíveis e pode ser bastante complicado manter a atualização do nome DNS EB quando eles mudam. IP elásticos, por outro lado, são alocados para sua conta e podem ser movidos da instância do EB para instância, portanto, não há necessidade de atualizar o DNS.

Você pode precisar anexar o antigo EIP ao EB para que ele funcione novamente.

Sugiro que você apresente um Pedido de Suporte da AWS Increase Aumento do Limite de Serviço e solicite o número de EIPs disponíveis aumentado em 5 ou 10.

Espero que ajude:)

    
por 27.09.2018 / 13:54
0

Acabei descobrindo isso sozinho. Parece que depende do tipo de seu ambiente EB, os endereços IP públicos funcionam de maneira diferente.

Para ambientes de instância única, que é o meu caso aqui, a AWS atribui um endereço IP elástico, não importa o quê. De acordo com os documentos:

A single-instance environment contains one Amazon EC2 instance with an Elastic IP address.

Então, basicamente, desde que o seu ambiente permaneça como instância única, você não pode se livrar do IP elástico atribuído à sua instância ou seu ambiente deixará de funcionar como no meu caso.

Solução:

Eu consertei alterando o ambiente para balanceamento de carga, com 1 min e 1 max, o número de instâncias sempre permanecerá 1. Um ambiente com balanceamento de carga depende do CNAME do ELB, em vez do endereço IP do EC2, então até meu O IP público da instância ec2 foi alterado, o registro DNS do meu aplicativo EB não será afetado, nem a distribuição de cloudfront.

    
por 27.09.2018 / 14:45