Lately, it's safe
to say that Amazon Web Services
(AWS) has become synonymous
with cloud computing; it's the platform on which some of the Internet's most popular sites and services are built. But just
as cloud computing is used as a simplistic catchall term for a variety of online services, the same can be said for AWS—there's
a lot more going on behind the scenes than you might think.
If you've ever wanted to drop terms like EC2 and S3 into casual conversation
(and really, who doesn't?) we're going to demystify the most important parts of AWS and show you how Amazon's cloud really
Cloud Compute (EC2)
Think of EC2 as the computational brain behind an online application or service. EC2 is made up of myriad instances,
which is really just Amazon's way of saying virtual machines. Each server can run multiple instances at a time, in either
Linux or Windows configurations, and developers can harness multiple instances—hundreds, even thousands—to handle
computational tasks of varying degrees. This is what the elastic in Elastic Cloud Compute refers to; EC2 will scale based
on a user's unique needs.
Instances can be configured as either Windows machines, or with various flavors of Linux. Again, each instance comes
in different sizes, depending on a developer's needs. Micro instances, for example, only come with 613 MB of RAM, while Extra
Large instances can go up to 15GB. There are also other configurations for various CPU or GPU processing needs.
Finally, EC2 instances
can be deployed across multiple regions—which is really just a fancy way of referring to the geographic location of
Amazon's data centers. Multiple instances can be deployed within the same region (on separate blocks of infrastructure called
availability zones, such as US East-1, US East-2, etc.), or across more than one region if increased redundancy and reduced
latency is desired
Elastic Load Balance (ELB)
Another reason why a developer might deploy EC2 instances across multiple availability zones and regions is for the
purpose of load balancing. Netflix,
for example, uses a number of
EC2 instances across multiple geographic location. If there was a problem with Amazon's US East center, for example, users
would hopefully be able to connect to Netflix via the service's US West instances instead.
But what if there is no problem, and a higher
number of users are connecting via instances on the East Coast than on the West? Or what if something goes wrong with a particular
instance in a given availability zone? Amazon's Elastic Load Balance allows developers to create multiple EC2 instances and
set rules that allow traffic to be distributed between them. That way, no one instance is needlessly burdened while others
idle—and when combined with the ability for EC2 to scale, more instances can also be added for balance where required.
Elastic Block Storage
of EBS as a hard drive in your computer—it's where an EC2 instance stores persistent files and applications that can
be accessed again over time. An EBS volume can only be attached to one EC2 instance at a time, but multiple volumes can be
attached to the same instance. An EBS volume can range from 1GB to 1TB in size, but must be located in the same availability
zone as the instance you'd like to attach to.
Because EC2 instances by default don't include a great deal of local storage, it's possible
to boot from an EBS volume instead. That way, when you shut down an EC2 instance and want to re-launch it at a later date,
it's not just files and application data that persist, but the operating system itself.
Unlike EBS volumes, which are used to
store operating system and application data for use with an EC2 instance, Amazon's Simple Storage Service is where publicly
facing data is usually stored instead. In other words, when you upload a new profile picture to Twitter, it's not being stored
on an EBS volume, but with S3.
is often used for static content, such as videos, images or music, though virtually anything can be uploaded and stored. Files
uploaded to S3 are referred to as objects, which are then stored in buckets. As with EC2, S3 storage is scalable, which means
that the only limit on storage is the amount of money you have to pay for it.
Buckets are also stored in regions, and within that region “are redundantly stored on multiple devices across multiple
facilities.” However, this can cause latency
issues if a user in Europe is trying to access files stored in a bucket within the US West region, for example. As a result,
Amazon also offers a service called CloudFront, which allows objects to be mirrored across other regions.
While these are the core features that make up Amazon Web
Services, this is far from a comprehensive list. For example, on the AWS landing page alone, you'll find things such as DynamoDB,
Route53, Elastic Beanstalk, and other features that would take much longer to detail here.
However, if you've ever been confused about how the basics
of AWS work—specifically, how computational data and storage is provisioned and scaled—we hope this gives you
a better sense of how Amazon's brand of cloud works.
What "platform" does Amazon
EC2 run on?...i.e, what's the underlying code used to power Amazon Cloud Services...
We know that Linux on servers is big and getting bigger. We also knew that Linux, thanks to open-source cloud programs like Eucalyptus and OpenStack, was growing fast on clouds. What he hadn’t know that Amazon’s Elastic Compute Cloud (EC2), had close to half-a-million servers already running on a Red Hat
Huang Liu, a Research Manager with Accenture Technology Lab with a Ph.D. in Electrical Engineering whose has done extensive work on cloud-computing, analyzed EC2’s infrastructure
and found that Amazon EC2 is currently made
up of 454,400 servers.
While Amazon has never officially said what it’s running
as EC2’s base operating system, it’s generally accepted that it’s a customized version of Red Hat Enterprise
Linux (RHEL). On top of that, for the virtual machines, Amazon uses the Xen hypervisor to host Linux; OpenSolaris;
Solaris; Windows 2003 and 2008; and FreeBSD and NetBSD virtual machine instances.
Amazon also doesn’t talk about how many servers their popular cloud is made
up of, so Huang had to work it out. He explained, “Figuring out EC2’s size is not trivial. Part of the reason
is that EC2 provides you with virtual machines and it is difficult to know how many virtual machines are active on a physical
host. Thus, even if we can determine how many virtual machines are there, we still cannot figure out the number of physical
servers. Instead of focusing on how many servers are there, our methodology probes for the number of server racks out there.”
Huang continued, “It may sound
harder to probe for the number of server racks. Luckily, EC2 uses a regular pattern of IP address assignment, which can be
exploited to correlate with server racks. We noticed the pattern by looking at a lot of instances we launched over time and
running traceroutes between our instances.”
Then “Understanding the pattern allows us to deduce how many racks are there. In particular, if we know a virtual
machine at a certain internal IP address (e.g., 10.2.13.243), then we know there is a rack using the /22 address range (e.g.,
a rack at 10.2.12.x/22). If we take this to the extreme where we know the IP address of at least one virtual machine on each
rack, then we can see all racks in EC2.”
By itself, though, that’s not enough. You could use try to use port-scanning to work out how many servers there
are, but that would violate Amazon’s terms of service. So instead, since each Amazon Web Services (AWS) “instance
also has an external IP address. … we can leverage DNS translation to figure out the internal IP addresses.”
With that data, he was able to work
out the number of server racks. With this he then just multiplied by the number of physical servers on the rack. “Unfortunately,
we do not know how many physical servers are on each rack, so we have to make assumptions. We assume Amazon has dense racks,
each rack has 4 10U chassis, and each chassis holds 16 blades for a total of 64 blades/rack.”
So it is that Huang worked out how many servers there are
in the EC2 cloud. It’s an impressive achievement for him and it’s an impressive example of just how important
Linux is in both server and clouds.
Competition for Amazon
Within two months, Hewlett-Packard will offer a
large and powerful cloud computing service similar to Amazon Web Services, but with more business-oriented features, according
the head of the project.
not just building a cloud for infrastructure,” said Zorawar “Biri” Singh, senior vice president and general
manager of H.P.’s cloud services. “Amazon has the lead there. We have to build a platform layer, with a lot of
third-party services.” Among the first software applications available as part of the Hewlett-Packard cloud, he said,
will be both structured and unstructured databases, and data analytics as a service.
“We won’t pull (Amazon’s) customers out by the horns,”
he said, “but we already have customers in beta who see us as a great alternative.” He did not say how much the
computing services would cost, but said “we are not coming at this at ‘8 cents a virtual computing hour, going
to 5 cents.’” Amazon recently cut its prices, and its lowest cost computing is 2 cents per hour, though with extra
features it can cost more. While Amazon tends largely to have a self-service model, Hewlett-Packard’s cloud will also
offer more personalized sales and service, Mr. Singh said.
H.P. also plans to offer a number of tools for developers to use popular online software
languages, like Ruby, Java, and PHP, as well as ways for customers to provision and manage their workloads remotely. The service
will also include an online store where people can offer or rent software for use in the Hewlett-Packard public cloud. Mr.
Singh said the company would take precautions to ensure the quality and security of these software offerings from third parties
by providing services like user authentication and billing.
Hewlett-Packard’s alternative to A.W.S. has been underway for over a year, and is
likely to be the most ambitious project yet under Meg Whitman, who became chief executive of the Palo Alto, Calif., technology
company last September. While seemingly focused on Amazon, the company is also looking at the project as a new way to compete
with its traditional rivals.
want to make it hard for an I.B.M. or an Oracle or anyone to come in,” he said. By offering a lot of tools for developers
and business-ready software to corporations, H.P. could find ways to undercut existing enterprise offerings, while surviving
against Amazon, a notoriously low-margin competitor.
Though the data centers presently supporting H.P.’s cloud are located only on the East and West Coasts of the
United States, H.P. plans to scale the program by installing small data centers across the globe. This small and dispersed
approach is a break from the goliath data centers run by cloud companies like Amazon and Google. The project will run almost
entirely on Hewlett-Packard technology.
As ambitious as the program sounds, Mr. Singh said the revenue from the public cloud business will have little initial
impact on H.P.’s annual revenue, which are in excess of $100 billion. His project will be judged, he said, as much on
how well it helps other parts of Hewlett-Packard’s business as it is on its own revenue. “We do everything from
laptops to cloud computing,” he said. “This will leverage our whole sales channel.”
The analytics Hewlett-Packard will offer will be derived
from its earlier purchases of Vertica and Autonomy. H.P. has previously talked about offering these pattern-finding capabilities
in its computer servers. In addition, it hopes to use the public cloud, which like other clouds will interoperate with the
computing resources inside companies, as a way to showcase its latest servers, which Mr. Singh said outperformed cheaper commercial
offerings in areas like power usage and computing capabilities when H.P. was designing the system.
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.
Amazon EC2 presents a true virtual computing environment, allowing you to use web
service interfaces to launch instances with a variety of operating systems, load them with your custom application environment,
manage your network’s access permissions, and run your image using as many or few systems as you desire.
To use Amazon EC2, you simply:
Select a pre-configured, templated Amazon
Machine Image (AMI) to get up and running immediately. Or create an AMI containing your applications, libraries, data, and
associated configuration settings.
Configure security and network access on your Amazon EC2 instance.
Choose which instance type(s) you want, then start, terminate, and monitor as many instances
of your AMI as needed, using the web service APIs or the variety of management tools provided.
Determine whether you want to run in multiple locations, utilize static IP endpoints,
or attach persistent block storage to your instances.
Pay only for the resources that you actually consume, like instance-hours or data transfer.
Elastic – Amazon EC2 enables
you to increase or decrease capacity within minutes, not hours or days. You can commission one, hundreds or even thousands
of server instances simultaneously. Of course, because this is all controlled with web service APIs, your application can
automatically scale itself up and down depending on its needs.
Controlled – You have complete control of your instances. You have root access to each one, and you can interact
with them as you would any machine.
You can stop your instance while retaining the data on your boot partition
and then subsequently restart the same instance using web service APIs. Instances can be rebooted remotely using web service
APIs. You also have access to console output of your instances.
– You have the choice of multiple instance types, operating systems, and software packages. Amazon EC2 allows you to
select a configuration of memory, CPU, instance storage, and the boot partition size that is optimal for your choice of operating
system and application. For example, your choice of operating systems includes numerous Linux distributions, and Microsoft
Designed for use with other Amazon Web Services
– Amazon EC2 works in conjunction with Amazon Simple Storage Service (Amazon S3), Amazon Relational Database Service
(Amazon RDS), Amazon SimpleDB and Amazon Simple Queue Service (Amazon SQS) to provide a complete solution for computing, query
processing and storage across a wide range of applications.
– Amazon EC2 offers a highly reliable environment where replacement instances can be rapidly and predictably commissioned.
The service runs within Amazon’s proven network infrastructure and datacenters. The Amazon EC2 Service Level Agreement
commitment is 99.95% availability for each Amazon EC2 Region.
– Amazon EC2 provides numerous mechanisms for securing your compute resources.
Amazon EC2 includes
web service interfaces to configure firewall settings that control network access to and between groups of instances.
When launching Amazon EC2 resources within Amazon Virtual Private Cloud
(Amazon VPC), you can isolate your compute instances by specifying the IP
range you wish to use, and connect to your existing IT infrastructure using industry-standard encrypted IPsec VPN. You can
also choose to launch Dedicated Instances
into your VPC. Dedicated Instances are Amazon EC2 Instances that run on hardware dedicated
to a single customer for additional isolation.
For more information on Amazon EC2 security refer to our Amazon Web Services: Overview of Security Process document.
Inexpensive – Amazon EC2 passes on to you the financial benefits of Amazon’s
scale. You pay a very low rate for the compute capacity you actually consume. See Amazon EC2 Instance Purchasing Options for a more detailed description.
On-Demand Instances – On-Demand Instances let
you pay for compute capacity by the hour with no long-term commitments. This frees you from the costs and complexities of
planning, purchasing, and maintaining hardware and transforms what are commonly large fixed costs into much smaller variable
costs. On-Demand Instances also remove the need to buy “safety net” capacity to handle periodic traffic spikes.
Reserved Instances – Reserved Instances give you the option to make a low, one-time
payment for each instance you want to reserve and in turn receive a significant discount on the hourly charge for that instance.
There are three Reserved Instance types (Light, Medium, and Heavy Utilization Reserved Instances) that enable you to balance
the amount you pay upfront with your effective hourly price.
Spot Instances –
Spot Instances allow customers to bid on unused Amazon EC2 capacity and run those instances for as long as their bid exceeds
the current Spot Price. The Spot Price changes periodically based on supply and demand, and customers whose bids meet or exceed
it gain access to the available Spot Instances. If you have flexibility in when your applications can run, Spot Instances
can significantly lower your Amazon EC2 costs.
Easy to Start – Quickly get
started with Amazon EC2 by visiting AWS
Marketplace to choose preconfigured software
on Amazon Machine Images (AMIs). You can quickly deploy this software to EC2 via 1-Click launch or with the EC2 console.
EC2 provides a number of powerful features for building scalable, failure resilient, enterprise class applications, including:
Amazon Elastic Block Store – Amazon Elastic Block Store (EBS) offers persistent storage
for Amazon EC2 instances. Amazon EBS volumes provide off-instance storage that persists independently from the life of an
instance. Amazon EBS volumes are highly available, highly reliable volumes that can be leveraged as an Amazon EC2 instance’s
boot partition or attached to a running Amazon EC2 instance as a standard block device. When used as a boot partition, Amazon
EC2 instances can be stopped and subsequently restarted, enabling you to only pay for the storage resources used while maintaining
your instance’s state.
Amazon EBS volumes offer greatly improved durability over local Amazon EC2 instance
stores, as Amazon EBS volumes are automatically replicated on the backend (in a single Availability Zone). For those wanting
even more durability, Amazon EBS provides the ability to create point-in-time consistent snapshots of your volumes that are
then stored in Amazon S3, and automatically replicated across multiple Availability Zones.
These snapshots can
be used as the starting point for new Amazon EBS volumes, and can protect your data for long term durability. You can also
easily share these snapshots with co-workers and other AWS developers. See Amazon Elastic Block Store for more details on this feature.
Multiple Locations – Amazon EC2 provides the
ability to place instances in multiple locations. Amazon EC2 locations are composed of Regions and Availability Zones. Availability
Zones are distinct locations that are engineered to be insulated from failures in other Availability Zones and provide inexpensive,
low latency network connectivity to other Availability Zones in the same Region. By launching instances in separate Availability
Zones, you can protect your applications from failure of a single location.
Regions consist of one or more Availability
Zones, are geographically dispersed, and will be in separate geographic areas or countries. The Amazon EC2 Service Level Agreement commitment is 99.95% availability for each Amazon EC2 Region. Amazon EC2 is currently
available in eight regions: US East (Northern Virginia), US West (Oregon), US West (Northern California), EU (Ireland), Asia
Pacific (Singapore), Asia Pacific (Tokyo), South America (Sao Paulo), and AWS GovCloud.
IP Addresses – Elastic IP addresses are static IP addresses designed for dynamic cloud computing. An Elastic
IP address is associated with your account not a particular instance, and you control that address until you choose to explicitly
release it. Unlike traditional static IP addresses, however, Elastic IP addresses allow you to mask instance or Availability
Zone failures by programmatically remapping your public IP addresses to any instance in your account.
waiting on a data technician to reconfigure or replace your host, or waiting for DNS to propagate to all of your customers,
Amazon EC2 enables you to engineer around problems with your instance or software by quickly remapping your Elastic IP address
to a replacement instance. In addition, you can optionally configure the reverse DNS record of any of your Elastic IP addresses.
Virtual Private Cloud – Amazon VPC is a secure and seamless bridge between a company’s existing IT infrastructure
and the AWS cloud. Amazon VPC enables enterprises to connect their existing infrastructure to a set of isolated AWS compute
resources via a Virtual Private Network (VPN) connection, and to extend their existing management capabilities such as security
services, firewalls, and intrusion detection systems to include their AWS resources. See Amazon Virtual Private Cloud for more details.
Amazon CloudWatch – Amazon CloudWatch is a web service that
provides monitoring for AWS cloud resources and applications, starting with Amazon EC2. It provides you with visibility into
resource utilization, operational performance, and overall demand patterns—including metrics such as CPU utilization,
disk reads and writes, and network traffic. You can get statistics, view graphs, and set alarms for your metric data. To use
Amazon CloudWatch, simply select the Amazon EC2 instances that you’d like to monitor. You can also supply your own business
or application metric data. Amazon CloudWatch will begin aggregating and storing monitoring data that can be accessed using
web service APIs or Command Line Tools.
Auto Scaling – Auto Scaling allows you to automatically
scale your Amazon EC2 capacity up or down according to conditions you define. With Auto Scaling, you can ensure that the number
of Amazon EC2 instances you’re using scales up seamlessly during demand spikes to maintain performance, and scales down
automatically during demand lulls to minimize costs. Auto Scaling is particularly well suited for applications that experience
hourly, daily, or weekly variability in usage. Auto Scaling is enabled by Amazon CloudWatch and available at no additional
charge beyond Amazon CloudWatch fees.
Elastic Load Balancing – Elastic Load Balancing
automatically distributes incoming application traffic across multiple Amazon EC2 instances. It enables you to achieve even
greater fault tolerance in your applications, seamlessly providing the amount of load balancing capacity needed in response
to incoming application traffic. Elastic Load Balancing detects unhealthy instances within a pool and automatically reroutes
traffic to healthy instances until the unhealthy instances have been restored. You can enable Elastic Load Balancing within
a single Availability Zone or across multiple zones for even more consistent application performance. Amazon CloudWatch can
be used to capture a specific Elastic Load Balancer’s operational metrics, such as request count and request latency,
at no additional cost beyond Elastic Load Balancing fees.
High Performance Computing (HPC) Clusters – Customers with complex computational workloads
such as tightly coupled parallel processes, or with applications sensitive to network performance, can achieve the same high
compute and network performance provided by custom-built infrastructure while benefiting from the elasticity, flexibility
and cost advantages of Amazon EC2. Cluster Compute and Cluster GPU Instances have been specifically engineered to provide
high-performance network capability and can be programmatically launched into clusters – allowing applications to get
the low-latency network performance required for tightly coupled, node-to-node communication. Cluster Compute and Cluster
GPU Instances also provide significantly increased network throughput making them well suited for customer applications that
need to perform network-intensive operations. Learn more about Cluster Compute and Cluster GPU Instances as
well as other AWS services that can be used for HPC Applications.
VM Import/Export –
VM Import/Export enables you to easily import virtual machine images from your existing environment to Amazon EC2 instances
and export them back at any time. By importing virtual machines as ready to use EC2 instances, you can leverage your existing
investments in virtual machines that meet your IT security, configuration management, and compliance requirements. You can
export your previously imported EC2 instances back to your on-premise environment at any time. This offering is available
at no additional charge beyond standard usage charges for Amazon EC2 and Amazon S3. AWS Marketplace – AWS Marketplace is an online
store that helps you find, buy and quickly deploy software that runs on AWS. You can use AWS Marketplace’s 1-Click deployment
to quickly launch pre-configured software and be charged for what you use, by the hour or month.
AWS handles billing
and payments, and software charges appear on your AWS bill.