Nicholas Koranda wrote:
> I have not been personally involved with the backend server side of a
> massive online game but I understand the general concepts of how they
> work. One of the costs associated with running a server farm is the
> inability to scale the cost of running the server farm with the scale of
> the load. For instance, if a game has 10,000 simultaneous users spread
> out over 20 servers, the load is (if the players are equally spaced) 500
> users per server. Some server farms can scale what regions they cover
> so that if groups of users merge into a smaller area, several servers
> can be used to break up the load (i.e. a 1000 x 1000 "grid" could be
> broken into two 500 x 1000 grids or some other way.)
>
> Now the problem occurs when there are still 20 servers and only say
> 2,000 users or how about if there is a huge "flaming sword of sheeba"
> contest and 25,000 users all log into to get a chance to win it. Adding
> more servers quickly can be a problem for two reasons: 1) You would
> have to have purchased them beforehand (inefficient and cost ineffective
> since you dont always use them) or 2) you would have to get some more
> when need arrises (at a cost of time and flexability (this is more of a
> long term solution since you cant react to spikes in the load.)
>
> So my thought is to use the Amazon.com S3 (Simple Storage Solution) and
> ECC (Elastic Compute Cloud) as the server base for a massive online
> game. The services allow you to only pay for what you use, including
> server time. For those that dont know, the ECC is a service that allows
> you to "rent" an instance of a server on the Amazon ECC. You basically
> upload an image of what the hard drive would be on a server and it is
> loaded each time you use it. You pay $0.10 an hour for each instance of
> the cloud. You also pay $0.15/GB storage and $0.20/GB BW (That is what
> the S3 service is.)
>
> Anytime your userbase increases or decreases to a threshold, another
> server instance would be fired up or shut down. You could load up an
> instance before hand as the load is increasing, or you could base it on
> user login data from previous days/times. The method you use to start
> and stop instances is not important, it is the fact that with these
> services you have a method to scale both updwards and downwards your
> server farm with the server load, providing a very efficient and cost
> effective way to handle the load of a MMORPG.
>
> Any thoughts?
The Amazon ECC is neat, but their bandwidth prices are fairly high. If
you had really large fluctuations in users you might be able to make it
work out. Traditionally your back end traffic (server to server,
server to database, etc) would be free, not exactly sure how it works in
this situation, but I think you get charged for that as well. I really
like the idea, mostly because they actually allow you to upload entire
server images, which is a bit different than most virtualization
options. If for example, you had a clever way to offload some
processing that was not super time critical and could be very bandwidth
efficient this might work out pretty well.
I signed up for Amazon ECC when it came out but still haven't received
an invitation.
Just my thoughts.