Amazon Fargate против хостинга контейнеров EC2 - PullRequest
0 голосов
/ 09 июля 2020

Недавно у меня появился проект, в котором мне нужно создать приложение React / Next JS, которое будет время от времени обслуживать высокий трафик c, но в основном будет бездействовать. В настоящее время мы ищем самый дешевый вариант во всех категориях, но также хотим создать масштабируемое и управляемое приложение с быстрым и простым конвейером CI / CD. В качестве сервера разработки мы выбрали бесплатный план и конвейер Heroku, так как я думаю, что он идеально подходит для работы. Для производства мы решили использовать Docker, так как это лучший способ настроить конвейер компакт-дисков, а с 2000 минут бесплатных действий Github в месяц весь конвейер производства / разработки будет для нас практически бесплатным. Мы также думали использовать AWS из-за его функций, и мы хотим сохранить минимальное количество счетов для управления. Для БД мы думаем об использовании DynamoDB из-за бесплатного пожизненного хранилища 25 ГБ, которого будет достаточно, поскольку единственными данными Dynami c на сайте будут данные пользователей и блоги. А для объектного хранилища выбор - S3.

Здесь мы запутались между двумя предложениями AWS, когда дело касается хостинга контейнеров, ECS EC2 и ECS Fargate. Хотя Fargate определенно кажется лучшим выбором из-за того, что приложение большую часть времени будет бездействовать, мы действительно запутались в выделении ресурсов для контейнеров в Fargate. Приложение работает на Next JS, поэтому рендеринг будет выполняться на стороне сервера.

Итак, мой вопрос был в том, будет ли комбинация 0.5 GB RAM x 0.25 vCPU достаточна для рендеринга на стороне сервера Next JS применение? Или мне следует go для выделенного EC2? Или другой облачный провайдер?

1 Ответ

0 голосов
/ 09 июля 2020

Next JS - это фреймворк, который работает поверх nodejs, поскольку нет такого специального требования c (только nodejs 10) , упомянутого в документации, но вы можете лечить их, как мы обрабатываем nodejs.

Node.js с V8, подходящим для устройства с ограниченным объемом памяти?

Итак, мой вопрос был, будет ли комбинация 0,5 ГБ ОЗУ x 0,25 виртуального ЦП будет достаточно для приложения Server Side Rendered Next JS? Или мне следует go для выделенного EC2? Или, возможно, другой облачный провайдер?

Я не буду предлагать услугу ECS типа EC2, вы можете go для fargate с минимальным объемом памяти и ЦП и установить автоматическое масштабирование услуг ECS при необходимости.

Но я думаю, что у нас есть лучший вариант, чем fargate, это serverless-next js

Бессерверное развертывание значительно повышает надежность и масштабируемость за счет разделение вашего приложения на более мелкие части (также называемые [ лямбда ] 3 ). В случае Next. js каждая страница в каталоге страниц становится бессерверной лямбдой.

Существует количество преимуществ для бессерверной. В указанной ссылке говорится о некоторых из них в контексте Express, но принципы применяются повсеместно: бессерверный режим допускает распределенные точки отказа, бесконечную масштабируемость и невероятно доступен с моделью «плата за то, что вы используете». enter image description here

Бессерверная следующая js

...