For the past couple of months I’ve been flirting on and off with Amazon Web Services (AWS). This past summer my students started using it in some of our research projects, so I had to catch up with them. Those projects have nothing to do with OpenSim, but I made my own learning plan focused on getting an OpenSim instance to run in the cloud.
I must say I really like AWS, specifically Elastic Compute Cloud (EC2). I feel like a kid in a [computing] candy store! How much better can it get when you can have as many servers / storage as you want in a high-bandwidth / high reliability data center at the tune of pennies/hour?! Pennies per hour! Turn the thing off, and the charges stop! Very different, indeed, from billing model of traditional data centers.
Of course, learning how to operate non-trivial systems in AWS is not an easy hill to climb. Add OpenSim to the mix — a system with complex networking and configuration requirements — and it gets very challenging very quickly. But persistence will get you there, at least to the first milestone of having a diva distro server up & running in the cloud.
Geek fun aside, is it really worth it to use cloud computing for OpenSim virtual worlds? It depends.
First, let’s look at the benefits. You get a high bandwidth / high reliability data center for your virtual world, with a lot of flexibility regarding the cost. Compared to hosting in home networks, high bandwidth and high reliability is a very attractive proposition. Home DSLs have notoriously limited uplinks; if you place a server like OpenSim in your home, uploads is what happens most of the time. As such, you aren’t able to serve that many external clients, and the ones served will feel lag. That’s what data centers are for. But traditional data centers are prohibitively expensive for casual hosting, as they have high fixed monthly costs, well above $100/month. Usually you need to have a business in order for a data center to become cost-effective; personal use is not really a use case for them.
Let’s look at the numbers in more detail. AWS is a flirt for any geek, because the prices, at face value, are so low. Look at AWS pricing, and you rarely see anything above$1. It’s all pennies! 1 server? $0.085/hour. 1GB of data? $0.10/month. Storage I/O? $0.10/million requests. Traffic in? $0.10/GB. Traffic out? $0.15/GB after a first free GB. Dirt cheap.
But pennies add up. If you want your server to be always on, the cost of the server alone is ~$60/month. Add to that the I/O and network traffic, and this number can easily go well above $100/month if your world has a lot of action. The very smart people at Amazon know the economics of data centers… Nevertheless, if you make the calculations, AWS is actually very competitive with dedicated server hosting offerings, even in the always-on scenario. And the elasticity of the billing, the pay-for-what-you-use model, is a very attractive proposition.
Cloud computing only starts bringing real cost savings if one takes advantage of the elasticity of billing. Which means that one needs to make the server up-time elastic. In other words, turn it off if you’re not using it. Which is probably what you do if you host your virtual world at home anyway. Or if your use of virtual worlds is related to scheduled activities, such as classes.
So here’s my conclusion: for personal virtual worlds with not a lot of external traffic, home hosting is probably the best solution; you’re paying a fixed monthly fee for your DSL, you may as well max out the value that you get from your provider. But if you’re thinking about offering a virtual world for a larger number of visitors, and if that virtual world doesn’t need to be always on, then pay-on-demand seems like a very good idea indeed. Plus you help the environment.