允许在 AWS 上托管的多租户 SaaS 平台上的租户自定义域名



概述

我正在 AWS 上构建一个多租户 SaaS 平台。目前的部署架构非常简单。

  • 我有一个ELB(所有流量都在这里)
  • 我有几个EC2实例(托管我的java + angle应用程序)。这位于链接到 ELB 的自动缩放组下。
  • 我在 RDS 中有一个 EC2 与之通信的 MySQL 集群。

一切都在 VPC 中,EC2 和 RDS 位于私有子网中,

问题

我希望我的客户(租户)拥有自己的域名。例如,假设现在我的应用程序可以通过 URL http://xyz-elb.amazon.aws.com

我想让我的客户能够使用

  • http://tenant1.com
  • http://tenant2.com

    等等。我知道这是可能的,因为我在不同的多租户 SaaS 应用程序中看到了这一点。

到目前为止,我所做的研究:我阅读了可以完成它的反向代理,但是,我没有得到任何可靠的链接。尝试阅读有关HAProxy的信息,但我觉得我走错了方向。

我需要什么

  • 关于域映射不同方法的专家意见

  • 解决此特定问题的资源列表和链接

  • 你们任何很酷的人的任何实践经验或案例研究

  • 一个便宜的解决方案(我不想通过亚马逊API网关/Route53政策,这似乎不符合我的需求)

非常感谢您阅读我的问题。并提前感谢您为此做出的努力。

只需在每个租户域中创建 DNS 别名记录,指向你的应用 ELB DNS 名称。

我更喜欢将 ELB DNS 名称别名设置为我的服务域,然后将租户域别名化为该名称。例:

app.example.com 在别名 my-loadbalancer-1234567890.us-west-2.elb.amazonaws.com

然后在我的租户 DNS 中:

app.tenant1.com 在别名 app.example.com 中。

此别名允许您根据需要更改 ELB 终端节点,而无需更改所有客户端的 DNS 记录。

最新更新