具有单个sqs队列的蓝绿色部署

时间:2017-05-13 15:01:26

标签: amazon-web-services amazon-sqs blue-green-deployment

目前,我们有一个处理来自外部JMS消息队列的消息的系统。通过我们的蓝绿部署,堆栈激活的一部分是修改安全组以启用/禁用连接到外部JMS队列所需的规则,以便只有活动堆栈才能处理消息。这适用于我们当前的环境,但外部队列不可靠,所以我们希望用SNS主题+ SQS队列替换它。我们计划拥有一个订阅SNS主题的静态SQS队列。我们遇到的问题是如何启用/禁用从SQS队列读取的访问权限,以便我们可以执行蓝绿色,并且一次只能有1个堆栈能够从队列中读取?

会有多个实例角色,部分激活是修改角色以获得读取SQS工作的权限吗?有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

您应该为每个新部署创建SQS队列。但是SNS是静态的。

因此,您正在运行版本v1。您有SNS主题“ SNS”和SQS队列“ v1”,已订阅“ SNS”。

然后,您使用新的SQS“ v2”部署了新版本。因此,您必须将其订阅为“ SNS”。并取消订阅“ SNS”中的“ v1”。 您可以在此切换期间收到重复数据。我建议使用重复数据删除,例如Elasticache