Я настраиваю свой веб-сайт, который будет работать на AWS Ubuntu EC2. Это SPA Vue.js, основанное на приложении Nodejs Express с вызовами API и socket.io. На данный момент оба приложения работают, серверная часть находится на моем бесплатном уровне AWS EC2, за Elastic Load Balancer, интерфейсная часть находится на моей машине, так как я над ней работаю. Теперь я хотел бы также развернуть интерфейс на моем AWS EC2, но я не понимаю, как это сделать правильно. Учебники, которые я нашел, используют nginx, но я не уверен, что мне нужен nginx, поскольку у меня уже есть AWS ELB. Буду рад любым советам :)





как говорится "Если вы разрабатываете фронтенд-приложение отдельно от бэкэнда, то есть ваш бэкэнд предоставляет API для взаимодействия с вашим фронтендом, то ваш фронтэнд по сути является чисто статическим приложением." здесь
Я бы выбрал s3 для размещения приложения vue, потому что оно статично и может обслуживаться с помощью s3 и
Я выберу EC2 для размещения своего API (серверного кода), а также сделаю эластичный IP-адрес для связи с моим сервером ec2, чтобы при перезапуске мне не приходилось обрабатывать динамические IP-адреса.
Шаги, чтобы сделать ваш сайт живым
** СОВЕТ: не используйте балансировщик нагрузки для этого приложения, используйте его только тогда, когда вы распределяете свою систему по нескольким серверам ec2**
Хорошо, у меня есть ведро S3, работающее с моим приложением Vue. Однако я не понимаю, как открыть порт моего экспресс-приложения. Что я пробовал, так это создать ведро S3 как api.mydomain.com и использовать его в качестве перенаправления на порт приложения моего экспресса 3000. Проблема в том, что мне нужны POST-запросы к моему API и (если я правильно понял) ведра S3 не поддерживает POST (поэтому я получил 405 ошибок от своего приложения Express). Любой совет будет отличным!
Глаголы HTTP, т.е. GET PUT POST DELETE, могут быть выполнены из вашего приложения vue и размещены на s3, вам необходимо указать порт в группах безопасности экземпляра EC2, чтобы вы могли получить доступ к своему экспресс-API вне экземпляра aws.amazon.com/premiumsupport/knowledge-center/…, а после этого просто подключитесь ваше приложение vue на IP: порте экземпляра EC2, чтобы делать вам HTTP-запросы
Мое предложение: нет необходимости использовать и ELB, и nginx для развертывания одного приложения.