Amazon MQ 上的自定义域

And*_*Kew 1 amazon-web-services amazon-route53 amazon-mq

我已经设置了一个 Amazon MQ 代理,并且您生成了一个域 *.mq.eu-west-2.amazonaws.com

生成的是一个非常长的 DN,我想要做的是将其映射到我自己域的子域。

由于所有 AWS 服务都通过 SSL,我还需要该子域的证书,我通常只使用 ACM。

问题是我不能只生成域的 CNAME,然后生成 SSL 证书,因为这不起作用。AWS在route53中提供了所谓的ALIAS A记录,对于其他服务来说可以解决这个问题,但它似乎不适用于Amazon MQ。您获得的选项不包括 MQ 服务。

看看一些 AWS 文档,听起来我需要执行以下操作(但看起来有点矫枉过正)

  1. 创建私人经纪人
  2. 创建网络负载均衡器
  3. 将两者连接在一起(这非常困难,我无法让它工作)
  4. 将我的子域 CNAME 到 NLB

还有其他人对如何最好地解决这个问题有任何建议吗?

And*_*Kew 6

对于任何感兴趣的人,我想我已经弄清楚了这一点。

您不能只设置自定义域的原因是因为该服务允许您能够进行多可用区配置,这意味着有超过 1 个代理。处理超过 1 个且故障转移的最佳方法是使用负载均衡器,所以我认为这就是您需要做的。

我发现你不需要私人经纪人,你也可以使用公共经纪人。在 Amazon MQ 控制台中,您只能获取公共 IP,但如果您转到 EC2 和网络接口,您将找到使用您拥有的公共 IP 的接口,并从中获取私有 IP

您需要在 EC2 的网络接口部分执行完全相同的操作,以获取负载均衡器的私有 IP(将是 1-2 个 IP)。您需要这些私有 IP 来设置负载均衡器和安全组。这些是步骤

  1. 创建 Amazon MQ 实例(公共或私有)
    • 我做过公共经纪人
    • 也是单实例而不是多可用区
    • 已创建安全组,但如果您没有,请在设置之前或设置过程中创建一个
    • 我为您访问代理的 2 个端口添加了规则到安全组
      • 8162 - 用于仪表板 (HTTPS)
      • 61617 - 对于经纪商 (TLS)
  2. 导航到 EC2 -> 网络接口 - 获取 MQ 代理的私有 IP(使用分配给您的实例的公共 IP)。如果您创建私人经纪人,则可以跳过此步骤
  3. 在AWS的ACM服务中为您的子域创建证书。使用电子邮件或 DNS 进行验证
  4. 使用以下设置创建 NLB (TCP):
    • 网络负载均衡器 (TCP/TLS/UDP)
    • 选择一个名字
    • 面向互联网
    • 用于侦听器的 TLS(安全 TCP)协议
    • 端口 61617
    • 可用区与您的代理相同(也具有相同的 VPC)
    • 选择ACM认证
    • 找到您在步骤 3 中创建的证书。您需要先验证它,然后它才会显示在此处
    • 安全策略 - ELBSecurityPolicy-2016-08
    • ALPN 政策:无
    • 新目标组 - 选择名称
    • 目标类型 - IP
    • 协议:TLS
    • 端口:61617
    • 健康检查:协议HTTPS
    • 健康检查:路径/index.html
    • 健康检查:(覆盖)端口:8162
    • 注册您的目标,插入在步骤 2 中找到的经纪商的私有 IP,单击“添加到列表”
    • 审查
    • 结束
  5. 创建 NLB 后,导航到链接到代理的安全组,并将 NLB 专用 IP 添加到安全组(我执行了所有流量,但您可以将其限制为仅需要的 2 个端口,用于代理和运行状况检查), 61617 和 8162
  6. 最后在route53(和别名A记录)中创建一个域记录,将您的子域映射到分配给您的NLB的域名。

这将为您提供使用 SSL 访问您的经纪商的子域。您可以执行完全相同的操作,但使用应用程序负载均衡器 (HTTPS) 来访问控制台。我创建了第二个 LB、一个新的子域和证书以使其正常工作,并且效果很好。两者之间的唯一区别是侦听器使用端口 8162 通过 HTTPS,并且在配置时必须提供 2 个子网,否则其他所有内容都几乎相同(尤其是运行状况检查)

希望这对任何人都有帮助,因为我找不到任何明确解释如何以及为何执行此操作的文档,亚马逊有一些文档,但他们遗漏了很多细节或推理背后为什么你需要做这些事情,以及我从以下位置找到的博客文章他们只谈到与私人经纪人合作。

享受。