Comparing the Cloud: EC2, Mosso, and GoGrid
The idea of providing IT capabilities as services using the Internet is relatively new and has recently peaked a lot of interest. There have been several articles on Infoq which provided “An Introduction to Virtualization” and security but there hasn’t been a comparison of the different “cloud” providers. This article will cover three “cloud” companies that provide server centered solutions. It will provide an overview of how to get started with each one. Each will also be compared in terms of features, pricing and availability.
What is cloud computing
Often times when learning about a new technology it’s easy to jump in feet first without having a basic understanding of the fundamentals, only later finding yourself going back to the basics. To avoid having that happen a simple definition of cloud computing proves useful. Wikipedia defines it as:
“A style of computing where IT-related capabilities are provided “as a service” using Internet technologies to multiple external customers. It allows users to consume services without knowledge of, expertise with, nor control over the technology infrastructure that supports them.
Resources being accessed are typically owned and operated by a third-party provider on a consolidated basis in datacenter locations. Consumers of cloud computing services purchase computing capacity on-demand and are not generally concerned with the underlying technologies used to achieve the increase in server capability. There are however increasing options for developers that allow for platform services in the cloud where developers do care about the underlying technology.”
Generally this holds true but some providers do provide low-level control while others aim to make it as simple as possible.
Why you'd use it
There may be a vast array of reasons as to why an individual or business might use cloud computing. Some reasons include:
- Cost – connectivity costs are falling and hardware is becoming more efficient at scaling
- Overhead – not having to purchase and maintain physical hardware as well as the space to store it reduces overhead costs
- Reliability – allows for scaling up/down easily to provide reliable services to customers
Those are just a few possible reasons why cloud computing may be a viable option, but one thing is certain, making a decision as to which cloud service to use is not an easy task.
The Amazon website provides the following description to explain its service:
“Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.
Amazon EC2's simple web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon's proven computing environment. Amazon EC2 reduces the time required to obtain and boot new server instances to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use. Amazon EC2 provides developers the tools to build failure resilient applications and isolate themselves from common failure scenarios.”
Before getting started with Amazon EC2, Amazon recommends that should be somewhat comfortable in a Linux environment, be somewhat familiar with Web Services, have an SSH client and Java 5 (or newer) installed. Following the instructions outlined below a link will be provided to Amazon’s documentation providing explicit step-by-step instructions.
In order to dig in you must first setup three Amazon accounts. One each at Amazon Web Services (AWS), Amazon Simple Storage Service (Amazon S3) and Amazon EC2. Once you have an AWS account creating the AS3 and AEC2 accounts are just a few clicks away.
Once the accounts are created you need to setup the command line tools. Amazon EC2 provides command line tools as well as an API for managing your cloud. The tools are bundled as a zip (download) which are almost ready to use once extracted, first a few environment variables will need to be configured (EC2_HOME, EC2_PRIVATE_KEY and EC2_CERT).
With the configuration and setup out of the way the next thing to do is launch an Amazon Machine Image (AMI). The command line utilities provide methods for creating your own images as well as listing those made public by Amazon. Once an image is selected you’ll need to generate and SSH keypair which allows you to login to the instance. If you use PuTTY you’ll need to convert the private key to PuTTY’s format, instructions can be found here.
Next you simply use the “ec2-run-instances” command-line tool to start the image selected previously. Momentarily it will be in a “running” state, which can be checked by using the “ec2-describe-instances” command. Before access is available the appropriate ports need to be authorized to be opened. To allow SSH and HTTP you’d use the “ec2-authorize” tool to allow access to port 22 and 80, respectively.
Now to verify things worked properly just access the site URL (given as output when the “ec2-run-instances” command was executed”, something like ec2-67-202-51-223.compute-1.amazonaws.com) using a web browser. With the basic setup and configuration out of the way you can begin deploying content and working with your new cloud.
For detailed instructions the Amazon EC2 Technical Documentation site provides plenty of information. Next we’ll take a look at setting up and configuring GoGrid.
GoGrid touts their service as being the only one which provides true Control in the Cloud TM. They offer a multi-server control panel allowing you to deploy and manage load-balanced cloud servers in minutes. Getting started is a bit simpler and less time consuming than Amazon EC2. Just browse to the GoGrid site and create an account. Within a couple minutes you’ll have a confirmation email and you’re ready to go.
Once you login to your account you’ll be greeted with a simple interface. Clicking the “Add” button provides a few options (shown below):
To create a web server just click the appropriate button. A new window is displayed which requires a few input parameters.
It allows for a name, “simple”, and a description, “a simple web server”. It also requires an IP address which are displayed on the left side of the screen and automatically appear as you start typing. These IP addresses are provided by GoGrid and tied to real physical machines. At this point you also choose the amount of RAM (512MB, 1GB, or 2GB), OS (CentOS, Red Hat, Windows 2003 Server) and the Image (Apache, LAMP, IIS).
Once the server is configured it’ll be accessible almost instantly. Opening a browser to the IP address chosen displays a verification message.
The networking is handled by GoGrid but they do allow additional IP addresses to be added and DNS information can be configured, if for example you own a domain name you could point it to your GoGrid server.
Adding load balancers and databases is just as simple as create a web server, just a few clicks and some simple configuration and within a minute it’ll be up and running. Adding additional servers can be done be through the web interface (as shown above) or by using the GoGrid API, which is a REST style web service API which provides all of the web interface functionality accessible with either Java, PHP, Python and Ruby.
Next we’ll take a look at Mosso, a cloud service backed by Rackspace.
Mosso takes a slightly different approach from the other providers by deciding to merge the idea of cloud computing with the traditional managed/shared server environment that many web hosts provide. Mosso doesn’t provide root access to their severs but instead provide servers with operating systems and software pre-installed, much like a standard web host. This allows Mosso to easily monitor and scale the service as needed which frees the end user from having to worry about operating systems, devices, load balancing, etc.
To get started you first create an account at the Mosso website, and wait a few moments for a confirmation email. Once logged in, the control panel is displayed.
One of the driving goals behind Mosso was to make it simple to use, and much like GoGrid it just takes a few clicks to get rolling. By clicking on the “Websites & Email” button you can easily setup a website to point at an existing domain or to a new domain for registration.
The configuration page provides some basic options including number of databases and web server technology.
Again the wizard is straightforward and with just a few clicks you’ll be provided with a summary of the expected charges so you know exactly what to expect. Once the initial configuration is done, FTP access is available to begin uploading content to the site. While using the service you get the feeling that it’s just a standard web host. There are areas in the control panel that let you add SSL certificates, user accounts, email settings, change underlying technology (i.e. Linux/Apache to Ruby on Rails), view site statistics and more.
With an introduction to Amazon EC2, GoGrid and Mosso out of the way the next section will provide a comparison of all three services.
|Windows Support||Yes (see Qemu)||Yes||Yes|
|Open Solaris Support||Yes||No||No|
|Graphical User Interface||No||Yes||Yes|
Amazon is currently the only one offering custom images to be deployed to their servers. There is information on Amazon’s website for deploying Open Solaris based images and there are few sites which explain how to deploy Windows Server 2003. GoGrid does expect to provide the ability to create an image of any server in the future which theoretically would allow for additional operating system support.
All three providers allow for FTP access. Mosso does not provide full root access. Mosso is also the only one of the three compared here that does not provide any hardware configuration capabilities, although that is intentional and by design.
There are three areas that have pricing associated with them including instance type (Standard vs High-CPU), Data Transfer and Elastic IP addresses.
A standard instance ranges from $0.10 per instance-hour to $0.80, and the High-CPU instances range from $0.20 - $0.80 per instance-hour. The Data Transfer rates vary based on where the data goes out to and comes in from (i.e. Internet, Availability Zone, Regional, etc) with pricing between $0.00 to $0.17 per GB transferred.
Lastly the Elastic IP addresses vary from free to $0.10 per Elastic IP address remap. It really depends on how the IP addresses are used throughout the month.
The rates for GoGrid are spread across Server RAM Hour, Outbound Data Transfer and Inbound Data Transfer. The pricing plan is much simpler with a set price of $0.19 per Server RAM Hour, $0.50 per GB of outbound data transferred, and all inbound data transfer is free.
Mosso provides a standard flat rate of $100 per month which they expect will cover “most developers”. This includes:
- Online software to create sites, databases, and email accounts -- as many as you need the moment you need them.
- 50 GB of high-performance SAN storage space
- 500 GB of monthly bandwidth
- 10,000 compute cycles per month (Learn More)
- 24 x 7x 365 phone and live chat support included
For bigger applications, with around 100,000 visitors per month or more, Mosso provides incremental pricing as your needs scale. Additional disk space is $0.50 per GB, bandwidth is $0.25 per GB and additional compute cycles cost an extra $0.01 per compute cycle.
Amongst the three services covered in this article only Mosso is available in “production” mode. Both Amazon EC2 and GoGrid are still labeled as being in “beta” although they are both being quickly adopted and maturing.
With the recent buzz over cloud computing there seems to be an ever growing sea of cloud service providers appearing. Making the decision to use one of these services is no trivial task since each one has its own unique features, pricing, flexibility and control. This article aimed to provide an introduction on getting started with Amazon EC2, GoGrid and Mosso as well as a side-by-side comparison of some of their features, pricing and availability. For additional information have a look at some of the following links:
Post on my blog
Some time ago I did a similar comparison of 8 cloud providers, too; maybe it can be useful. You can find it here.
Windows + EC2
Even though you can run Windows 2003 with Qemu on top of EC2, this configuration is not officially supported by Amazon.
It is pretty slow and you cannot install SQL server for example because the install fails during hardware detection.
In short this is not meant for production use.... not yet...
The GoGrid Nightmare.
I never, ever post negative reviews about anyone, but this company is like a torture chamber that I just escaped from. Once you sign up, its like a New York Taxi Cab. You ask for a ride to the airport and the most incredibly exhaustive trip of your life ensues. The meter starts running and this company will have you going down so many side streets and supposed short cuts that the only thing you will feel is your wallet getting lighter.
Terrible, terrible, terrible company. God help you if you give them your credit card number! They will fight for that number like a pit bull fights for an ugly cat. Do yourself a favor and read Diego Carvana's review of cloud servers and select an honest one that wont jack you.
Please update comparison with Rackspace Cloud Servers
New Features from GoGrid
I wanted to fill in your readers on a few more exciting features and announcements that have come from GoGrid. For starters, a few months ago we officially came out of beta as well as announced the 2.0 version of GoGrid. The most exciting feature coming from this was that of the personal server images, called MyGSIs. You had highlighted in your review that Amazon was the only provider to allow personal server images. Now with MyGSIs, GoGrid users can create what we call a "sandbox server" where they can put all of their applications, code and data, dial the server in to their liking, then run preparation scripts that heavily compress the image and move them to GoGrid's Cloud Storage. With GoGrid Cloud Storage, the first 10GB is free, which means that you can store between 1-2 MyGSIs for FREE within Cloud Storage. Above that free allocation, images only cost a few dollars a month to store. Then, when you want to instantiate clones or copies of that personal server image, you can deploy them in minutes using the GoGrid Web Control Panel. It's a pretty exciting feature to now have.
Another exciting feature that we provide is that of "Cloud Connect" which many refer to as "Hybrid Hosting." More information on Cloud Connect can be found here. With a Hybrid Hosting scenario, users can deploy dynamically scalable web application servers using GoGrid as their front end infrastructure and then use ServePath dedicated, managed physical servers for their back-end infrastructure (for high I/O and managed services).
In terms of the one negative comment in this post, unfortunately I cannot comment on this specific user's situation as they have not responded to numerous phone calls and emails from us, offering to help resolve his issues. If there is no attempt by that user to open a dialog despite our best efforts, then it is difficult to address that specific situation. We are always here to help.
We fully stand behind our Service Level Agreement (SLA) which is one of the most robust within the hosting industry in general. In fact, we fully honored our SLA even during our Beta period. Each GoGrid account not only comes with free support but also with a Service Team which consists of billing, acct mgmt, support and others to ensure that every account has a balanced team of experts.
If anyone has questions about GoGrid, Cloud Computing or ServePath, feel free to contact me directly at: michael AT GoGrid.com.
Technology Evangelist for GoGrid