Saya mencari cara untuk melakukan penyebaran Biru / Hijau dengan CloudFront .
Adakah yang punya solusi yang baik untuk pindah dari satu distribusi CloudFront ke yang lain atau apakah semua orang benar-benar hanya membuat distribusi mereka dan kemudian tidak pernah menyentuhnya lagi?
Distribusi CloudFront saya terdiri dari satu asal S3 untuk konten statis (javascript, dll) dan asal kustom yang menunjuk ke AWS ELB.
Tidak Ada Perubahan Ke CloudFront
Dalam keadaan normal, kami tidak melakukan perubahan apa pun pada distribusi CloudFront kami sama sekali. Kami versi konten statis kami di asal S3 dengan mengubah nama file konten statis di S3 dan melakukan penggelaran penyebaran ke contoh EC2 di bawah Elastic Load Balancer (ELB). Namun, ada saatnya kita perlu menguji dan membuat perubahan pada distribusi CloudFront sendiri atau memiliki perubahan yang cukup signifikan pada lingkungan kita sehingga kita perlu menunjuk ke ELB baru di lingkungan yang baru.
Dua Distribusi CloudFront
Opsi pertama yang saya coba adalah memiliki dua Distribusi Web CloudFront yang terpisah , satu untuk lingkungan saya saat ini, atau A, dan satu untuk lingkungan saya yang baru, atau B,. Saya mencoba menggunakan kebijakan rute Route53 yang berbobot di mana saya menambahkan dua catatan untuk catatan Route53 www.domain.com saya, satu menunjuk ke CloudFront Distribution A dengan bobot 1 dan yang lainnya menunjuk ke CloudFront Distribution B dengan bobot 0. The rencananya adalah mengubah bobot ketika saya ingin pindah dari distribusi A ke distribusi B. Namun, hanya satu distribusi CloudFront pada suatu waktu yang dapat mendaftarkan www.domain.com Nama Domain Alternatif (CNAME) atau Anda mendapatkan kesalahan berikut:
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)
Satu Distribusi CloudFront
Opsi kedua adalah mempertahankan satu distribusi web CloudFront. Saya memiliki S3 dan asal kustom yang menunjuk ke kedua lingkungan A dan B saya dan kemudian saya memperbarui Perilaku Cache CloudFront untuk menunjuk ke asal lainnya ketika saya ingin pindah dari satu lingkungan ke yang lain. Ini sangat berantakan karena pembaruan ini memakan waktu 15-60 menit, tidak ada visibilitas ke kemajuan pembaruan dan tergantung pada sifat perubahan Anda, Anda mungkin perlu menindaklanjutinya dengan CloudFront Invalidation sehingga Anda tidak menyajikan konten yang di-cache dari lingkungan lama bersama dengan konten baru.
Terima kasih atas saranmu!