Невозможно открыть общедоступный DNS IPv4 в AWS EC2 — экземпляр Linux

У меня есть загрузочный проект Spring, который я хочу разместить на экземпляре AWS-EC2. Мне удалось создать его образ с помощью Git-hub, Jenkin и docker. Мне также удалось успешно загрузить и запустить этот образ в консоли Linux моего экземпляра AWS-EC2.

Согласно руководству, которому я следовал, я должен был открыть проект сейчас, используя общедоступный DNS IPv4, но я получил ответ, что он отказывается подключаться.

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

Для тех, кто хочет знать:
Репозиторий Git-hub: https://github.com/SalahuddinShayan/telecom
Репозиторий Docker-Hub: https://hub.docker.com/repository/docker/salahuddinshayan/telecom
Команда, которую я использовал для запуска образа в AWS:

docker run -p8081:8081 --name final-app --link docker-mysql:mysql salahuddinshayan/telecom  

Группы безопасности:

Сетевые детали:

Вот ошибка:

Я полностью озадачен этим. Кто-нибудь знает, что делать, чтобы это исправить?

Пожалуйста, покажите правила вашей группы безопасности и сетевые данные вашего инстанса EC2.

Pawel Kam 18.02.2023 14:44

@PawelKam, я добавляю правила группы безопасности и сведения о сети по запросу.

Salahuddin Shayan 18.02.2023 15:21

Вы передаете через порт 8081. http://3.110.29.193:8081/ отлично работает со стороны EC2. Статус 404 повышается, так что это ошибка на стороне клиента, а не на стороне сервера.

Pawel Kam 18.02.2023 15:37

Вы не должны использовать разрешить все протоколы. добавить правила входа для правильного порта и протокола.

Erik Asplund 18.02.2023 15:49

@PawelKam Если это ошибка на стороне клиента, это означает, что проблема связана с моей системой, а не с экземпляром EC2, верно? если это так, я должен добавить правило в брандмауэр моего компьютера, чтобы исправить это?

Salahuddin Shayan 18.02.2023 16:03

Это означает, что никакой брандмауэр не блокирует трафик, и был найден процесс (ваше приложение), который прослушивает нужный вам IP:порт. Проблема в том, что процесс, с которым он столкнулся (ваше приложение), отправляет только страницу ошибок WhiteLabel, которая является общей страницей ошибок Spring Boot, которая отображается, когда пользовательская страница ошибок отсутствует. Таким образом, проблема связана с самим приложением Spring, а не с EC2 или подключением. Другими словами: трафик может достигать вашего приложения Spring, но вашему приложению Spring нечего сказать в ответ.

Pawel Kam 18.02.2023 16:12

@PawelKam Спасибо, чувак, то, что ты сказал, заставило его щелкнуть, я прямо нажимал на опцию открытия адреса для общедоступного DNS и добавлял: 8081/home, который является путем к моему дому, что привело к HTTP-запросу и причине ошибки, но как только я вставил все добавление в новую вкладку, это сработало как шарм. Поскольку это фиктивный проект с единственной целью изучения процесса хостинга AWS, у него нет страницы с ошибкой, извините за это и еще раз спасибо.

Salahuddin Shayan 18.02.2023 16:49

@SalahuddinShayan Если это кому-то поможет, я добавил свои комментарии с дополнительными примечаниями в качестве ответа. Был бы признателен за голосование.

Pawel Kam 18.02.2023 18:11
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
8
63
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Пожалуйста, проверьте, вызывает ли ваш клиент правильный протокол, например. http против https.

Вы были правы, чувак, я прямо нажимал на опцию открытого адреса для общедоступного DNS и добавлял: 8081/home, который является путем к моему дому, что привело к запросу https и причине ошибки, но как только я вставил все добавление в новую вкладку работало как шарм.

Salahuddin Shayan 18.02.2023 16:51

Был рад помочь! Пожалуйста, отметьте этот ответ как решение вашего вопроса. Спасибо!

Alex Chadyuk 18.02.2023 18:11

