Je cherche un moyen de faire des déploiements Blue / Green avec CloudFront .
Quelqu'un a-t-il une bonne solution pour passer d'une distribution CloudFront à une autre ou tout le monde crée-t-il vraiment sa distribution et ne la touche plus jamais?
Ma distribution CloudFront se compose d'une origine S3 pour le contenu statique (javascript, etc.) et d'une origine personnalisée pointant vers un ELB AWS.
Aucune modification de CloudFront
Dans des circonstances normales, nous n'apportons aucune modification à notre distribution CloudFront. Nous mettons à jour notre contenu statique dans l'origine S3 en modifiant le nom des fichiers de contenu statique dans S3 et effectuons des déploiements roulants vers des instances EC2 sous Elastic Load Balancer (ELB). Cependant, il y a des moments où nous devons tester et apporter des modifications à la distribution CloudFront elle-même ou apporter des modifications suffisamment importantes à notre environnement pour que nous devons pointer vers un nouvel ELB dans un nouvel environnement.
Deux distributions CloudFront
La première option que j'ai tentée était d'avoir deux distributions Web CloudFront distinctes , une pour mon environnement actuel, ou A, et une pour mon nouvel environnement, ou B,. J'ai tenté d'utiliser une stratégie de routage pondérée Route53 où j'ai ajouté deux enregistrements pour mon enregistrement Route53 www.domain.com, l'un pointant vers CloudFront Distribution A avec un poids de 1 et l'autre pointant vers CloudFront Distribution B avec un poids de 0. Le le plan serait de changer les pondérations lorsque je souhaite passer de la distribution A à la distribution B. Cependant, une seule distribution CloudFront à la fois peut avoir les noms de domaine alternatifs (CNAME) www.domain.com enregistrés ou vous obtenez l'erreur suivante:
com.amazonaws.services.cloudfront.model.CNAMEAlreadyExistsException: One or more of the CNAMEs you provided are already associated with a different resource. (Service: AmazonCloudFront; Status Code: 409; Error Code: CNAMEAlreadyExists; Request ID: ef84a5f0-44e7-11e5-9315-0ba167bb108a)
Une distribution CloudFront
La deuxième option consiste à conserver une distribution Web CloudFront. J'ai des origines S3 et personnalisées pointant vers mes environnements A et B, puis je mets à jour le comportement du cache CloudFront pour pointer vers l'autre origine lorsque je veux passer d'un environnement à un autre. Ceci est extrêmement compliqué car ces mises à jour prennent 15 à 60 minutes, il n'y a pas de visibilité sur la progression de la mise à jour et selon la nature de votre changement, vous devrez peut-être suivre cela avec une invalidation CloudFront afin de ne pas servir de contenu mis en cache de l'ancien environnement avec un nouveau contenu.
Merci pour vos conseils!