简体   繁体   中英

AWS What specs Instance do I need for an online game server to host 100,000 or more people?

I am currently leaning towards the AWS EC2 server. I'm looking at the console right now in which i can host my apis and database.

My question is which instance type should i use?

Which database should be used? RDS or on same instance?

Game will have more than 100k users.

Apis are for authentications and user file saving and retrieval.

sincere suggestions required.

thanks

Nobody will be able to give you an answer to this question. And if they do, they will be wrong.

The only way to know what resources a system would consume is to build it, then test it using simulated load . This will help identify the bottlenecks in the system (disk? database? memory? network throughput?).

You will then begin the iterative process of finding the worst bottleneck , rearchitecting the app or changing system components, celebrating, then repeating the whole test-measure-fix cycle. Welcome to the exciting world of application performance management!

You can also take advantage of the Cloud by scaling your resources based upon load. When the system is busy (eg in the evening), add more capacity. When things are quiet, remove resources to save money. This is exactly what Fortnite does.

See: How would you keep 125 million gamers playing smoothly online? Epic Games shares its Fortnite story. | Amazon Game Tech Blog

Depending upon what data you wish to store, you could consider using Amazon GameLift :

Amazon GameLift is a fully managed service for deploying, operating, and scaling your session-based multiplayer game servers in the cloud. Amazon GameLift replaces the work required to host your own game servers, including buying and setting up hardware, and managing ongoing activity, security, storage, and performance tracking. The Amazon GameLift auto-scaling capabilities provide additional protection from having to pay for more resources than you need, while helping to ensure that your players can find and join games with minimal waiting.

In reading your question, I suspect that your application has not yet been written yet. So, it's a good time to make general architectural decisions (eg using DynamoDB instead of a relational database since it provides fast and predictable performance with seamless scalability), but don't worry too much about minor details. First, you need to make a product that people want to use. That will be a more difficult challenge than scaling to meet eventual demand.

Concentrate on getting your first 100 users and worry about the other 100,000 later.

The question is very subjective to answer. Reason is You need to identify below things before coming to conclusion:

  1. How much CPU per user per month is required?
  2. How much memory is required per user per month?
  3. How much bandwidth you required per user per month?

Once you have an idea about these value, May be you should take a look at how many concurrent users you want your server to give service, before scaling to launch another server.

So for example your website have 50000 users consistently accessing your application, then you should choose ec2 instance accordingly followed by auto-scaling group and load balancer to serve your traffic.

  • For database you should always go with RDS (For relational DB).DB on EC2 instance is not recommended.

For EC2 Instance types please check instance-types

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM