В настоящее время я занимаюсь сегментацией услуг с использованием поддоменов в существующем приложении.
For example:
www.example.com -> static website delivered from s3
admin.example.com -> ELB1 to ec2 group 1
accounts.example.com -> ELB2 to ec2 group 2
search.example.com -> ELB3 to ec2 group 3
Как видите, для этого мне нужно 3 ELB. С новым балансировщиком нагрузки приложений я надеюсь сделать это на 1 балансировщике нагрузки, используя правила маршрутизации.
For example :
www.example.com -> static website delivered from s3
admin.example.com -> ELB1 to ec2 group 1
accounts.example.com -> ELB1 to ec2 group 2
search.example.com -> ELB1 to ec2 group 3
Я не могу переписать свое приложение для этого. Я надеюсь добиться этого с помощью правил маршрутизации в балансировщике нагрузки приложений.
Я знаю, что могу указать правила для части после домена. Могу ли я указать правила для поддомена?
Хорошие новости: AWS начала поддерживать маршрутизацию на основе хоста.
Теперь у вас может быть маршрутизация на основе хоста.
Документация по созданию правила указывает, что "шаблон пути" в настоящее время является единственным возможным полем, на котором может быть основано правило:
http://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html
Это говорит о том, что "host" или поле с аналогичным именем, обеспечивающее доступ к субдомену, не является вариантом для маршрутизации.
Однако, если приложения в группах EC 1, 2 и 3 могут поддерживать развертывание на произвольных путях, а также в доменах, то можно создать новый домен приложения, скажем, app.example.com, который перенаправит / admin в группу EC 1, / accounts в группу EC 2 и / search в группу EC 3 с помощью ALB, а существующим поддоменам можно было бы указать 301 перенаправление на их соответствующий новый домен + маршрут (admin.example.com -> 301 to app.example.com / admin и т. д.).