Para um aplicativo SaaS onde os clientes podem usar seus próprios nomes de domínio personalizados, usarei o let encrypt para gerar os certificados para os domínios dos clientes.
Atualmente estou usando o pé de feijão elástico (que usa ELB).
É possível continuar usando o pé de feijão?
Visto que o balanceador de carga elástico terá que lidar com a verificação do certificado, e meus certificados estarão em minhas instâncias, acho que preciso, de alguma forma, encaminhar o tráfego para minhas instâncias sozinho.
Existe alguma solução alternativa que valeria a pena, eu poderia fazer isso?
cliente -> instância ec2 executando haproxy -> ELB -> Beanstalk
O SSL será encerrado na minha instância ec2 executando o haproxy.
Responder1
Você tem algumas opções aqui:
- Siga o caminho que você mencionou, encerre seu SSL em um cluster de instâncias HAProxy antes de encaminhar o tráfego através de seu ELB para suas instâncias.
- Transforme seu ELB em um encaminhador TCP, o que torna o ELB um embaralhador de pacotes idiota. Você perde alguns benefícios do ELB aqui, mas isso funcionará. Você encerrará o SSL nas instâncias que hospedam seu aplicativo nesse cenário; portanto, em uma configuração de balanceamento de carga, você precisará de cópias do certificado em todas as suas instâncias. Pode ser bastante complicado de orquestrar, mas viável.
- (e minha opção preferida) use um ALB. Os ALBs suportam vários certificados SSL e escolherão automaticamente o certificado correto quando o cliente indicar o cabeçalho SNI. Você poderá fazer upload dos pedaços de certificado necessários (chave, certificado, intermediário) para o IAM e selecioná-los em seu ALB, tudo por meio da API.
Os ALBs têm muitas outras vantagens além do SNI. Eles suportam HTTP/2, roteamento baseado em caminho para vários grupos-alvo (úteis em alguns cenários) e, pelo que sei, são mais baratos que os ELBs clássicos.
E sim, o Elastic Beanstalk suporta ALBs. Infelizmente, você pode a) optar por usá-lo apenas no momento da criação do ambiente eb) fazer isso apenas por meio da nova IU. Eu postei algunsqueixassobre UI e EB em geral terem realmente começado a usá-los nas últimas semanas. Esperamos que eles resolvam esses problemas no futuro. Enquanto isso, você deve pelo menos ser capaz de salvar a configuração atual do seu ambiente, iniciar uma nova a partir da configuração salva (alterando o tipo de balanceador de carga antes da criação) e, em seguida, alternar os CNAMEs quando estiver instalado e funcionando.
Observe também: seu ambiente deve estar configurado para usar um VPC para usar ALBs.