Szukam sposobu na wdrożenie niebieski / zielony z CloudFront .
Czy ktoś ma dobre rozwiązanie, aby przejść z jednej dystrybucji CloudFront do drugiej, czy też wszyscy tak naprawdę tworzą swoją dystrybucję i nigdy więcej jej nie dotykają?
Moja dystrybucja CloudFront składa się z jednego źródła S3 dla treści statycznej (javascript itp.) I niestandardowego źródła wskazującego na ELB AWS.
Brak zmian w CloudFront
W normalnych okolicznościach nie wprowadzamy żadnych zmian w naszej dystrybucji CloudFront. Wersję naszej zawartości statycznej tworzymy w źródle S3, zmieniając nazwy plików zawartości statycznej w S3 i wykonujemy cykliczne wdrożenia do instancji EC2 w ramach Elastic Load Balancer (ELB). Są jednak chwile, kiedy musimy przetestować i wprowadzić zmiany w samej dystrybucji CloudFront lub wprowadzić na tyle istotne zmiany w naszym środowisku, że musimy wskazać nowy ELB w nowym środowisku.
Dwie dystrybucje CloudFront
Pierwszą opcją, którą próbowałem, było utworzenie dwóch oddzielnych dystrybucji internetowych CloudFront , jednej dla mojego obecnego środowiska A lub jednej dla mojego nowego środowiska B. Próbowałem użyć zasady routingu ważonej Route53 , w której dodałem dwa rekordy dla mojego rekordu Route53 www.domain.com, jeden wskazuje na CloudFront Distribution A o wadze 1, a drugi wskazuje na CloudFront Distribution B o wadze 0. The planuję zmienić wagi, gdy chcę przejść z dystrybucji A do dystrybucji B. Jednak tylko jedna dystrybucja CloudFront może mieć jednocześnie zarejestrowaną alternatywną nazwę domeny www.domain.com (CNAME) lub pojawi się następujący błąd:
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)
Jedna dystrybucja CloudFront
Drugą opcją jest utrzymanie jednej dystrybucji internetowej CloudFront. Mam S3 i niestandardowe źródła wskazujące zarówno na moje środowiska A, jak i B, a następnie aktualizuję zachowanie pamięci podręcznej CloudFront, aby wskazywało na inne źródło, gdy chcę przejść z jednego środowiska do drugiego. Jest to bardzo nieuporządkowane, ponieważ te aktualizacje trwają 15-60 minut, nie ma wglądu w postęp aktualizacji, a w zależności od charakteru zmiany konieczne może być kontynuowanie jej za pomocą Inwalidacji CloudFront, aby nie wyświetlać zawartości pamięci podręcznej ze starego środowiska wraz z nową zawartością.
Dzięki za radę!