Требуется публичный IP-адрес для kafka, работающий на EC2

У нас есть kafka и zookeeper, установленные на одном экземпляре AWS EC2. У нас есть производители и потребители кафки, работающие на отдельных экземплярах ec2, которые находятся на одном VPC и имеют ту же группу безопасности, что и экземпляр kafka. В конфигурации производителя или потребителя мы используем внутренний IP-адрес сервера kafka для подключения к нему.

Но мы заметили, что мы должны упомянуть публичный IP-адрес сервера EC2 как рекламируемые.listeners, позволяющие производителям и потребителям подключаться к серверу Kafka:

advertised.listeners=PLAINTEXT://PUBLIC_IP:9092

Кроме того, мы должны «белить» публичные IP-адреса и открывать трафик на порту 9092 каждого из наших серверов ec2, на которых работают производители и потребители.

Мы хотим, чтобы трафик проходил с использованием внутренних IP-адресов. Есть ли способ, которым нам не нужно присваивать белые публичные IP-адреса и открывать трафик на порт 9092 для каждого из наших серверов, на которых работает производитель или потребитель?

Всего 2 ответа


Если вы не хотите открывать доступ ко всем для одного из ваших серверов, я бы рекомендовал добавить подходящий высокопроизводительный веб-сервер, такой как nginx или Apache HTTPD, перед серверами приложений, выступающими в качестве обратного прокси. Таким образом, вы также можете добавить SSL-шифрование, и ваш сервер останется в частной сети, пока будет открыт только веб-сервер. Это очень просто, и вы можете найти множество руководств по настройке. Как этот: http://webapp.org.ua/sysadmin/setting-up-nginx-ssl-reverse-proxy-for-tomcat/


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


Есть идеи?

10000