Размещение веб-приложения на Amazon AWS EC2

Я разрабатываю веб-приложение локально. Однако я хотел бы разместить конечный продукт на инстансе Amazon EC2. Я переместил свое веб-приложение в экземпляр EC2 и могу запустить приложение; теперь он прослушивает порт 8081.

Чего я не понимаю, так это того, как разрешить пользователям в Интернете доступ к веб-приложению, работающему на порту 8081 экземпляра EC2. Я пытался перенаправить доменное имя на IP-адрес экземпляра EC2 в DNS NameCheap (где мы купили домен) безрезультатно. Я подозреваю, что одна из вещей, которые мне нужно сделать, это установить разрешения группы разрешений EC2, но что мне следует установить?

Помощь приветствуется! Спасибо!


person user3768533    schedule 09.11.2016    source источник
comment
что такое ОС экземпляра ur ec2?   -  person rodeshifz69    schedule 09.11.2016
comment
Можете ли вы попасть по IP прямо из вашего браузера? Интересно, проблема в DNS или EC2.   -  person Patrick Goley    schedule 09.11.2016
comment
Экземпляр ec2: Amazon Linux AMI 2016.09.0 (HVM), тип тома SSD — ami-5ec1673e.   -  person user3768533    schedule 10.11.2016
comment
Что я ожидаю увидеть, если смогу успешно получить IP-адрес из браузера? Это определенно не работает, я вижу, что страница 35.163.43.63 не работает. 35.163.43.63 не отправлял никаких данных.   -  person user3768533    schedule 10.11.2016
comment
Вам необходимо разрешить порт 8081 в группе безопасности ec2, которая подключена к вашему экземпляру.   -  person taskiner    schedule 10.11.2016


Ответы (2)


Вы можете настроить сервер nginx для передачи всех запросов на порт 8081.

Подробнее читайте здесь: https://doesnotscale.com/deploying-node-js-with-pm2-and-nginx/

person xiaofan2406    schedule 09.11.2016
comment
В качестве временного решения я перенаправил порт 8081 на 80, как было предложено в этом посте. Это казалось самым простым решением. В будущем я рассмотрю возможность использования сервера nginx. - person user3768533; 15.11.2016

Вообще говоря, общедоступное веб-приложение нужно запускать на стандартном порту (например, 80 или 443). Вы можете сделать это, просто запустив свое приложение узла от имени привилегированного пользователя (требуется в большинстве ОС для раскрытия 80 или 443), но, как правило, лучше иметь веб-сервер перед передачей трафика, рассматривая ваше приложение узла как вышестоящий сервер ( даже если он на локальном хосте). NGinX — хороший выбор для этого.

Независимо от того, на каком порту вы хотите его запустить, вам необходимо обновить политику безопасности EC2 для этого экземпляра, чтобы разрешить трафик на этом порту (80, 443, 8081 и т. д.). Вам также необходимо убедиться, что он предоставляет общедоступный IP-адрес. Неплохой идеей будет назначить ему эластичный IP-адрес, так как он будет иметь один и тот же адрес при перезагрузке экземпляра.

Наконец, в зависимости от того, с какого AMI вы работаете, может быть настроен хост-брандмауэр, который вам нужно будет проверить и настроить, чтобы разрешить трафик.

person Paul    schedule 09.11.2016