Как сделать определенный порт общедоступным в AWS - PullRequest
0 голосов
/ 04 июня 2019

Мой веб-сайт React размещен в AWS на https с использованием классического балансировщика нагрузки и облачного фронта, но теперь мне нужно также открыть порт 1234.Когда я в настоящее время просматриваю свой домен с портом 1234, страница не может быть отображена.Причина, по которой я хочу открыть порт 1234, так как именно здесь запущен мой веб-сервер nodeJ для связи с React.

Я попытался добавить порт 1234 в настройки прослушивателя своего балансировщика нагрузки, хотя это не имело никакого значения.Заметно, что панель проверки работоспособности балансировщика нагрузки, кажется, имеет только одно значение, которое в настоящее время HTTP:80/index.html.Я предполагаю, что балансировщик нагрузки может прослушивать порты 80 и 1234 (даже если он может выполнять проверку работоспособности только на одном номере порта)?

Нужно ли использовать группы действий или что-то еще, чтобы открыть порт?Пожалуйста, помогите, любой совет высоко ценится.

Большое спасибо,

Настройки балансировки нагрузки

load balancer settings

Инфраструктура

Я использую следующий

  • EC2 (бесплатный уровень) с двумя установленными проектами кода (веб-сайт React и сервер узлов на одном и том же сервере)машина в разных каталогах)
  • Сертификат создан (с помощью диспетчера сертификатов)
  • Я создал дистрибутив CloudFront и проверил его по электронной почте.Мой сертификат был выбран в облачном фронте в качестве клиентского SSL-сертификата
  • У меня есть классический балансировщик нагрузки (экземпляр указывает на мой единственный EC2), и статус InService.Когда я посещаю значение DNS-имени балансировщика нагрузки, я вижу свой веб-сайт React.Балансировщик нагрузки прослушивает HTTP-порт 80. Я добавил порт 1234, но это не помогло

Примечание: Обратите внимание, этот проект предназначен для изучения AWS, React и NodeJsпоэтому, если что-то странное, укажите

снимок экрана экземпляра EC2

EC2 screen

снимок экрана группы безопасности

security group screenshot

Скриншот балансировщика нагрузки

load balance configuration

Снимок экрана целевой группы

target group settings

Попытка зарегистрировать целевую группу

registered targets

1 Ответ

0 голосов
/ 04 июня 2019

Спасибо, что разъяснили вашу архитектуру.

Теперь я не позволю CloudFront выйти из игры и буду уверен, что ваши настройки работают только с балансировщиком нагрузки.Когда все будет настроено правильно, вы можете легко добавить Cloudfront в качестве следующего шага.В целом, для всего, что связано с ИТ, проще создать простую работающую систему и увеличивать сложность по одному шагу за раз, чем отлаживать сложную систему, которая не работает.

Идея состоит в том, чтобыБалансировщик нагрузки приложения с двумя слушателями , один для Интернета (TCP 80) и один для API (TCP 123).У ALB будет две целевые группы (по одной для каждого порта в вашем экземпляре EC2), и вы создадите правила прослушивателей , чтобы перенаправить правильный порт в правильные целевые группы .Прочтите « Компоненты Application Load Balancer », чтобы понять, как работают ALB.

Вот пара вещей, которые нужно проверить

  • , убедитесь, что у вас есть два слушателя идве целевые группы на вашем Application Load Balancer
  • балансировщик нагрузки должен находиться в группе безопасности, позволяющей использовать TCP 80 и TCP 1234 из любого места (0.0.0.0/0) (скажем, SG-001)
  • Экземпляр EC2 должен находиться в группе безопасности, разрешающей TCP-соединения через порт 1234 (для API) и 80 (для веб-сайта) только из источника SG-001 (только балансировщик нагрузки)

После написания всего этого я понимаю, что вы используете Classic Load Balancer.Это также должно работать, просто убедитесь, что ваш экземпляр EC2 имеет правильную группу безопасности (два правила, одно для каждого порта)

enter image description here

...