Я поставил балансировщик нагрузки перед example.com
и я считаю, что весь трафик для *.example.com
переходит к балансировщику нагрузки
Моя база данных называется db.example.com
и слушая на 5432
Балансировщик нагрузки приложений имеет настройки порта только для 80 и 443 ..
Как мне направить db.example.com
трафик к экземпляру ec2, который слушает 5432?
У меня одна БД, мне не нужна база данных балансировки нагрузки, просто нужно ее достичь.
Как правило, вы не можете сбалансировать нагрузку базы данных с помощью простого балансировщика нагрузки на основе подключения и без дополнительной разработки. Если вы попытаетесь сделать это, ваши записи будут попадать в случайную базу данных, и они выйдут из синхронизации. Может быть, это сработает, если в ваших базах данных настроена синхронизация, но для этого нужно правильно продумать и разработать, а не просто устанавливать балансировщик нагрузки перед базой данных. Вы не описали какой-либо дизайн в этой области, поэтому я предполагаю, что он не рассматривался.
Ваши лучшие варианты, о которых я знаю (и я не эксперт по базам данных):
Служба реляционной базы данных с репликами для чтения. Все ваши записи идут к мастеру, ваши чтения могут вручную распределяться по подчиненным.
Используйте собственные функции базы данных. Не уверен, можно ли для этого использовать RDS. У Oracle есть хорошие возможности в этой области по цене.
Обратите внимание, что RDS multi-AZ не для масштабирования, а для надежности.
Я быстро поискал и обнаружил, что вы можете использовать HAProxy или ProxySQL для MySQL.
Я предполагаю, что к БД должны иметь доступ только серверы приложений, и это негласная вещь. Серверы приложений могут напрямую подключаться к серверу БД, и ему не нужно проходить через балансировщик нагрузки. Сколько у вас серверов БД - один или несколько?