CloudFrontでブルー/グリーン展開を行う方法を探しています。
あるCloudFrontディストリビューションから別のCloudFrontディストリビューションに移行するための優れたソリューションを持っている人はいますか?
私のCloudFrontディストリビューションは、静的コンテンツ(javascriptなど)の1つのS3 オリジンと、AWS ELBを指すカスタムオリジンで構成されています。
CloudFrontに変更はありません
通常の状況では、CloudFrontディストリビューションに一切変更を加えません。S3の静的コンテンツファイルの名前を変更してS3オリジンの静的コンテンツをバージョン管理し、Elastic Load Balancer(ELB)の下でEC2インスタンスにローリング展開を行います。ただし、CloudFrontディストリビューション自体をテストして変更する必要がある場合や、新しい環境で新しいELBを指す必要があるほど大幅に変更する必要がある場合があります。
2つのCloudFrontディストリビューション
私が試みた最初のオプションは、2つの個別のCloudFront Web Distributionsを使用することでした。1つは現在の環境(A)に、もう1つは新しい環境(B)に使用します。Route53 加重ルーティングポリシーを使用して、www.domain.com Route53レコードに2つのレコードを追加しました。1つは重みが1のCloudFrontディストリビューションAを指し、もう1つは重みが0のCloudFrontディストリビューションBを指します。ディストリビューションAからディストリビューションBに移動するときに重みを変更する計画です。ただし、www.domain.com 代替ドメイン名(CNAME)を登録できるCloudFrontディストリビューションは一度に1つのみです。そうしないと、次のエラーが発生します。
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)
1つのCloudFrontディストリビューション
2番目のオプションは、1つのCloudFrontウェブディストリビューションを維持することです。AとBの両方の環境を指すS3およびカスタムオリジンがあり、ある環境から別の環境に移動する場合は、CloudFront キャッシュ動作を他のオリジンを指すように更新します。これらの更新には15〜60分かかり、更新の進行状況が見えないため、これは非常に面倒です。変更の性質によっては、キャッシュされたコンテンツを提供しないようにCloudFront無効化を追跡する必要がある場合があります新しいコンテンツとともに古い環境から。
助言ありがとう!