Я шукаю спосіб зробити Blue / Green розгортання з CloudFront .
Хтось має гарне рішення для переходу від одного дистрибутива CloudFront до іншого чи все справді просто створює свій дистрибутив, а потім ніколи не торкається його знову?
Мій розподіл CloudFront складається з одного джерела S3 для статичного вмісту (javascript тощо) та спеціального джерела, що вказує на AWS ELB.
CloudFront не має змін
За звичайних обставин ми взагалі не вносимо жодних змін у наш дистрибутив CloudFront. Ми модифікуємо наш статичний вміст у поколінні S3, змінюючи ім’я файлів статичного вмісту в S3 та робимо розгортання в екземпляри EC2 за допомогою Elastic Load Balancer (ELB). Однак бувають випадки, коли нам потрібно тестувати та вносити зміни до самого розповсюдження CloudFront або вносити достатньо значні зміни в наше середовище, що нам потрібно вказати на новий ELB в новому середовищі.
Дві дистрибуції CloudFront
Перший варіант, який я спробував, - це мати два окремі веб-дистрибуції CloudFront , один для мого поточного або A середовища, а інший для мого нового або B середовища. Я спробував використати зважену політику маршрутизації Route53, де я додав два записи для свого запису www.domain.com Route53, один вказує на розподіл CloudFront A масою 1, а інший вказує на розподіл CloudFront B з вагою 0. План полягає в тому, щоб змінити ваги, коли я хочу перейти від дистрибутива А до дистрибутива В. Однак, лише один розподіл CloudFront одночасно може зареєструвати альтернативні доменні імена домену (CNAME) www.domain.com або ви отримаєте таку помилку:
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)
Один розподіл CloudFront
Другий варіант - зберегти один веб-дистрибутив CloudFront. У мене є S3 та нестандартне джерело, яке вказує на мої середовища A та B, а потім я поновлюю поведінку кеша CloudFront, щоб вказати на інше походження, коли я хочу перейти з одного середовища в інше. Це надзвичайно безладно, тому що ці оновлення займають 15-60 хвилин, не спостерігається видимість прогресу оновлення, і залежно від характеру змін вам може знадобитися дотримуватися цього питання з Invalidation CloudFront, щоб ви не розміщували кешований вміст від старого середовища разом з новим змістом.
Дякую за вашу пораду!