У меня простой макет моего сайта, балансировщик нагрузки, расположенный перед 3 серверами приложений, которые запрашивают базу данных. У меня есть 4 виртуальных машины, 3 виртуальные машины для 3 серверов приложений и одна виртуальная машина для базы данных. Разумно ли устанавливать балансировщик нагрузки на той же виртуальной машине, что и база данных? или это должно быть на полностью отдельной виртуальной машине? Возникает вопрос по поводу стоимости.
Нецелесообразно устанавливать LB на той же виртуальной машине, что и база данных, по нескольким причинам:
Имейте в виду, что если это только для тестирования, LB должен быть одной виртуальной машиной, а сеть / база данных может быть на одном компьютере.
Если это для постановки или производства, перейдите на отдельную виртуальную машину. Если у вас есть проблемы с LB, перезапуск всей БД и приложения не имеет смысла.
Это совсем не хорошая идея. Вы можете найти причины в предыдущих постах, я просто добавлю проблему масштабирования и аварийного переключения. Я думаю, вам следует переосмыслить свою архитектуру с учетом SPOF и установить ее так:
Internet ----> Virtual IP ----> LB1 \_____/ APP1 \ /- DB1
\---> LB2 / |- APP2 >--<
\ APP3 / \- DB2
LB1 и LB2 являются балансировщиками нагрузки в настройке аварийного переключения с виртуальным IP (для этого можно использовать Keepalived), поэтому, когда LB1 умирает, LB2 автоматически получает VIP, и все работает. У вас также должна быть репликация настройки БД, поэтому, когда один из серверов БД умирает, приложение использует другой. LB также могут работать как брандмауэры и вообще только «вещи с выходом в Интернет», серверы APP и DB вообще не должны иметь общедоступный IP.