允许在 AWS 上托管的多租户 SaaS 平台上为租户自定义域名
Allowing custom domain names for tenants on multi tenant SaaS platform hosted on AWS
概览
我正在 AWS 上构建多租户 SaaS 平台。现在的部署架构非常简单。
- 我有ELB(所有流量都落在这里)
- 我的 EC2 实例很少(托管我的 java + angular 应用程序)。这是在 linked 到 ELB 的自动缩放组下。
- 我在 RDS 中有一个 MySQL 集群,EC2 与之通信。
一切都在 VPC 中,EC2 和 RDS 在私有子网中,
问题
我希望我的客户(租户)拥有自己的域名。例如假设现在可以在 URL http://xyz-elb.amazon.aws.com
访问我的应用程序
我想让我的客户使用
访问应用程序
- http://tenant1.com
-
等等。我知道这是可能的,因为我在不同的多租户 SaaS 应用程序中看到过这种情况。
我目前所做的研究:
我读到了可以完成它的反向代理,但是我没有得到任何可靠的 link。尝试阅读有关 HAProxy 的内容,但我觉得我走错了方向。
我需要的
关于域映射的不同方法的专家意见
列出和 Link 解决此特定问题的资源
各位帅哥的任何实践经验或案例研究
一个便宜的解决方案(我不想通过 Amazon API 网关/Route53 策略,这似乎不符合我的需要)
非常感谢您阅读我的问题。并在此先感谢您对此做出的回复。
只需在每个租户域中创建一个 DNS CNAME 资源记录,指向您的应用程序 ELB DNS 名称。
我更喜欢将 ELB DNS 名称作为我的服务域的别名,然后将租户域作为它的别名。示例:
app.example.com IN CNAME my-loadbalancer-1234567890.us-west-2.elb.amazonaws.com
然后在我的租户 DNS 中:
app.tenant1.com IN CNAME app.example.com.
此别名允许您根据需要更改 ELB 端点,而无需更改所有客户端的 DNS 记录。
概览
我正在 AWS 上构建多租户 SaaS 平台。现在的部署架构非常简单。
- 我有ELB(所有流量都落在这里)
- 我的 EC2 实例很少(托管我的 java + angular 应用程序)。这是在 linked 到 ELB 的自动缩放组下。
- 我在 RDS 中有一个 MySQL 集群,EC2 与之通信。
一切都在 VPC 中,EC2 和 RDS 在私有子网中,
问题
我希望我的客户(租户)拥有自己的域名。例如假设现在可以在 URL http://xyz-elb.amazon.aws.com
访问我的应用程序我想让我的客户使用
访问应用程序- http://tenant1.com
-
等等。我知道这是可能的,因为我在不同的多租户 SaaS 应用程序中看到过这种情况。
我目前所做的研究: 我读到了可以完成它的反向代理,但是我没有得到任何可靠的 link。尝试阅读有关 HAProxy 的内容,但我觉得我走错了方向。
我需要的
关于域映射的不同方法的专家意见
列出和 Link 解决此特定问题的资源
各位帅哥的任何实践经验或案例研究
一个便宜的解决方案(我不想通过 Amazon API 网关/Route53 策略,这似乎不符合我的需要)
非常感谢您阅读我的问题。并在此先感谢您对此做出的回复。
只需在每个租户域中创建一个 DNS CNAME 资源记录,指向您的应用程序 ELB DNS 名称。
我更喜欢将 ELB DNS 名称作为我的服务域的别名,然后将租户域作为它的别名。示例:
app.example.com IN CNAME my-loadbalancer-1234567890.us-west-2.elb.amazonaws.com
然后在我的租户 DNS 中:
app.tenant1.com IN CNAME app.example.com.
此别名允许您根据需要更改 ELB 端点,而无需更改所有客户端的 DNS 记录。