Приложение, запущенное в Настройки на ЕВ отказывается от подключения к собственн
У меня есть веб-приложение Play 2, которое я развертываю в Elastic Beanstalk с помощью Docker. В этом веб-приложении я запускаю кластер Akka. Начальная процедура включает добавление всех узлов в группу автоматического масштабирования в качестве начальных узлов (включая его самого). При первом развертывании в EB я указываю развернуть в VPC (я выбираю только одну зону доступности).
Когда я запускаю приложение и запускаю кластер, я получаю следующее сообщение:
AssociationError [акка.tcp://cluster@localhost:2551] - > [акка.tcp://cluster@172.31.13.25:2551]: ошибка [неверный адрес: akka.tcp://cluster@172.31.13.25:2551] [ акка.дистанционный.Invalidassocation: неверный адрес: akka.tcp://cluster@172.31.13.25:2551 Вызвано: акка.дистанционный.транспорт.Transport$InvalidAssociationException: отказано в подключении: /172.31.13.25: 2551
Где 172.31.13.25-IP экземпляра EC2, а 2551-порт.
В моем Dockerfile у меня есть "EXPOSE 9000 2551". В группе безопасности EC2 я включил весь входящий трафик to
0.0.0.0/0 (и весь исходящий трафик). В Сети VPC ACL (и группах безопасности) я также открыл для всего трафика.
Это мой Dockerfile
FROM dockerfile/java:latest
MAINTAINER a <a@b.de>
EXPOSE 9000 2551
ADD files /
WORKDIR /opt/docker
RUN ["chown", "-R", "daemon", "."]
USER daemon
ENTRYPOINT ["bin/myapp"]
CMD []
Почему мой экземпляр EC2 отказывается от соединения с самим собой на порту 2551?
1 ответ:
Оказывается, что на данный момент это невозможно с помощью Docker на эластичном бобовом стебле. Это, однако, возможно с помощью Tomcat.
С помощью play / activator можно развернуть файл WAR. Путем инъекции следующего .файл конфигурации ebextensions в файл war, я смог получить дополнительный порт, открытый между экземплярами EC2:
Resources: ExtraPortsSGIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: { "Ref" : "AWSEBSecurityGroup" } IpProtocol: "tcp" FromPort: "2551" ToPort: "2551" SourceSecurityGroupId: { "Ref" : "AWSEBSecurityGroup" }