S3静态网站/ w蓝绿色部署

时间:2020-02-02 20:27:01

标签: amazon-web-services amazon-s3 amazon-cloudfront blue-green-deployment

我无法为s3静态网站提供蓝绿色。我在给定存储桶中发布了该网站的版本,该网站的发布位置为:

  • Cloudfront发行版
  • 然后沿53号公路
  • 和另一个CDN(用于解析DNS的公司)可以访问互联网。

我正在尝试一些“计算”解决方案,例如ALB,但是我没有成功。

我遇到的主要困难是,当我用新地址更新CloudFront时,DNS复制时间很长,因此很难将将来的版本回滚到旧的版本(考虑到为此出版物使用不同的存储桶)。

有没有人经历过这个问题或有任何解决办法的想法?

3 个答案:

答案 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