Tengo dificultades para proporcionar un bluegreen para mi sitio web estático s3. Publico una versión del sitio web en un depósito determinado y se expone en:
He probado algunas soluciones de "cómputo", como ALB, pero no tengo éxito.
El problema principal de mi dificultad es el largo tiempo de replicación de DNS cuando actualizo CloudFront con una nueva dirección, lo que dificulta la reversión de una versión futura a la anterior (considerando usar diferentes cubos para esta publicación).
¿Alguien ha pasado por esto o tiene alguna idea de cómo solucionarlo?
AWS recomienda que cree diferentes distribuciones de CloudFront para cada variante azul/verde, cada una con su propio DNS.
De la guía prescriptiva de alojamiento de sitios web estáticos en AWS :
Distintas distribuciones de CloudFront pueden apuntar al mismo depósito de Amazon S3, por lo que no es necesario tener varios depósitos de S3. Cada variación [A/B o azul/verde] almacenaría sus activos en diferentes carpetas en el mismo depósito S3. Configure los comportamientos de CloudFront para que apunten a las respectivas carpetas de Amazon S3 para cada variación A/B o azul/verde.
La otra parte clave de esta estrategia es una característica de Amazon Route 53 llamada enrutamiento ponderado. El enrutamiento ponderado le permite asociar varios recursos con un solo nombre de DNS y resolver DNS de forma dinámica en función de sus pesos relativos asignados. Entonces, si desea dividir su tráfico 70/30 para una prueba A/B, configure los pesos relativos en 70 y 30. Para implementaciones azules/verdes, un script de automatización puede llamar a la API de Amazon Route 53 para cambiar gradualmente los pesos relativos. de azul a verde después de que las pruebas automatizadas validen que la versión verde es saludable.
Alojamiento de sitios web estáticos en AWS: es el documento técnico del año 2016. Se basa en ejemplos que no funcionan y que no funcionan. No puede simplemente configurar dos distribuciones frente a la nube para servir el mismo CNAME para el cambio de dns.
Otra forma es hacer una lógica verde/azul en el borde lambda.