Some people have asked us our thoughts on what the best cloud hosting provider is for them. The answer is as you would expect,
it depends. I will say right off, that our preferred at the moment is GoGrid, but that has more to do with our specific use-cases than GroGrid being absolutely better than Amazon. The reason we choose GoGrid most of the time over Amazon is
we know we need the server on all the time anyway, we run mostly windows servers, we like the real live e-Mail, phone, personalized support
they offer free of charge and
we absolutely need to have multiple public IPs per server since we have multiple SSL sites per server (and SSL unless you go for the uber *.domain version can't be done with one IP). GoGrid starts you off with 16 public ips you can distribute any way you like. Amazon is stingy with IPs,
and you basically only get one public per server unless I misunderstood.
In some cases just like when we are developing for a client and they are playing around with various speeds on various OS, Amazon EC is
a better option since you can just turn off the server and not incur charges. In GoGrid, you have to delete the server instead of just shutting it down.
The cloud landscape is getting bigger and more players coming on board which is good since it means you are less likely to be stuck with a provider and you have more bargaining options. We only have experience with GoGrid and Amazon EC, so we can't speak for the others. Other providers we'd like to try are SkyGone (specifically for PostGIS and other GIS hosting), RackSpace Cloud, etc. but we haven't used those so can't speak for them, but each
has their own little gotchas and gems in their offerings that makes them better suited for certain needs and out of the question for others. We are just talking about Cloud server hosting, not other services like cloud application services (like what Microsoft Azure offers), Relational Database Services Like (Amazon RDS (built on MySQL) or Microsoft SQL Azure (built on SQL Server 2008)), file server services, SasS cloud like SalesForce etc, though many cloud servers (e.g. both GoGrid and Amazon include some cloud storage space pre-packaged with their cloud server hosting plans).
I find all those other cloud offerings like database only hosting a bit scary, mostly because haven't experimented with them.
These are the key metrics we judge cloud server hosting plans by and sure there are more, but these are the ones that are particularly important to us when making decisions and what controls our decisions on which to deploy on. Keep in mind we work mostly with Small ISVs,new Dot coms, non-Profits that work with other non-Profits but need an external secure web application (SSL) to collect data. All that scaling and stuff we haven't really had much of a need
for and our clients running much larger servers are still leery of trusting the cloud for that because of lack of control of disk types, the pricing of larger servers etc. For those type of clients if we go with cloud, we'd probably choose GoGrid since they offer a combo plan using real servers and cloud servers.
I will say that for pretty intense PostGIS spatial queries with millions records of a range of geometry types and sizes (anywhere from single points to multipolygons with 20 to 80,000 or more vertices), we've been using GoGrid and been surprised how well the performance is on a modest Dual core 2GHz RAM running Windows 2008 (32-bit) - I'm talking queries that return 50 - 2000 records on a specified user drawn spatial region (out of a selection of 3 million records), simplify, transform on the fly,
return spatial intersections and all usually under 4-12 seconds (from generation of query to outputting on a web client). This is even with running the web server on the same box as the database server. We haven't run anything that intensive on Amazon EC instance so can't compare.
Note that GoGrid has their own chart comparing EC2 and Rackspace with their offering so you might want to check it out. I must also say that these are purely our opinions and we were not influenced by any monetary compensation to say them.
|# of Public Ips||16 - you can have multiple ips allocated to a server which is nice if you are running multiple SSL (different main domain) sites on a single server.||1 per server, sucks for SSL - requires you to get an expensive *domain SSL if you want to run SSL on different domains. Note its fine for standard wildcard subdomains (a.myplace.com, b.myplace.com etc since those can be done with fairly cheap, but of course if you only need 2 its probably cheaper to have separate ips and separate single ssls)|
|24 hr Real live support||Yes, and they'll try to help even if it is your fault and they have fairly quick response times. You can have live chats with support crew.||No, It's an almost completely automated system based on forms. Kind of scary if you are used to having correspondence with real people.|
|Creating images||In the past GoGrid only let you build images in what they called a "SandBox". This literally changed I think in the past 2 weeks, because when I went to go build my next server recently, the sandbox was gone and in its place was a Save button for my regular server. This makes the process of saving images now about as easy as Amazon's. The main caveat is that you can't save a server that is greater than 50GB. So witht hat said you'll probably still want to keep a light weight image.||Yes, Amazon set the bar for which all cloud providers offering this feature will be judged by.|
|Instance configuration and pricing Windows (Dual Core ~2GHz / core 2GB RAM) (for both if you want to run SQL Server Standard expect to pay an additional $1 or more / hr :)) MySQL Community or SQL Server Express is free on both and are installed on many images already. PostgreSQL you generally need to install yourself, which is 5 minutes to install and we much prefer setting up our own database server thank you very much.
||($0.16/hr, monthly professional $200, pay as you go $0.39/hr) for windows Business Professional gets you dual core 2GHz, 2GB RAM, 1 + you get an extra 1GB server or you can put the extra to get a 4GB server and pay ~$230.
|| (Dual core processor / 2 GB RAM) - ~$200/month (on-demand)($0.29/hour), (~150/month reserved instance $0.13/hour + 1 time $450/yr ) (Amazon calls this configuration their High-CPU Medium Instance (c1.medium)|
|Instance configuration and pricing Linux (Dual Core ~2GHz / core 2GB RAM)||~$200/month for Linux (they charge the same for CentOS Linux or Windows or SUSE Linux) gets you dual core 2GHz, 2GB RAM, 120 gig drive + an exttra 1.5 GB RAM hr to spare.||~$130/month (on-demand)($0.17/hour), (~$80/month reserved instance $0.06/hr + 1 time $450/yr ) (Amazon calls this configuration their) gets you a High-CPU Medium Instance (c1.medium)|
|Pre-built Images||They have a few but no where near as many as Amazon and they only recently launched their community images program to allow people to make their images public like what Amazon has had for a while||Lots and some with PostgreSQL already pre-configured (at least for Unix).|
|Can shut off server to not get charged||No - have to delete the server||Yes - we haven't played with the API features of each so not sure if you can do this with an API call. Anyrate this does make Amazon more ideal for making build farms.|
|Hybrid model of Cloud and Dedicated servers||Yes - for high-end servers, the dedicated pricing is cheaper too and you can setup private networks between the two. This is because GoGrid is an off-shoot of ServerPath, a standard dedicated hosting provider||No|
|Build Wizards||Yes - they had theirs before Amazon and I still find it easier to use than Amazon's and that is the main reason we chose them over Amazon in the beginning.||Yes, but they started off with an API mode and probably still have the strongest API deploy which is probably more attractive to Linux Administrators than it is to Windows Administrators.|
|Cloud Storage||Yes - 10GB free/month + 0.15 for each additional GB you use (which is charged at maximum you use at any point in that month). We usually use around 60GB mostly to store our images and simple backups so we pay like $6/month. Note if you need more, you'd be better adding one of their storage plans. Cloudstorage is only available via your GoGrid private network so really mostly for backup. Data transfer is free.||Yes, via Elastic Block Storage or S3. EBS is actually what your data lives on where as in GoGrid case the data is part of the server. EBS can be backed up to Simple Storage (S3)which can be accessed from anywhaere. S3 pricing starts at $.14/GB/month and goes down to 0.055 if you use over 5000TB. Data transfer out is $0.100/GB external and free internal.|
|Trial Plans||They used to offer a 1 month trial which would cover 1/2 GB RAM server, but that seems to have ended.||Yes currently have a deal - They offer a micro instance (basically a 613MB Single core server) for 750 hours Linux/Unix each month for one year.|
Sometimes I think all cloud providers and it's probably true of most industries are involved in a conspiracy scheme to confuse you with their pricing to get the most bit of money they can get out of you and to ensure you can never exactly compare their pricing to any other cloud provider's pricing. So I have warned you.
I'm not sure I quite understand even the GoGrid and Amazon pricings except to say you can't compare them directly to know which one you are getting a better deal on. It really depends how you use your servers and your comfort level with automated support. Plus they keep on changing their services. For example Amazon is soon to release, if they haven't already, their real live support option and
GoGrid recently launched their community shared images and partner images and now allow saving servers (no longer a sandbox) presumably to compete with Amazon's community AMI model and save server feature.
Amazon Reserved Instance Pricing vs. On Demand Pricing
For Elastic Compute (EC) services, Amazon has what they call Reserved Instance vs. On Demand Pricing and I really wish I had paid attention earlier because we could have saved some money.
Reserved Instance pricing is your best bet if you know you are going to be using Amazon for a year or more and you know the kind of server size and processing you need. So how it works is you buy a Reserved instance for a specific processor/ram size and pay an immediate cost (lets call this insurance money, its like health insurance because it allows you to pay what I will call a co-pay price for your usage, but doesn't cover all ailments) and then you get charged from then on the lower usage rate (this is like your co-pay) which is
usually around 50% off of the On Demand pricing for an instance of what you reserved for. Keep in mind you can still turn your server off without incurring charges and so forth, but you don't get back the insurance, so if you are doing just development and have your instance turned off most of the time, it probably isn't worthwhile to do Reserved Instance since you loose I'll call it
the year insurance you paid to reserve the instance. So our suggestion, if you don't know what kind of server will work for you, start with on demand, but once you've found the sweet spot of price/functionality, add a reserved instance for that size.
GoGrid Monthly Plan vs. Pay As You Go
Go Grid has a similar concept to Amazon's Reserved Instance / On Demand, but it's different in that they could care less what kind of server you are deploying and how many you are deploying. They charge you based on what they call RAM hours -- a 1 GB RAM server takes up 1*24*30 (720) RAM hours a month,
a 2 GB RAM would be 2*24*30 (1440) etc.. . To not get charged for a server, you have to delete
the server (shutting it off is not good enough as you can with Amazon).
They have different monthly plans with the Professional Cloud being the first tier and probably the most common which buys you a prepaid (2500 RAM hours = ~ 3.5 GB Dual-Quad Core server). With that they charge you $200 month and are guaranteed $200/month from you
even if you don't completely utilize your allocated RAM hours and can charge you overage charges if you exceed the GB RAM hour allocation (for overage you page $0.09/GB Hr instead of the prepaid 0.08/GB hr (so it's still pretty reasonable).
The overage charge is still much cheaper than Pay As you go pricing.
What you get basically $0.08 per Server RAM hour (so a 2GB Server uses 2 RAM hours per hour ~$0.16) -- if you were to compute the charge of this, you would find it costs $~130/month, but you are paying $200. The extra can get you another RAM hour which you can either use to build a 1 GB RAM/1 core server or add in. Unfortunately, the way they scale the servers, you can only bump up a 2GB server in 2GB/2 core increments which means you either lose the rest of the $200 you are paying, use it toward a 1GB RAM, have a sandbox of some other computer running half the time, or you bump your server up to 4GB and
pay a $0.09 overage per hour for the additional 0.5 GB RAM hour you are using (that will put you at around ~$230 for a 4GB RAM/4 core server). They did within the past year introduce the option of allowing you to bump up and down the GB RAM of your server as needed so you could bump up your server to 4GB RAM when you need a bit more processing power and bump down when done. This option is only available with newer built servers, so long time customers will have to rebuild their server to get this feature.
Each provider measures their server configurations differently. I find GoGrid's a bit easier to navigate since they use more standard terminology and have fewer permutations. With Amazon you need to do a bit of more translation and they use terminology like compute units, medium processor high memory etc which is all terminology specific to them.
Amazon has what they call instance types. They measure their processors in what they call EC2 compute units - 1 EC2 Compute = 1-1.2 GHz Xeon/Opteron processor. The High CPU medium instance (basically 350 local storage, ~ 2 virtual cores (2.4 GHz), 1.7 GB RAM) is the only one we've tried and seems to work well for the workloads we have tried them on. We'll soon be experimenting with the micro instances for development testing purposes.
The pricing on Amazon servers is different for Linux vs. Windows with Linux being much cheaper. So you generally get a better deal on Linux for Amazon and about the same deal on Amazon / GoGrid for Windows all else being the same. I haven't paid too much attention to the transfer
charges since we usually seem to be within reasonable limits that we haven't noticed a difference. If you use a lot of data transfer or disk space, you'll want to scrutinize that closer since I think GoGrid and Amazon differ a lot in terms of when they start charging you for transfer and what they charge as well as alotted disk space. We haven't scrutinized to this level of detail.
GoGrid server configurations are much easier to figure out but of course means fewer options. The processors are about the same kind of processor -- each core being about (~2GHz) and you get charged per GB RAM with the more GB RAM you have per server, the more cores you get. So if you have 2GB RAM you get 2 cores, 4GB RAM you get 4 cores, and so on and also the more storage you get.
You can use their pricing calculator to get a better sense.
Service Level Agreements (SLAS)
GoGrid has a 100% uptime SLA while Amazon has 99.5% SLA and GoGrid compensation is very generous, relative to other cloud hosting providers. I tend to ignore these most of the time. I'm more concerned with actual uptime since $100 is not going to compensate you for loss of business. I will say that early on when GoGrid was starting there were more outages than I would have liked such that it did make us consider switching, but things have gotten a 1000 times better such that we experience very few if any outages these days. Here is an interesting article someone posted in Reddit. Do SLAs really matter? A 1 year case study of 38 cloud services.