Priocept has recently been working side-by-side with two alternative cloud computing service providers: Rackspace and Amazon AWS. This gave us a great opportunity to compare the details of both providers. On both projects the software platform was based around Magnolia, a Java based CMS.
IaaS, PaaS, SaaS
Both Rackspace and Amazon AWS have Infrastructure as a Service (IaaS) offerings, which is one of three cloud computing service models alongside Platform as a Service (PaaS) and Software as a Service (SaaS). All three of these models aim to provide clients access to resources in a remote virtual environment, but have various differing characteristics.
In the IaaS model, a third-party provider hosts hardware and software, storage and network equipment, and a virtualisation platform, on behalf of the user. The provider is responsible for maintenance, system backup and the actual physical infrastructure in a data centre. The main advantage of this model is that the user does not need to purchase or otherwise acquire physical servers. Instead, they can purchase virtual and scalable computing resources as needed, and they can do this in a very short timeframe, often providing access to their servers in a matter of minutes.
PaaS and SaaS we will cover another time!
IaaS is also very cost effective because of the high scalability which allows businesses to switch some servers off during low demand periods. This saves costs as they will only be charged on a pay-per-use basis. This is typically by the hour, but fees may vary according to the size of the resources in use. The most popular IaaS services are Amazon AWS (with EC2 and S3), Microsoft Azure, Google’s Compute Engine and Rackspace Managed Cloud.
Priocept have recently been using both Amazon AWS EC2 and Rackspace Managed Cloud services-both examples of IaaS – for web application hosting. We thought we would share some of the practical differences we noticed with the basic functionality of both services.
Amazon AWS incorporates the concept of Security Groups, which allows filtering of traffic to one or more servers. The user or administrator can add specific rules that allow inbound and outbound traffic from specific IP addresses and only for specific ports. This differs from Rackspace, where for each “rule”, you have to create a network and assign that network to a specific cloud server. This means that the user may end up managing port access at the virtual machine level rather than building settings for a group of virtual machines.
SSH in to Servers
Both Amazon AWS EC2 and Rackspace Cloud Servers allow the user to SSH to virtual machines. However, with Amazon AWS EC2 the user has to use 2048-bit SSH-2 RSA keys to login to instances, while with Rackspace, once the VM is created, the user can simply login using a username and password. Simpler, but arguably less secure.
Rackspace also allows the user to login as the root user on a Linux machine, and it is the administrator’s responsibility to create other users who have fewer privileges. In contrast, Amazon AWS provides a user called “ec2-user” with limited privileges. Again, Rackspace’s model is simpler, but arguably less secure.
Amazon EC2 allows users to choose from thousands of predefined virtual machine templates which are referred to as Amazon Machine Images (AMIs). These templates already contain the software configuration (such as operating system, application server and applications) required to launch the instance. For example, you can find dozens of AMIs with the application server Tomcat pre-installed.
These images can be selected from three different sources. Amazon has an online marketplace (creatively named Amazon Marketplace) where the template can be selected, the second option is to use one image created by somebody else in the community, and the third option is to use an AMI previously created by the user or account administrator. These templates can be used whenever the user wants to create a new a server based on a template.
In Rackspace, you have two options if you want to start a new cloud server. The first is to use a saved image of another server that has been previously saved. Alternatively, you can choose between some basic templates that are provided by Rackspace. Again, the Rackspace model is simpler than Amazon, but in this case also lacks flexibility.
With regards to monitoring, health checks and alerts, both services provide a number of metrics such as CPU utilisation, disk read/writes, network in/out and different health checks. The administrator can set alerts based on several parameters in both services.
In Amazon AWS, for relational databases, you have the option to choose a service called RDS, which wraps the database of your choice and makes it possible to assign security groups and check some important metrics such as CPU utilisation, DB connections, Read/Write operations and free storage space. Rackspace also offers a service that allows users to see some basics metrics and automatically create backups. Yet again, the Rackspace offering is simpler, but less powerful.
Support is a common concern for our clients, especially when hosting in the “cloud”. This is also a key area where the offerings of AWS and Rackspace differ.
Rackspace offers a managed cloud solution that allows businesses to benefit from the scalability, low cost, and high-performance associated with cloud-based solutions, whilst also being able to access Rackspace-provided support services that may required for an application in live service. IT managers are reassured that they can pick the phone at any time and speak directly to a support technician and get instant help.
In contrast, Amazon AWS was designed to be used directly by users with a strong technical background. As such, AWS services are typically managed by internal technical resources. Amazon can also offer a good level of support, but the price can be much higher than the Rackspace Cloud solution. Ultimately, AWS provide pure cloud computing services rather than focusing on managed cloud hosting operations.
To bridge this gap, Rackspace have recently introduced support for AWS that allows you to host your application in AWS infrastructure and get all the managed cloud hosting services associated with using Rackspace. This is effectively a support services “wrapper” provided by Rackspace around AWS that provides certified AWS architects to help with setting up and maintaining applications. This comes on top of Rackspace’s usual levels of so-call “fanatical” support.
This article is just a brief overview of what Amazon AWS and Rackspace offer in terms of IaaS cloud services. Amazon AWS in particular offers a universe of cloud services for almost every need. To get a deeper understanding it is recommended that you sign up to Amazon AWS and benefit from their one year free tier to get some hands-on experience with it.
Both cloud providers have strengths and weaknesses in different areas. With Amazon AWS you can have more flexibility and benefit from a wider range of cloud services.
Rackspace currently only have an IaaS offering, with which they bundle their quick and reactive support. They offer a friendly dashboard that allows users to easily manage their cloud servers, databases, and network settings, without a steep learning curve, but they lack the PaaS offerings of Amazon or Google.
In terms of PaaS cloud services, Google is probably the strongest player in the market, but it requires a higher level of skill to be managed properly and, if a premium support level is required, the price can easily go up.
If a business needs Amazon’s flexibility and variety of services, but also wants a trusted cloud management support solution, then Rackspace support for Amazon AWS cloud may be the obvious choice. In our experience, there is value in this approach and we have enjoyed working with both solutions individually, and with Rackspace and AWS combined as part of the hybrid.