Admite la redirección de URL HTTPS con una única distribución de CloudFront
Tengo un dominioformulagrid.com
.
Estoy usando AWS S3 para alojarlo como un sitio web estático. Mi problema era que quería redirigir el subdominio www al dominio simple de esta manera:
https://www.formulagrid.com -> https://formulagrid.com
http://www.formulagrid.com -> https://formulagrid.com
Amazon proporciona redireccionamiento de URL del depósito S3 al depósito S3 si ambos están configurados para el alojamiento de sitios web estáticos.
Entonces, lo que tuve que hacer fue configurar dos cubos:
formulagrid.com
- sitio web realwww.formulagrid.com
- existe únicamente para redirigir al sitio web realEsto funciona perfectamente bien si está operando solo a través de HTTP, pero S3 no tiene absolutamente ningún soporte para HTTPS.
La forma en que se puede usar HTTPS para conectarse a un sitio web estático de S3 es mediante la configuración de una distribución de CloudFront frente a un bucket de S3. Sin embargo, CloudFront, si bien proporciona HTTPS, existe principalmente para funcionar como CDN.
Inicialmente, tenía una única configuración de distribución de CloudFront frente al cubo S3 que contenía el sitio real. Todo parecía operativo: el sitio se distribuía a través de CDN, tenía HTTPS y HTTP redirigido a HTTPS.
Hubo una excepción.
https://www.formulagrid.com
era una página completamente rotaDespués de tratar de encontrar la fuente del error por un tiempo, me di cuenta de que era porque no estaba pasando por el CDN, e intentar acceder a S3 a través de HTTPS no funciona.
Finalmente, lo que tuve que hacer fue aprovisionar otra distribución para sentarme frente alwww
S3 bucket para que fuera accesible a través de HTTPS. Aquí es donde entran mis preocupaciones porque, como mencioné anteriormente, el objetivo principal de CloudFront es ser un CDN.
No tiene ningún sentido para mí tener una CDN sentada frente a una url que simplemente redirige a otra. También plantea la cuestión de si se me cobraría el doble por cada solicitud que llegue alwww
subdominio porque golpeó la otra distribución de CloudFront después de ser redirigido.
Esto es frustrante porque estoy tratando de hacer una arquitectura "sin servidor" usando Lambda, y tener que aprovisionar una instancia de EC2 solo para reescribir URL no es algo que quiero hacer a menos que sea mi último recurso.
La solución sería trivial si Amazon ofreciera alguna forma de reescritura de URL o si CloudFront sí mismo redirigiera, pero ninguno de estos existen hasta donde yo sé (avíseme si lo hacen).
Soy nuevo en AWS, así que espero que alguien con más experiencia pueda orientarme en la dirección correcta.