AWS Какие спецификации мне нужны для того, чтобы сервер онлайн-игр мог разместить 100 000 или более человек? - PullRequest
0 голосов
/ 17 января 2019

Я сейчас склоняюсь к серверу AWS EC2. Сейчас я смотрю на консоль, в которой я могу разместить свой apis и базу данных.

У меня вопрос, какой тип экземпляра мне использовать?

Какую базу данных следует использовать? RDS или на том же экземпляре?

В игре будет более 100 000 пользователей.

Apis для аутентификации и сохранения и поиска пользовательских файлов.

Требуются искренние предложения.

спасибо

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Никто не сможет дать вам ответ на этот вопрос. И если они это сделают, они будут неправы.

Единственный способ узнать, какие ресурсы потребляет система - это собрать ее, а затем протестировать с использованием имитированной нагрузки . Это поможет выявить узкие места в системе (диск, база данных, память, пропускная способность сети).

Затем вы начнете итеративный процесс поиска наихудшего узкого места , повторной архитектуры приложения или изменения компонентов системы, празднования, а затем повторения всего цикла тест-мера-исправление. Добро пожаловать в увлекательный мир управления производительностью приложений!

Вы также можете воспользоваться Облаком, масштабируя свои ресурсы в зависимости от нагрузки. Когда система занята (например, вечером), добавьте больше емкости. Когда все тихо, удалите ресурсы, чтобы сэкономить деньги. Это именно то, что Fortnite делает.

См .: Как бы вы поддерживали плавную игру 125 миллионов игроков в Интернете? Epic Games делится своей историей с Fortnite. | Технический блог Amazon Game

В зависимости от того, какие данные вы хотите сохранить, вы можете рассмотреть возможность использования Amazon GameLift :

Amazon GameLift - это полностью управляемый сервис для развертывания, эксплуатации и масштабирования ваших многопользовательских игровых серверов на основе сеансов в облаке. Amazon GameLift заменяет работу, необходимую для размещения ваших собственных игровых серверов, включая покупку и настройка оборудования и управление текущей активностью, безопасностью, хранением и отслеживанием производительности. Возможности автоматического масштабирования Amazon GameLift обеспечивают дополнительную защиту от необходимости платить за большее количество ресурсов, чем нужно, и помогают вашим игрокам находить и присоединяться к играм с минимальным ожиданием.

Читая ваш вопрос, я подозреваю, что ваше заявление еще не было написано. Итак, сейчас самое время принять общих архитектурных решений (например, использовать DynamoDB вместо реляционной базы данных, поскольку она обеспечивает быструю и предсказуемую производительность с плавной масштабируемостью), но не слишком беспокоиться о мелких деталях. Во-первых, вам нужно сделать продукт, который люди хотят использовать. Это будет более трудной задачей, чем масштабирование для удовлетворения возможного спроса.

Сконцентрируйтесь на получении первых 100 пользователей, а потом подумайте о других 100 000.

0 голосов
/ 17 января 2019

Вопрос очень субъективный, чтобы ответить. Причина в том, что вам необходимо определить следующие вещи, прежде чем прийти к выводу:

  1. Сколько требуется процессора на пользователя в месяц?
  2. Сколько памяти требуется на пользователя в месяц?
  3. Сколько пропускной способности вам требуется на пользователя в месяц?

Если у вас есть представление об этих значениях, возможно, вам следует взглянуть на то, сколько одновременных пользователей вы хотите, чтобы ваш сервер предоставлял обслуживание, прежде чем масштабировать для запуска другого сервера.

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

  • Для базы данных вы всегда должны использовать RDS (для реляционной БД). DB на экземпляре EC2 не рекомендуется.

Для EC2 Instance типов отметьте instance-types

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