Cloud computing has become a hot topic in recent years, but if you ask half a dozen people what it is you’ll probably get six different answers! This is just a hallmark of this technology’s relative novelty and its continuing evolution. Despite this, there are already some leaders in this area. Amazon Web Services (AWS), a cloud computing platform from online retail giant Amazon.com Inc., is one of them.
In the cloud, there are a few distinct markets, but AWS is by far the biggest player in one of them: Infrastructure as a Service (IaaS). AWS offers a number of potential benefits to anyone looking to launch a new venture or to optimize on expenses for an existing system. However, there are a few potential issues to consider. (For background reading, check out A Beginner’s Guide to the Cloud: What It Means for Small Business.)
The defining characteristic of any cloud service is remote application hosting, which is delivered using virtualization. Where traditional hosting involved organizations investing in physical resources to deploy their systems, cloud hosting adopts a virtual model, with the cloud provider handling the hardware and application developers accessing the product through user interfaces. Amazon’s cloud service provides a variety of utilities to manage hosting resources.
Cloud hosting platforms such as AWS facilitate an incredibly diverse range of IT projects, from commercial, customer-facing applications to internal organizational systems. This allows companies to shift their IT infrastructure onto the cloud in a way that is cost-effective over the long term. AWS is designed to support what is sometimes described as service-oriented development. This puts application services at center stage, delivering functionality through loosely coupled components. As far as the user is concerned, the system functions as a coherent unit.
For a cloud service to work, the interfaces between hosting resources and application elements must be powerful, and with Amazon, they are. The process relies on virtualization, which creates a level of abstraction on top of the physical network that is actually delivering your application. Amazon Elastic Compute Cloud (EC2) provides advanced API and management utilities for deploying applications, while Amazon Simple Storage Service (S3) handles data storage.
Where an IaaS platform like AWS differs from its counterparts in the Platform as a Service (PaaS) and Software as a Service (SaaS) markets is in the level of influence users have over the application details. AWS allows uers to control the software, while Amazon takes care of the hardware. Amazon has around 90% of IaaS cloud market share, with its closest rival being Rackspace. Many developers do prefer Rackspace over Amazon, and many say that the company has a better reputation for customer service.
What makes Amazon’s cloud platform uniquely competitive essentially stems from the company’s ability to create economies of scale, and to offer value through flexibility. Like many cloud platforms, Amazon has the resources to provide even small businesses with access to potentially enormous amounts of processing power. With AWS development, teams can focus on the tasks their applications are implementing, rather than being snagged by software or hardware problems.
With virtually unlimited processing possibilities, successful experimental projects are effectively running supercomputers on Amazon’s cloud. This power is key to the appeal of cloud computing in general, but what Amazon brings more than any other provider is access to it for new and emerging projects with limited funds. Because the service works on a pay-as-you-use basis, innovation is not prohibited by the need for upfront investment. The service is designed to be extremely scalable, adapting to meet demand as necessary. (This is one of the reasons cloud computing holds so much potential. Learn more in Cloud Computing: Why the Buzz?)
The number one issue with any cloud platform, including AWS, is that you have no physical access to the servers hosting your applications. This can be extremely frustrating when something goes wrong. For development teams used to running their own servers or at least having access to the data centers housing them, this lack of access can be a difficult one to adjust to. In the end you are at the mercy of the provider to do everything they can to avoid physical failures and to handle them promptly if they do occur, which is not always what happens, as we’ll see below.
Let’s look at the main factors for AWS and other cloud platforms.
Cost is by far the biggest factor separating Amazon from its rivals. As with some other platforms, AWS users only pay for resources as they use them, so there’s much less risk involved in launching that killer idea. AWS is so vast that it is able to allocate resources as and when they are required; when one business no longer needs a given set of resources, they simply go back into the available pool. For commercial applications, what it boils down to is that businesses only need to spend money when they’re making money.
In general, this offers a marked evolution from traditional types of hosting, where users pick from a limited range of packages with set amounts of data storage, transfer, processing and even choice of technologies. In this scenario, at one end of the scale users can end up paying for much more than they’re using; at the other, the resources they purchased may not stretch to meet their growing needs. As Oracle and Rackspace entered the market in 2011, Amazon announced that it would cut the price of some of its premium service plans by 50 percent in an effort to be more competitive. When it comes to cost, none of Amazon’s rivals are really able to compete. The sheer scale of Amazon’s network puts it in a dominant position to offer low prices.
Cloud platforms are able to provide unprecedented scalability, and the size of the AWS network puts it in a strong position to implement this. If an application is met with a sudden increase or decrease in demand, the resources can stretch or shrink to fit. This means that users do not need to worry about upgrading or downgrading, as these changes can be managed instantly through the AWS account. If a spike or drop in services is isolated to the short term, this can be accommodated without incurring additional costs. However, some developers have found that Rackspace offers a better range in terms of the size of virtual machines available, while with AWS you may find yourself choosing between instances that are either too big or too small.
There have been a few well-reported problems with reliability in AWS systems in the past. In 2011, a number of major sites including Reddit, Foursquare, Netflix and Quora were badly affected by AWS outages, with Amazon taking far longer than customers had expected to resolve the issue.
The AWS publicity material plays up the fact that the service provides developers with the ability to build applications that are able to cope with network and power failures. The simple fact that AWS systems are deployed on a global cloud means that they need not be tied to specific physical machines – or even to a single geographical area. Developers can utilize the availability zones within AWS to design systems that are physically deployed and backed up in multiple global areas. However, while it is technically possible to create systems that are genuinely robust in the face of outages, in reality there are considerable additional costs involved, making a potential dent in initial savings.
Amazon Web Services support multiple technologies at both operating system and application levels. This flexibility is characteristic of other cloud platform too, as it sustains focus on services and tasks, letting users choose the right tools for the job. However, many developers report finding the Rackspace interfaces easier to work with, with a greater level of support and an environment that’s generally friendlier.
Sunshine Through the Cloud?
AWS has some clear benefits, but these need to be weighed against the potential for problems and the selling points of rival providers. Plus, the decision to shift an existing application or IT infrastructure to any cloud can never be taken lightly. If you do decide to deploy a system on a cloud platform such as AWS, it’s worth considering options that provide some level of backup outside the cloud, as many projects have started doing.
The most compelling reasons for moving to the cloud are a need to cope with significant changes in demand and a desire to deploy new ventures that may have unpredictable processing needs. In order to gain these benefits, you basically have to accept the necessary drawbacks of not having physical control over your hardware. (Read more about some of the drawbacks of cloud computing in The Dark Side of the Cloud.)