Назад | Перейти на главную страницу

Может ли вертикальное масштабирование AWS экземпляра ec2 поддерживать 100 000 пользователей в день?

У меня есть сайт обмена ссылками (думаю, Reddit). Теперь он размещен на виртуальном хостинге godaddy deluxe. Планирую перенести на aws.

Я видел веб-семинар по расширению масштабов до 10 миллионов пользователей. Но в основном это просто говорит о том, что вы не можете масштабировать по вертикали, поэтому выберите масштабирование по горизонтали с самого начала.

Мне не нужно поддерживать 10 миллионов пользователей. Предположим, мне нужно поддерживать 100 000 пользователей в день. Максимальное количество одновременных пользователей на сайте - 1000.

Пример использования

Планируемая архитектура

Я планирую масштабировать, используя этот простой метод - начните с t2.micro, по мере роста пользовательской базы просто обновите экземпляр ec2. То же самое и с экземплярами RDS.

Я знаю, что 1 EC2 или RDS делают его единственной точкой отказа. Если что-то из этого сломается, я планирую прекратить работу этого экземпляра и запустить идентичный из образа / резервной копии. Ничего страшного, если сайт отключен на 1 час каждые 30 дней.

Пожалуйста, имейте в виду, что у меня нет никого, кто мог бы мне помочь, и это сольная работа. Я могу найти кого-нибудь, кто поможет на стороне aws, если это поразит пользователей.

  1. Могу ли я таким образом поддержать 100 000 пользователей?
  2. В каких точках останова я должен перейти на следующий экземпляр Ec2 до 100 000 пользователей / 1000 одновременных пользователей? (например, до 5 одновременных пользователей - t2.micro / db.t2.micro, до 40 одновременных пользователей - экземпляр EC2 типа 2 / экземпляра Rds типа 2 и т. д.)
  3. Есть ли что-нибудь еще, что я не рассматривал / не должен учитывать, прежде чем приступить к реализации этого плана?

Очень сложно сказать, будет ли веб-приложение обрабатывать X клиентов в конкретной системе. Это сильно зависит от многих факторов, включая то, как было написано приложение, используемые фреймворки и т. Д.

Лучшим вариантом было бы найти что-то, что можно было бы использовать для тестирования / моделирования использования приложения. Поскольку у вас уже запущено веб-приложение, вы можете легко настроить экземпляр ec2 любого размера на короткий промежуток времени, запустить несколько тестов, а затем выключить его.

Возможность горизонтального масштабирования обеспечит гораздо лучший способ справиться с ростом в будущем. Что произойдет, если у сайта возникнут проблемы с более крупными экземплярами или вам потребуется масштабировать более 100 000? Вы также можете обнаружить, что простой переход к более крупным экземплярам, ​​скорее всего, не приведет к линейному увеличению производительности.

Одна вещь, которая выделяется -

Изображения хранятся в БД.

Храните изображения и все остальное, для обработки чего серверы приложений не нужны. Поскольку вы уже используете стек AWS, S3 - очевидное место для изображений и других статических данных. Не тратьте время сервера приложений на статические ресурсы.