In my last post on Cloud Computing I had discussed about the various terms related to Cloud Computing like SaaS,Utility Computing,PaaS etc.After having a bit clearer understanding of these terms I have now started taking look at the various product and services offerings available in the cloud.To start with I have chosen the following Infrastructure Services provided by Amazon.
- Amazon Elastic Compute Cloud (EC2)
- Amazon Simple DB
- Amazon Simple Storage Service (S3).
In this post I will discuss about the Amazon EC2.
As the billing model is pay as you use the definition of unit of consumption is important.Amazon defines the EC2 Computing Unit as "One EC2 Computing unit is equivalent to a CPU capacity of 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor".
I am not sure what will be the unit in case of other vendors but this should be gradually standardized as this paradigm matures.
The instance types are classified based on computational resources available as follows:
- Standard Instances
- Small Instance (Default) 1.7 GB of memory, 1 EC2 Compute Unit, 160 GB of instance storage, 32-bit platform
- Large Instance 7.5 GB of memory, 4 EC2 Compute Units , 850 GB of instance storage, 64-bit platform
- Extra Large Instance 15 GB of memory, 8 EC2 Compute Units,1690 GB of instance storage, 64-bit platform
- High-CPU Medium Instance 1.7 GB of memory, 5 EC2 Compute Units , 350 GB of instance storage, 32-bit platform
- High-CPU Extra Large Instance 7 GB of memory, 20 EC2 Compute Units , 1690 GB of instance storage, 64-bit platform
The details on pricing per instance type is available at:
http://aws.amazon.com/ec2/#pricing
At present each of these instances are supporting operating systems like Fedora,Red Hat Linux and Windows 2003 are supported.Along with these operating systems databases like SQL Server 2005 Standard Edition,MySQL and Oracle 11g are supported.The detailed list of OS and Software is available at:
Now let us get into the key components that we need to configure and work with in order to deploy the applications in Amazon's cloud:
- Amazon Machine Image (AMI)
- AMI are the unit of deployment in EC2.These are actually encrypted package files containing necessary software bits required run an EC2 instance.For example an AMI might contain Linux/Apache and a custom website or another custom application.AMIs are of three types:
- Public - These are preconfigured AMIs made freely available to public by Amazon or Amazon community.You can always start with an existing AMI as a base to create your own AMI.
- Private - These are your privately owned AMIs and not exposed to public
- Paid - These are made available by third parties and we need to pay for them.
- AMI are the unit of deployment in EC2.These are actually encrypted package files containing necessary software bits required run an EC2 instance.For example an AMI might contain Linux/Apache and a custom website or another custom application.AMIs are of three types:
The AMIs are stored in Amazon Simple Storage Services (S3).This I will cover in details in my next post.
The steps involved in creating an AMI and running an instance is nicely explained in the post below:
http://www.onlamp.com/pub/a/onlamp/2008/05/13/creating-applications-with-amazon-ec2-and-s3.html
- Amazon Elastic Block Store(EBS)
- This represents the persistence storage volumes for the EC2 instances.This storage volumes can be switched between EC2 instances.This EBS volumes comes with built in redundancy and are automatically replicated, but in the same availability zone.So if we need more reliability and want to store data in multiple availability zones then we need to take a snapshot of the EBS and push it to S3 which replicates data in multiple availability zones.
NOTE: In EC2 data is stored and replicated across various locations.These locations are composed of
- Regions
- These are separate geographic location like US and Europe with no connectivity between the two.
- Availability Zones
- Within a region there are multiple availability zones which are insulated from each other (i.e. fault in one availability zones does not affect the other) but connected via low latency network.
A very nice discussion on EBS can be found in this post:
http://blog.rightscale.com/2008/08/20/amazon-ebs-explained/
- Elastic IP Address
- Elastic IP Addresses are static IP addresses specially designed for cloud and is associated with an account not any instance.This allows the user to attach a different instance with this IP in case one instance fails.Thus end users will be accessing the application using same IP as before.
In the next post I will discuss about Storage Services.
