Loadbalancing de um servidor Web de redirecionamento de domínio raiz hospedado no EC2 para remover o SPOF

1

Isto pode parecer bastante obscuro e talvez bastante específico, mas tenha paciência comigo.

A situação é:

  • www.domain.com aponta para a infraestrutura no EC2, especificamente um ELB
  • domain.com aponta para uma instância micro no EC2 e é um servidor nginx cujo único objetivo é redirecionar todas as solicitações para www.domain.com
  • disse que micro instância é um ponto único de falha devido a haver apenas uma delas

O que gostaríamos de fazer é remover o SPOF para que vários servidores executem esse redirecionamento. Definir o domínio raiz para um CNAME para usar um ELB é contra o RFC Acredito e não acredito que nosso host DNS nos permita fazer isso de qualquer maneira.

O que devemos fazer para remover este SPOF, dadas essas limitações? É certo que é de baixo impacto, se desaparecer por qualquer motivo, mas a empresa quer atenuar esse risco.

    
por djk 07.01.2016 / 11:45

2 respostas

2

Como foi mencionado, a hospedagem estática do S3 é um bom caminho a percorrer, mas requer um registro Alias hospedado no Route 53 ... e não suporta TLS.

O TLS (para navegadores compatíveis com SNI) para sites hospedados em um bucket do S3 pode ser fornecido usando o CloudFront na frente do S3, que funciona perfeitamente, mas também requer um Alias no Route 53.

Observe que um alias não é um tipo de registro DNS. Um Alias é uma diretiva de configuração interna nos servidores de DNS do Route 53 que diz "quando recebemos uma solicitação para este registro aqui, vamos internamente (no banco de dados do Route 53) procurar e retornar o mesmo Como resultado, teríamos retornado se tivéssemos realmente recebido um pedido de outro registro diferente. " No final, ele oferece uma funcionalidade que parece similar a um CNAME, mas em vez de dizer ao resolver para tratar um nome de host como equivalente a outro, e ir procurar o outro registro para obter mais informações, Route 53 faz essa etapa de pesquisa internamente, deixando o resolvedor sem saber o mecanismo real usado para satisfazer a solicitação ... e esse mecanismo de pesquisa interno (não externo) é o motivo pelo qual os registros do Alias funcionam conforme desejado no apex da zona, quando CNAMEs não.

A menos que você tenha um mecanismo DNS que possa se adaptar a endereços IP dinâmicos, como exigem sites de hospedagem no S3 e no CloudFront, não há uma maneira sólida de eliminar o SPOF, embora alguns outros provedores de DNS suportem um recurso semelhante aos registros Alias do Route 53 . CloudFlare, por exemplo, chama de "CNAME Flattening", onde o servidor DNS, quando recebe uma consulta para o seu A-Record, faz uma pesquisa no verso para um diferente A-Record ( em um domínio diferente, como s3.amazonaws.com ou cloudfront.net) e, em seguida, retorna essa resposta ao solicitante. Isso realiza o mesmo resultado líquido de um Alias. Ele não é realmente "interno" para o servidor DNS de terceiros, mas como a segunda solicitação é enviada pela parte de trás, o resolvedor do cliente não vê nada incomum no comportamento.

Em janeiro de 2015, AWS anunciou a recuperação automática de instâncias do EC2 , que desmontará e reconstruirá uma instância que falhará nas verificações de disponibilidade do Cloudwatch, criando uma nova instância com o mesmo "tudo" - ID da instância, volumes EBS, IP elástico, etc., e esse recurso funciona com várias classes de instância , incluindo a classe t2.

Ou, como último recurso, você poderia parcialmente aliviar o SPOF provisionando mais de uma dessas máquinas de redirecionamento e provisionando vários registros A no ápice da sua região para balanceamento de carga "round-robin". " Isso reduziria, mas não eliminaria, o impacto de uma indisponibilidade de uma das máquinas, embora a viabilidade de tal solução seja altamente dependente do comportamento do navegador. Não seria considerada uma solução de "alta disponibilidade", mas seria (talvez) melhor que nada.

In order to avoid another redirect I'd like to do TLS there if possible.

Se eu entendi este comentário corretamente, então, você realmente tem para fazer o TLS lá. Se eu apontar meu navegador para https://example.com , esse ponto de extremidade terá que falar TLS e ter um certificado válido para o nome do host, ou o link será efetivamente quebrado - um servidor não poderá redirecionar se Não é possível negociar o TLS de maneira a manter o navegador feliz.

    
por 08.01.2016 / 03:16
3

Existe uma abordagem melhor para lidar com o domínio do apex em vez de hospedar a instância 'redirecionador' no EC2.

Você pode hospedar um site estático no Amazon S3, que pode ser configurado para redirecionar suas solicitações para determinado domínio. Se você estiver usando o Route53, existe um tipo de registro "alias" para ajudá-lo a conseguir isso. Outros provedores de DNS têm semelhantes.

Siga este artigo do blog para entrar em detalhes link

O S3 é um serviço tolerante a falhas, então você definitivamente removeria seu SPOF por um custo razoavelmente baixo.

    
por 07.01.2016 / 14:06