Я обслуживаю HTTP-трафик через порт 80 через ELB. За короткое время все больше клиентов спрашивают меня, каковы наши IP-адреса (для сбора данных). Очевидно, они не могут занести в белый список DNS ELB, только IP-адреса ("Ваши IP-адреса все время меняются, как мы должны с этим справиться!").
Одно из решений, которое я мог придумать, - это отслеживать пул IP-адресов моего ELB и передавать их клиенту в какой-то файл на сервере? Может быть, это обременительно, но мне трудно найти информацию или статьи об опыте с этим, хотя я не могу представить, чтобы это была редкая ситуация.
Есть ли какой-нибудь общий способ предоставить людям пул IP-адресов, который использует мой ELB? Или это просто смешно, и им просто нужно будет использовать какое-то решение, которое может занести в белый список адреса DNS?
Есть ли какой-либо общий способ предоставить людям пул IP-адресов, который использует мой ELB?
Да, ELB построен на EC2, и AWS публикует список всех публичных диапазонов IP используется в определенных регионах. Можно с уверенностью предположить, что каждый IP-адрес, который может использовать ваш ELB, будет попадать в опубликованный диапазон для его региона.
Эти диапазоны IP-адресов могут быть изменены без предварительного уведомления, но AWS поддерживает текущий список в формате JSON, который можно использовать для автоматического ведения белого списка.
С другой стороны, это своего рода избыточность, поскольку весь смысл DNS заключается в предоставлении текущего списка IP-адресов, связанных с именем хоста.
Или это просто смешно, и им просто нужно будет использовать какое-то решение, которое может занести в белый список адреса DNS?
Не совсем смешно, что они не могут занести имя хоста в белый список в качестве любого поддерживающего брандмауэра решения, которое должно либо преобразовывать имя хоста DNS в IP-адрес во время выполнения, а затем соблюдать TTL, чтобы поддерживать этот список в актуальном состоянии, либо работать на уровень 7 и проверьте поле заголовка HTTP хоста.
Что несколько необычно, так это то, что они хотят заносить исходящие соединения в белый список, чаще всего они хотят заносить в белый список входящие соединения (например, когда вы пытаетесь получить доступ к их API), и в этом случае вы можете назначить экземпляры за своим ELB EIP, поэтому, когда ваши серверы приложений инициируют исходящее соединение, они имеют статический IP-адрес (хотя это может помешать автоматическому масштабированию).
В целом ELB не предназначен для всех, он идет на компромиссы, которые обеспечивают значительные преимущества (например, прозрачное масштабирование) в 90% случаев использования за счет меньшинства потенциальных пользователей. Если вам действительно нужен статический IP-адрес для балансировщика нагрузки, тогда OpsWorks создает оркестровку HAProxy почти так же просто.