Эй, извините, что не выбрал ваш ответ, но проблема, с которой я столкнулся, похоже, не решена. когда я попытался открыть общедоступный DNS так же, как вчера, он выдал мне ту же ошибку, то есть отказ от подключения. Я ничего не менял в экземпляре. Можете ли вы попробовать подключиться со своего конца, чтобы проверить, что не так? для справки я прикрепил изображение ошибки, с которой столкнулся.

Salahuddin Shayan 19.02.2023 06:35

Вы уверены, что IP экземпляра не изменился?

Alex Chadyuk 19.02.2023 13:30

Да, я подтвердил это с помощью снимка экрана с деталями сети, который я сделал ранее. ИП не менялся.

Salahuddin Shayan 19.02.2023 13:55

Не могли бы вы попытаться завершить работу и создать экземпляр заново, а также попробовать новый общедоступный IP-адрес?

Alex Chadyuk 19.02.2023 15:30

Эй, я не знаю, почему и как, но контейнер, в котором работало мое приложение, остановился. Контейнер для БД работал нормально, но приложение остановилось. Я хочу знать причину, чтобы это не повторилось, если у вас есть какие-либо идеи, пожалуйста, дайте мне знать.

Salahuddin Shayan 20.02.2023 06:35

Вы можете рассмотреть возможность запуска ваших контейнеров в ECS. Это позволит настроить проверки работоспособности AWS (docs.aws.amazon.com/AmazonECS/latest/userguide/…) в дополнение к проверкам работоспособности Docker. Вы также можете настроить агент в своем контейнере для отправки журналов в CloudWatch, чтобы вы могли устранять любые проблемы.

Alex Chadyuk 20.02.2023 13:50

Вы передаете через порт 8081. http://3.110.29.193:8081/ отлично работает со стороны EC2. Статус 404 повышен, так что это ошибка на стороне клиента, а не на стороне сервера.

Это означает, что никакой брандмауэр не блокирует трафик, и был найден процесс (ваше приложение), который прослушивает нужный вам IP:порт. Проблема в том, что процесс, с которым он столкнулся (ваше приложение), отправляет только страницу ошибки WhiteLabel, которая является общей страницей ошибки Spring Boot, которая отображается, когда пользовательская страница ошибки отсутствует. Таким образом, проблема связана с самим приложением Spring, а не с EC2 или подключением. Другими словами: трафик может достигать вашего приложения Spring, но вашему приложению Spring нечего сказать в ответ.

В качестве примечания: после развертывания вашего приложения я бы посоветовал уточнить правила входящего трафика, чтобы разрешить только тот трафик, который вам нужен. Нет необходимости разрешать весь трафик на всех портах.

Эй, извините, что беспокою вас снова, но проблема, с которой я столкнулся, похоже, не решена. когда я попытался открыть общедоступный DNS так же, как вчера, он выдал мне ту же ошибку, то есть отказ от подключения. Я ничего не менял в экземпляре. Можете ли вы попробовать подключиться со своего конца, чтобы проверить, что не так? посмотрите, можете ли вы по-прежнему получить доступ к веб-приложению. для справки я прикрепил изображение ошибки, с которой столкнулся.

Salahuddin Shayan 19.02.2023 06:37

Что-то явно изменилось - та же команда telnet, которая работала вчера, теперь выдает мне «Невозможно подключиться к удаленному хосту: соединение отклонено». Убедитесь, что а) ваше приложение все еще работает и б) что не были внесены изменения в группу безопасности или NACL.

Pawel Kam 19.02.2023 22:44

Вы были правы, я не знаю почему и как, но контейнер, в котором работало мое приложение, остановился. Контейнер для БД работал нормально, но приложение остановилось. Я хочу знать причину, чтобы это не повторилось, если у вас есть какие-либо идеи, пожалуйста, дайте мне знать.

Salahuddin Shayan 20.02.2023 06:32

Это отдельная проблема, вам следует открыть для нее новый вопрос или выполнить поиск «запуск контейнеров Docker на AWS».

Pawel Kam 20.02.2023 11:27

Другие вопросы по теме