1

Так что я пытаюсь развернуть приложение, которое открывает два порта; один - это простой HTTP-сервер, другой используется для приложения для связи с другими экземплярами и объединения в кластеры. Вы догадались, это обычное исследование.Открыть порт докера на Amazon ElasticBeanstalk

Таким образом, используя Dockerfile и Dockerrun.aws.js или, возможно, некоторые другие файлы конфигурации, которые я могу добавить в дистрибутив, как можно сказать, что EB сопоставляет порт 9300 с частным сетевым интерфейсом?

Мой текущий Dockerfile имеет

EXPOSE 9200 9300 

Но из documentation сказал, что EB будет подключить только Nginx обратный прокси-сервер к первому порту, и ничто не говорит о том, как отобразить другие порты без Nginx

Благодаря

ОБНОВЛЕНИЕ # 1:

Использование .ebextensions можно выполнить любую команду оболочки. Я пытаюсь отобразить порт через iptables, однако все еще есть некоторые проблемы.

UPDATE # 2: После двух дней добычи знаний и рытье эс пещеры я был в состоянии сопоставить порты для размещения обнаружения ES машины и установки. Тем не менее, ES до сих пор не хотят, чтобы создать кластер, на этот раз из-за

disconnecting from [...] due to explicit disconnect call 

UPDATE # 3: я не был в состоянии сделать ElasticSearch работать с контейнерами EBT докер, но я сделал его работу без докер непосредственно на экземпляре EBT. Здесь находится рабочая конфигурация https://github.com/vladmiller/elasticsearch-beanstalk

+0

Я бы порекомендовал переехать в Elastic Container Service - вы получите необходимую настройку за счет упрощенной простоты для автоматического масштабирования и развертывания. Я попробовал перед тем, как переключиться. – sjagr

+0

@sjagr в этом пункте Я уже выяснил большинство вопросов с EB, однако теперь у меня есть особые проблемы ES –

+0

@ VladMiller Вы когда-нибудь это понимали? Я столкнулся с подобной проблемой, хотя без Docker/EB. Он отлично работал, прежде чем я обновился с ES 1.7.4 до 2.1.1. – Zenexer

ответ

1

Я не был в состоянии сделать ElasticSearch обнаружить другие узлы на окружающую среду EBT Докер, но я сделал его работу, используя экземпляр самого

Рабочая конфигурация https://github.com/vladmiller/elasticsearch-beanstalk

2

Elasticsearch привязывается к локальному хосту по умолчанию (2.x). Используйте эти настройки в вашем elasticsearch.yml для привязки к физическому интерфейсу. Имейте в виду, что сделать ваш сервер Elasticsearch общедоступным в Интернете небезопасным, граничащим с самоубийством, поэтому убедитесь, что у вас хороший брандмауэр и вы слушаете только интерфейс LAN.

network.bind_host: 0.0.0.0 
network.publish_host: _non_loopback_ 

Если вы используете cloud-aws плагин для автоматического обнаружения на AWS/EC2, вы можете автоматически выбрать IP-адрес вашего VPC интерфейса:

network.bind_host: 0.0.0.0 
network.publish_host: _ec2_ 

Вполне возможно, что _ec2_ могут быть устаревшими в в какой-то момент и заменен на _ec2:privateIpv4_.

Источники:

+0

Это была совершенно другая проблема, вот рабочая конфигурация для EBT и Docker https://github.com/vladmiller/elasticsearch-beanstalk –

Смежные вопросы