Разрешение пользовательских доменных имен для арендаторов на мультитенантной платформе SaaS, размещенной на AWS - PullRequest
0 голосов
/ 15 апреля 2019

Обзор

Я строю мультитенантную платформу SaaS на AWS. Архитектура развертывания на данный момент очень проста.

  • У меня есть ELB (весь трафик здесь падает)
  • У меня мало экземпляров EC2 (хостинг моего приложения java + angular). Это в группе Autoscaling, которая связана с ELB.
  • У меня есть кластер MySQL в RDS, с которым общается EC2.

Все находится в VPC, а EC2 и RDS находятся в частных подсетях,

Задача

Я бы предпочел, чтобы мои клиенты (арендаторы) имели собственное доменное имя. Например, Допустим, сейчас мое приложение доступно по адресу http://xyz -elb.amazon.aws.com

Я бы хотел, чтобы мои клиенты могли получить доступ к приложению с помощью

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

    и так одно. Я знаю, что это возможно, потому что я видел это в разных мультитенантных приложениях SaaS.

Исследования, которые я провел до сих пор: Я читал об обратном прокси, который может это сделать, однако, я не получил никакой надежной ссылки. Пробовал читать о HAProxy, но чувствую, что иду в неправильном направлении.

Что мне нужно

  • Экспертное мнение о различных способах сопоставления доменов

  • Список и ссылка на ресурсы, которые решают эту конкретную проблему

  • Любой практический опыт или тематические исследования любого из вас, крутые парни здесь

  • Дешевое решение (я не хочу использовать политики Amazon API Gateway / Route53, которые не соответствуют моим потребностям)

Большое спасибо за чтение моего вопроса. И заранее спасибо за ваши усилия ответить на это.

1 Ответ

1 голос
/ 15 апреля 2019

Просто создайте запись ресурса DNS CNAME в каждом домене клиента, указав DNS-имя вашего приложения ELB.

Я предпочитаю псевдоним DNS-имени ELB для моего домена службы, а затем для него псевдоним домена клиента. Пример:

app.example.com IN CNAME my-loadbalancer-1234567890.us-west-2.elb.amazonaws.com

Тогда в моем арендаторе DNS:

app.tenant1.com В CNAME app.example.com.

Этот псевдоним позволяет при необходимости изменить конечную точку ELB, не изменяя записи DNS для всех клиентов.

...