我无法为s3静态网站提供蓝绿色。我在给定存储桶中发布了该网站的版本,该网站的发布位置为:
我正在尝试一些“计算”解决方案,例如ALB,但是我没有成功。
我遇到的主要困难是,当我用新地址更新CloudFront时,DNS复制时间很长,因此很难将将来的版本回滚到旧的版本(考虑到为此出版物使用不同的存储桶)。
有没有人经历过这个问题或有任何解决办法的想法?
答案 0 :(得分:5)
AWS建议您为每个创建不同的CloudFront发行版 蓝色/绿色变体,每个都有自己的DNS。
摘自Hosting Static Websites on AWS的说明性指导:
不同的CloudFront发行版可以指向相同的Amazon S3 存储桶,因此不需要多个S3存储桶。每个变化 [A / B或蓝色/绿色]会将其资产存储在同一S3存储桶中的不同文件夹下。 配置CloudFront行为以指向各自的Amazon 每个A / B或蓝色/绿色版本的S3文件夹。
该策略的另一个关键部分是Amazon Route 53功能 称为加权路由。加权路由允许您关联 具有单个DNS名称的多个资源并动态解析DNS 根据其相对分配的权重。因此,如果您想分割您的 A / B测试的流量70/30,请将相对权重设置为70, 30.对于蓝色/绿色部署,自动化脚本可以调用Amazon Route 53 API来逐渐将相对权重从蓝色 自动测试确认绿色版本为绿色后变为绿色 健康。
答案 1 :(得分:0)
在 AWS 上托管静态网站 - 这是 2016 年的白皮书。它依赖于不起作用的非工作示例。您不能只设置两个 Cloudfront 发行版来为 dns 切换提供相同的 CNAME。
另一种方法是在 lambda 边上做绿/蓝逻辑。
答案 2 :(得分:0)
您可以使用单个 Cloudfront 分发版、2 个 S3 存储桶和 Lambda@Edge 进行蓝/绿或逐步部署。 您可以找到执行此操作的即用型 cloudformation 模板here。