乐趣区

关于amazon:通过自定义域名-SSL-的方式访问-Amazon-MQ-for-RabbitMQ

引言:

个别为了解决利用解耦,异步解决,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性的架构;咱们会引入音讯队列中间件来欠缺架构设计。

对于须要消息传递协定的应用程序,包含 JMS、NMS、AMQP、STOMP、MQTT 和 WebSocket,Amazon 提供了 Amazon MQ。这是一个针对 Apache ActiveMQ 和 RabbitMQ 的托管音讯代理服务,能够更轻松地在云中设置和操作音讯代理。

Amazon MQ 提供了两个托管代理部署连贯选项:公共代理和公有代理。公共代理接管互联网可拜访的 IP 地址,而私人代理仅从其专有网络子网中的相应 CIDR 范畴接管公有 IP 地址。在某些状况下,出于平安目标,客户可能更违心将代理搁置在公有子网中,但也容许通过长久公共端点(例如其公司域的子域,如“mq”)拜访代理。

这里介绍了如何在公有 VPC 中,通过 Route53、NLB、ACM 相结合,通过 SSL 的形式拜访自定义域名指向的 RabbitMQ 代理。

亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注 / 珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!
  1. 部署在 EC2/ECS/EKS 中的客户端服务尝试应用自定义域名连贯 RabbitMQ Broker.
  2. 通过 Route53 将自定义域名解析到 NLB 的 DNS domain。
  3. 客户端应用 Amazon 证书管理器(ACM)提供的安全套接字层(SSL)证书创立到 NLB 的传输层平安(HTTPS/AMQPS)连贯。
  4. NLB 从指标组中抉择一个衰弱的端点,并创立一个独自的 SSL 连贯。这在客户端和代理之间提供了平安的端到端 SSL 加密消息传递。

一、前提

要构建此架构,首先您须要一个 VPC,每个可用区域一个 Private Subnet,以及一个用于堡垒主机的 Public subnet(如果须要)。

本演示 VPC 应用 10.1.0.0/16 CIDR 范畴。此外,您必须为您的 MQ Broker 创立自定义平安组。您必须设置此平安组,以容许从网络负载平衡器到 RabbitMQ Broker 的流量。平安组须要凋谢 5671(AMQP 端口)和 443(web 控制台端口)的流量。

二、创立 AmazonMQ Broker

设置网络子网后,增加 Amazon MQ 代理:

  1. 在 Amazon MQ 主页上抉择创立代理。
  2. 切换 RabbitMQ 旁边的单选按钮,而后抉择 Next。
  3. 抉择单实例代理(用于开发环境)或集群部署(用于生产环境)的部署模式。
  4. 在配置设置中,指定代理名称和实例类型,以及管理员用户的用户名和明码。
  1. 确认代理引擎版本为 9.16 或更高版本,并将拜访类型设置为公有拜访。
  2. 抉择您的 VPC 和子网,并抉择刚创立的平安组。
  3. 按需抉择版本升级及保护窗口,抉择下一步并创立 Broker。

三、获取 RabbitMQ Broker 的 IP 地址

在配置 NLB 的指标组之前,必须获取 Broker 的 IP 地址。Amazon MQ 在每个子网中创立一个 VPC 端点,其动态地址在删除代理之前不会更改。

  1. 导航到 Broker 的详细信息页面并滚动到连贯面板。
  2. 查找 EndPoint 的残缺域名, 它的格局相似于 broker-id.mq.region.amazonaws.com
  3. 在本地客户端上关上命令终端。
  4. 应用 host(Linux)或 nslookup(Windows)命令检索“A”记录值。
  5. 为当前的 NLB 配置步骤记录这些值。

四、配置负载平衡器的指标组

下一步配置负载平衡器的指标组。您应用代理的公有 IP 地址作为 NLB 的指标。创立一个指标组,将指标类型抉择为 IP,并确保为每个所需的端口以及您的代理所在的专有网络抉择 TLS 协定。

五、创立网络负载平衡器

创立一个网络负载平衡器。端口 5671(AMQP)上有 TLS 侦听器,将流量路由到代理的 VPC 和 Subnet。您抉择创立的指标组,为 NLB 和代理之间的连贯抉择 TLS。为了容许客户端平安地连贯到 NLB,请为在 Route53 中注册的子域抉择一个 ACM 证书(例如“mq.yourdomain.com”)。

要理解 ACM 证书设置,请在此处浏览无关该过程的更多信息。确保 ACM 证书在与 NLB 雷同的区域中设置,或者该证书未显示在下拉菜单中。

六、配置 Route53

最初,在 Route53 配置为在您抉择的子域为 NLB 提供流量服务:

转到 Route53 托管区域并创立新的子域记录集,例如 mq.test.youdomain.com,它与您先前创立的 ACM 证书相匹配。

在“类型”字段中,抉择“A–IPv4 地址”,而后为别名抉择“是”。这容许您抉择 NLB 作为别名指标。

从 alias target 菜单中选择刚刚创立的 NLB 并保留记录集。

当初,调用方能够在 RabbitMQ 连贯字符串中应用自定义域名。此性能改善了开发人员的体验,并在重建集群时升高了操作老本。因为您在 NLB 的指标组中增加了多个 VPC 端点(每个子网一个),因而该解决方案具备多 AZ 冗余。

七、应用 RabbitMQ 客户端过程进行测试

整个过程能够应用任何 RabbitMQ 客户端过程进行测试。一种办法是启动 Docker 官网镜像并与本地客户端连贯。服务文档还提供了用于验证、公布和订阅 RabbitMQ 通道的示例代码。

要登录到代理的 RabbitMQ web 控制台,有三个选项。依据平安组规定,仅容许来自专有网络外部的流量流向代理:

  1. 应用从公司网络到专有网络的 VPN 连贯。许多客户应用此选项,但对于疾速测试,有一种更简略、更具老本效益的办法。
  2. 通过路由 53 子域连贯到代理的 web 控制台,这须要在现有 NLB 上创立独自的 web 控制台端口侦听器(443),并为代理创立独自的 TLS 指标组。
  3. 应用 bastion 主机将流量代理到 web 控制台。

八、总结

在本文中,您将在公有子网中构建一个高可用的 Amazon MQ Broker。您能够通过将代理置于高度用可扩大的 NLB 之后来分层治理。并且通过 Route53 解析到 NLB 的形式,实现采纳自定义域名 +SSL 的形式拜访 Amazon MQ Broker。

本篇作者

孙权
Amazon ProServe Senior DevOps 参谋,致力于解决企业客户 DevOps 征询和施行,在云原生 /DevOps/ 微服务框架 / 性能优化和减速研发效力畛域有深入研究的激情

曹赫洋
Amazon 业余服务团队 DevOps 参谋。次要负责 DevSecOps 征询和技术施行。在 DevSecOps 减速企业数字化转型方面畛域领有多年教训,对私有云、DevSecOps、基于云原生的微服务架构、麻利减速研发效力等有深刻的钻研和激情。

文章起源:https://dev.amazoncloud.cn/column/article/6309bea3e0f88a79bcf…

退出移动版