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

Управление хостами и iptables в масштабируемой архитектуре

Допустим, у меня есть балансировщик нагрузки перед 3 серверами приложений.

Допустим, у меня также есть эти службы, доступные на определенных IP-адресах:

Итак, это 6 узлов с 6 разными IP-адресами. Естественно, каждый из трех моих серверов приложений должен взаимодействовать с этими 6 серверами, указанными выше.

Затем, чтобы было немного круче, у меня также есть 3 рабочих сервера. И каждый рабочий также общается с указанными выше 6 серверами, но, к счастью, работникам и приложениям никогда не нужно разговаривать друг с другом.

Теперь самое интересное. Все на Digital Ocean VPS. Это означает: у вас нет частной сети или частных IP-адресов. У вас есть только отдельный случайный IP-адрес на каждой машине. Вы не можете их замаскировать или что-то в этом роде.

Итак, чтобы создать безопасную среду, мне пришлось бы настроить некоторые iptables. Например:

  1. Открытые серверы приложений доступны для сервера балансировки нагрузки
  2. Откройте Redis, ES, PG и все серверы memcached, чтобы получить доступ к IP-адресу каждого приложения и IP-адресу каждого рабочего.

Это означает, что каждый раз, когда я добавляю приложение или работника, я должен также перенастроить iptables на этих шести серверах, чтобы приветствовать новое приложение или работника.

Есть ли способ упростить этот тип настройки?

Я подумал - а что, если бы между приложениями / рабочими и указанными выше шестью машинами был шлюз. Таким образом, все взаимодействие всегда будет происходить через сервер шлюза, и когда я добавляю новое приложение или работника, мне не нужно было бы учить 6 серверов пропускать его.

Если бы я пошел по этому пути, то я бы надеялся, что небольшой сервер на 512 МБ сможет справиться с этим, и почти не будет никаких накладных расходов. Или бы там?

Пожалуйста, помогите найти лучший способ справиться с этой ситуацией. Буду признателен за как можно более конкретный ответ. Я не думаю, что это слишком конкретно, потому что эта общая архитектура очень распространена, и Digital Ocean становится все более популярной. Конкретное решение здесь многие бы высоко оценили.

Если кто-то еще ищет здесь решение, нет никакого решения. Вы должны управлять отношениями «многие ко многим» между узлами и перенастраивать их соответствующие iptables и хосты. Подход с использованием шлюзовой машины мог бы работать, но я не пошел с ним.