首页 > 解决方案 > S3 静态网站 /w bluegreen 部署

问题描述

我很难为我的 s3 静态网站提供蓝绿。我在给定的存储桶中发布了网站的一个版本,它在以下位置公开:

我尝试了一些“计算”解决方案,比如 ALB,但我没有成功。

我遇到的主要困难是当我用新地址更新 CloudFront 时 DNS 复制时间很长,这使得将未来版本回滚到旧版本变得困难(考虑使用不同的存储桶进行发布)。

有没有人经历过这个或知道如何解决这个问题?

标签: amazon-web-servicesamazon-s3amazon-cloudfrontblue-green-deployment

解决方案


AWS 建议您为每个蓝/绿变体创建不同的 CloudFront 分配,每个变体都有自己的 DNS。

来自在 AWS 上托管静态网站的说明性指南:

不同的 CloudFront 分配可以指向同一个 Amazon S3 存储桶,因此不需要多个 S3 存储桶。每个变体 [A/B 或蓝色/绿色] 将其资产存储在同一个 S3 存储桶中的不同文件夹下。将 CloudFront 行为配置为指向每个 A/B 或蓝/绿变体的相应 Amazon S3 文件夹。

该策略的另一个关键部分是称为加权路由的 Amazon Route 53 功能。加权路由允许您将多个资源与单个 DNS 名称相关联,并根据其相对分配的权重动态解析 DNS。因此,如果您想将流量按 70/30 拆分以进行 A/B 测试,请将相对权重设置为 70 和 30。对于蓝/绿部署,自动化脚本可以调用 Amazon Route 53 API 以逐渐改变相对权重在自动化测试验证绿色版本是健康的之后从蓝色变为绿色。


推荐阅读