Как использовать AWS для бесплатного хостинга веб-приложения (Docker, Nginx, Angular, Django)? - PullRequest
0 голосов
/ 14 октября 2019

Я новичок и только что закончил первую версию своего веб-приложения.

Я использую Docker, Nginx, Angular & Django. Обратите внимание, что серверная часть работает со статическими файлами и использует простую базу данных для регистрации пользователей.

Я хочу развернуть ее в бесплатном облачном решении. Я слышал, что могу использовать AWS Elastic Beanstalk, но обнаружил, что его конфигурация и ценовая политика немного сложнее.

Вопрос Кто-нибудь может подсказать мне, что нужно рассмотреть или, что еще лучше, какой выбор я должен сделать, чтобы разместить свое веб-приложение в AWS бесплатно?

PS: я не знаю, должен ли я упомянуть об этом, но в случае, если веб-приложение привлекает достаточное количество пользователей, я бы скорректировал реализацию, чтобы пользователь мог загружать и использовать мои сервисы на основе своих собственных данных (а не по файлам csv). В этом случае мне может понадобиться использовать другие сервисы AWS или перейти на другое облачное решение. Просто сказать, что они оба приветствуются!

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Вы можете легко разместить приложение Angular на AWS в пределах бесплатного уровня (1 год). До сих пор я размещал несколько приложений Angular с использованием AWS S3 + AWS Cloudfront.

AWS S3 используется для размещения ваших статических файлов. Сначала вы делаете ng serve --prod, где Angular компилятор сгенерирует папку /dist (в каталоге вашего проекта), содержащую все статические файлы (например, js, изображения, шрифты и т. Д.), Необходимые для запуска вашего angularприложение. Затем вы загружаете все свои статические файлы в корзину AWS S3.

AWS Cloudfront - это облачная служба кэширования . Как подсказывает слово «кеш», он кеширует ваши статические файлы. Настроив кэш Cloudfront перед вашей корзиной S3, он позволяет вам обходить ежемесячные 20000 запросов GET, ограниченных для бесплатного уровня, поскольку HTTP-запросы пользователей будут обслуживаться из кеша Cloudfront, а не прямо из вашей корзины S3. Бесплатный уровень Cloudfront дает вам 2 миллиона HTTP (S) запросов в месяц.

Преимущество хостинга на AWS S3 вместо экземпляра EC2 (PS Elastic beanstalk также создает экземпляр EC2) заключается в том, что вы можете иметь несколько S3ведра и дистрибутивы Cloudfront в 1 бесплатной учетной записи уровня. Пока вы находитесь в пределах, S3: 2000 запросов PUT, запрос 20000 GET;Cloudfront: 2 миллиона HTTPS-запросов. Вы можете в конечном итоге разместить несколько приложений с одной бесплатной учетной записью уровня AWS. Но если вы используете EC2, вы почти ограничены только одним экземпляром (потому что 31 день x 24 часа = 744 часа, что на 6 часов меньше 750 часов). Если вы не настроили включение и выключение экземпляров EC2.

Существует множество руководств, демонстрирующих, как это сделать, вот некоторые из них:

  1. Развертывание Angular с S3 и CloudFront

  2. Используйте S3 и CloudFront для размещения статических одностраничных приложений (SPA) с HTTP и www-перенаправлениями

0 голосов
/ 14 октября 2019

Предполагая, что вы знаете, как выполнить развертывание на Linux-машине, Elastic Beanstalk бесполезен для вашего случая использования (он предназначен для автоматического масштабирования). Я бы сделал следующее:

ИЛИ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...