Назад | Перейти на главную страницу

База данных за балансировщиком нагрузки AWS?

Я поставил балансировщик нагрузки перед example.com и я считаю, что весь трафик для *.example.com переходит к балансировщику нагрузки

Моя база данных называется db.example.com и слушая на 5432

Балансировщик нагрузки приложений имеет настройки порта только для 80 и 443 ..

Как мне направить db.example.com трафик к экземпляру ec2, который слушает 5432?

У меня одна БД, мне не нужна база данных балансировки нагрузки, просто нужно ее достичь.

Как правило, вы не можете сбалансировать нагрузку базы данных с помощью простого балансировщика нагрузки на основе подключения и без дополнительной разработки. Если вы попытаетесь сделать это, ваши записи будут попадать в случайную базу данных, и они выйдут из синхронизации. Может быть, это сработает, если в ваших базах данных настроена синхронизация, но для этого нужно правильно продумать и разработать, а не просто устанавливать балансировщик нагрузки перед базой данных. Вы не описали какой-либо дизайн в этой области, поэтому я предполагаю, что он не рассматривался.

Ваши лучшие варианты, о которых я знаю (и я не эксперт по базам данных):

  • Служба реляционной базы данных с репликами для чтения. Все ваши записи идут к мастеру, ваши чтения могут вручную распределяться по подчиненным.

  • Используйте собственные функции базы данных. Не уверен, можно ли для этого использовать RDS. У Oracle есть хорошие возможности в этой области по цене.

Обратите внимание, что RDS multi-AZ не для масштабирования, а для надежности.

Я быстро поискал и обнаружил, что вы можете использовать HAProxy или ProxySQL для MySQL.

Я предполагаю, что к БД должны иметь доступ только серверы приложений, и это негласная вещь. Серверы приложений могут напрямую подключаться к серверу БД, и ему не нужно проходить через балансировщик нагрузки. Сколько у вас серверов БД - один или несколько?