Suporte ao redirecionamento de URL HTTPS com uma única distribuição do CloudFront

Eu tenho um domínioformulagrid.com.

Estou usando o AWS S3 para hospedá-lo como um site estático. Meu problema era que eu queria redirecionar o subdomínio www para o domínio simples da seguinte maneira:

https://www.formulagrid.com -> https://formulagrid.comhttp://www.formulagrid.com -> https://formulagrid.com

A Amazon fornece o redirecionamento de URL do bucket S3 para o bucket S3, se ambos estiverem configurados para hospedagem estática de sites.

Então, o que eu tive que fazer foi montar dois baldes:

formulagrid.com - site atualwww.formulagrid.com - existe apenas para redirecionar para o site real

Isso funciona perfeitamente se você estiver operando apenas por HTTP, mas o S3 não tem absolutamente nenhum suporte para HTTPS.

A maneira de usar o HTTPS para se conectar a um site estático do S3 é configurando uma distribuição do CloudFront na frente de um bucket do S3. O CloudFront, no entanto, embora ele forneça HTTPS, existe principalmente para funcionar como uma CDN.

Inicialmente, eu tinha uma única configuração de distribuição do CloudFront na frente do bucket S3 segurando o site real. Tudo parecia operacional: o site foi distribuído pela CDN, tinha HTTPS e HTTP redirecionado para HTTPS.

Houve uma exceção.

https://www.formulagrid.com era uma página completamente quebrada

Depois de tentar encontrar a fonte do erro por um tempo, percebi que era porque não estava passando pela CDN e tentar acessar o S3 por HTTPS não funciona.

Finalmente, o que acabei tendo que fazer foi fornecer outra distribuição para sentar na frente dowww Bucket S3, portanto, era acessível por HTTPS. É aqui que minhas preocupações entram, porque, como mencionei anteriormente, o principal objetivo do CloudFront é ser uma CDN.

Não faz sentido para mim ter uma CDN sentada na frente de um URL que apenas redireciona para outro. Também levanta a questão de saber se eu seria cobrado duas vezes por cada solicitação que atingir owww subdomínio porque atingiu a outra distribuição do CloudFront após ser redirecionado.

Isso é frustrante porque estou tentando fazer uma arquitetura "sem servidor" usando o Lambda e ter que provisionar uma instância do EC2 apenas para reescrever URLs não é algo que eu quero fazer, a menos que seja meu último recurso.

A solução seria trivial se a Amazon oferecesse alguma forma de reescrita de URL ou se o próprio CloudFront redirecionasse, mas nenhuma delas existe até onde eu saiba (informe-me se houver).

Sou novo na AWS, por isso espero que alguém com mais experiência possa me indicar a direção certa.

questionAnswers(1)

yourAnswerToTheQuestion