Tôi đang tìm cách triển khai Blue / Green với CloudFront .
Có ai có một giải pháp tốt để chuyển từ phân phối CloudFront này sang phân phối khác hay mọi người thực sự chỉ tạo phân phối của họ và sau đó không bao giờ chạm vào nó nữa?
Bản phân phối CloudFront của tôi bao gồm một nguồn gốc S3 cho nội dung tĩnh (javascript, v.v.) và nguồn gốc tùy chỉnh trỏ đến AWS ELB.
Không có thay đổi đối với CloudFront
Trong các trường hợp thông thường, chúng tôi không thực hiện bất kỳ thay đổi nào đối với bản phân phối CloudFront của mình. Chúng tôi phiên bản nội dung tĩnh của chúng tôi trong nguồn gốc S3 bằng cách thay đổi tên của các tệp nội dung tĩnh trong S3 và thực hiện triển khai cho các phiên bản EC2 trong Bộ cân bằng tải đàn hồi (ELB). Tuy nhiên, đôi khi chúng ta cần kiểm tra và thực hiện các thay đổi đối với bản phân phối CloudFront hoặc có những thay đổi đủ quan trọng đối với môi trường của chúng ta mà chúng ta cần chỉ ra ELB mới trong môi trường mới.
Hai bản phân phối CloudFront
Tùy chọn đầu tiên tôi đã thử là có hai Bản phân phối Web CloudFront riêng biệt , một cho môi trường hiện tại hoặc A, môi trường và một cho môi trường mới hoặc B của tôi. Tôi đã cố gắng sử dụng chính sách định tuyến có trọng số Route53 trong đó tôi đã thêm hai bản ghi cho bản ghi www.domain.com Route53 của mình, một bản ghi vào CloudFront Distribution A có trọng số 1 và bản còn lại chỉ vào CloudFront Distribution B với trọng số 0. kế hoạch sẽ là thay đổi các trọng số khi tôi muốn chuyển từ phân phối A sang phân phối B. Tuy nhiên, chỉ một phân phối CloudFront tại một thời điểm có thể có Tên miền thay thế www.domain.com (CNAME) đăng ký hoặc bạn gặp phải lỗi sau:
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)
Phân phối một CloudFront
Tùy chọn thứ hai là giữ một bản phân phối web CloudFront. Tôi có S3 và nguồn gốc tùy chỉnh trỏ đến cả hai môi trường A và B của tôi và sau đó tôi cập nhật Hành vi bộ đệm của CloudFront để trỏ đến nguồn gốc khác khi tôi muốn chuyển từ môi trường này sang môi trường khác. Điều này cực kỳ lộn xộn vì các bản cập nhật này mất 15-60 phút, không thể thấy được tiến trình của bản cập nhật và tùy thuộc vào bản chất thay đổi của bạn, bạn có thể cần phải theo dõi điều đó với Vô hiệu hóa CloudFront để bạn không phục vụ nội dung được lưu trong bộ nhớ cache từ môi trường cũ cùng với nội dung mới.
Cảm ơn lời khuyên của bạn!