Несколько веб-фреймворков в одном AWS экземпляре? - PullRequest
2 голосов
/ 16 февраля 2020

Это вопрос проектирования инфраструктуры. Что лучше:

  1. Запускать несколько веб-фреймворков на одном AWS экземпляре?
  2. Запускать каждый фреймворк в отдельных AWS экземплярах?

Здесь используются веб-фреймворки:

  • Серверная часть: Django + PostgreSQL
  • Внешний интерфейс: NodeJS
  • Форум: Ruby on Rails + PostgreSQL

Плюсы 1 варианта:

  • Не нужно беспокоиться о AWS типе экземпляра (просто используйте мощный)
  • Легко поддерживать, когда все в одном месте, только 1 экземпляр

Варианты 2 плюса:

  • Лучшее распределение ресурсов AWS в зависимости от нагрузки (бэкэнд / интерфейс / форум). Проще масштабировать?

Я не уверен, какой вариант лучше. Хотелось бы услышать ваш опыт и мнение по этому поводу. Спасибо.

1 Ответ

0 голосов
/ 16 февраля 2020

Есть тонна людей, которые помещают все это в один AMI, раскручивая их за ELB и запуская в производство.

Это советуют? Не совсем.

Проблема с этим в значительной степени та, о которой вы говорили, у каждого есть переменные требования к ресурсам (кроме NodeJS), и вы будете быстро перегружать экземпляры EC2 при любом типе нагрузки; когда они не видят нагрузку, вы будете сжигать $$$, имея достаточно мощный экземпляр (для ожидаемой нагрузки), работающий 24/7.

В терминах близкого, но немного лучшего варианта, каждый эти каркасы внутри их собственного контейнера Docker позволяют им работать рядом друг с другом в одном и том же экземпляре, но отдельно. Как только они окажутся в Docker, вы также можете запустить их в ECS или EKS на Fargate. * hat, я бы порекомендовал это:

  • NodeJS помещен в S3 с CloudFront перед ним.
  • Python(Django) перемещен в Lambda или Lambda EDGE.
  • PostgreSQL перенесен в RDS, а еще лучше - в DynamoDB.

Преимуществом этого является стоимость и масштабируемость. S3 масштабируется бесконечно и очень доступен и очень дешев. Лямбда основана на событиях, поэтому вам нужна «оплата за использование», а не «оплата за час». RDS - это приемник $, но он заботится о резервном копировании и делает работу с БД простой задачей. DynamoDB - это услуга «оплата за использование», которая значительно удешевит весь ваш стек, если вы сможете его использовать.

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