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. Completely 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. Instances can be rebooted remotely using web service APIs. You also have access to console output of your instances. Flexible – You have the choice of multiple instance types, operating systems, and software packages. Amazon EC2 allows you to select a configuration of memory, CPU, and instance storage that is optimal for your choice of operating system and application. For example, your choice of operating systems includes numerous Linux distributions, Microsoft Windows Server and OpenSolaris. Designed for use with other Amazon Web Services – Amazon EC2 works in conjunction with Amazon Simple Storage Service (Amazon S3), 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. Reliable – 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. Secure – Amazon EC2 provides web service interfaces to configure firewall settings that control network access to and between groups of instances. 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. 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 usage charge for that instance. After the one-time payment for an instance, that instance is reserved for you, and you have no further obligation; you may choose to run that instance for the discounted usage rate for the duration of your term, or when you do not use the instance, you will not pay usage charges on it.
Cloud computing is a general term for anything that involves delivering hosted services over the Internet. These services are broadly divided into three categories: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). A cloud service has three distinct characteristics that differentiate it from traditional hosting. It is sold on demand, typically by the minute or the hour; it is elastic -- a user can have as much or as little of a service as they want at any given time; and the service is fully managed by the provider.
A cloud can be private or public. A public cloud sells services to anyone on the Internet. (Currently, Amazon Web Services is the largest public cloud provider).
A private cloud is a proprietary network or a datacenter that supplies hosted services to a limited number of people. When a service provider uses public cloud resources to create their private cloud, the result is called a virtual private cloud.
Private or public, the goal of cloud computing is to provide easy, scalable access to computing resources and IT services. requirements change.
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud.
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.
Overview of cloud computing including Google, Salesforce, Amazon, Microsoft, Yahoo & Zoho
Amazon Elastic Compute Cloud (also known as "EC2") is a commercial web service that allows customers to rent computers on which to run their own computer applications.
A customer can create, launch, and terminate server instances as needed, paying by the hour for active servers, hence the term "elastic".
A customer can set up server instances in zones insulated from each other for most failure causes so that one may be a backup for the other and minimize down time
Use webservices interface to launch instances with variety of operating systems, load them into your custom application environment, manage your network access permissions and run your image using as many few systems as you desire
To use Amazon
Create Amazon Machine Image
Upload AMI into Amazon S3
Use Amazon EC2 to configure network security and access
Choose instance types and operating system. Start/terminate and monitor your instances using webservice api’s
Determine whether you want to run in multiple locations, utilize static IP endpoints, or attach a persistent block storage for your instances
Pay only for resources you consume, like instance hours and data transfer
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 attached to a running Amazon EC2 instance and are exposed as standard block devices.
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).
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.
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, Europe and USA.
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.
Rather than 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.
Amazon CloudFront is a web service for content delivery. It integrates with other Amazon Web Services to give developers and businesses an easy way to distribute content to end users with low latency, high data transfer speeds, and no commitments.
Amazon CloudFront delivers your content using a global network of edge locations. Requests for your objects are automatically routed to the nearest edge location, so content is delivered with the best possible performance.
Amazon CloudFront works seamlessly with Amazon Simple Storage Service (Amazon S3) which durably stores the original, definitive versions of your files. Like other Amazon Web Services, there are no contracts or monthly commitments for using Amazon CloudFront – you pay only for as much or as little content as you actually deliver through the service.
In Amazon CloudFront, your objects are organized into distributions. A distribution specifies the location of the original version of your objects. A distribution has a unique CloudFront.net domain name (e.g. abc123.cloudfront.net) that you can use to reference your objects through the network of edge locations.
To use Amazon CloudFront, you:
Store the original versions of your files in an Amazon S3 bucket.
Create a distribution to register that bucket with Amazon CloudFront through a simple API call.
Use your distribution’s domain name in your web pages or application. When end users request an object using this domain name, they are automatically routed to the nearest edge location for high performance delivery of your content.
Pay only for the data transfer and requests that you actually use.
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.
Amazon Simple Queue Service (SQS) provides access to the reliable messaging infrastructure used by Amazon. You can send and retrieve messages from anywhere using simple REST-based HTTP requests.
You can create an unlimited number of queues and send an unlimited number of messages. The messages are stored by Amazon across multiple servers and data centers to provide the redundancy and reliability you need from a messaging system.Each message can contain up to 8KB of text data.
The only Unicode characters that are legal in a message are #x9 | #xA | #xD | [#x20 to #xD7FF] | [#xE000 to #xFFFD] | [#x10000 to #x10FFFF].Each queue can have a configurable visibility timeout, which is used to control access to the queue by multiple readers.Once an application reads a message from the queue, the message will not be visible to any other readers until the timeout period expires.
A Web-based Interface to Manage Your Services.Access and manage Amazon’s growing suite of infrastructure web services through our new point-and-click, web-based user interface. The AWS Management Console gives you a quick, global picture of your cloud computing environment so that you can see what resources you’re operating and conveniently manage those resources.
EC2 uses Xen virtualization. Each virtual machine, called an "instance", functions as a virtual private server in one of three sizes; small, large or extra large. Amazon.com sizes instances based on "EC2 Compute Units" — the equivalent CPU capacity of physical hardware.One EC2 Compute Unit equals 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor.
An Amazon Machine Image (AMI) is simply a packaged-up environment that includes all the necessary bits to set up and boot your instance. Your AMIs are your unit of deployment. You might have just one AMI or you might compose your system out of several building block AMIs (e.g., webservers, appservers, and databases).Once you create a custom AMI, you will need to upload it to Amazon S3.
Amazon EBS volumes are created in a particular Availability Zone and can be from 1 GB to 1 TB in size. Once a volume is created, it can be attached to any Amazon EC2 instance in the same Availability Zone. Once attached, it will appear as a mounted device similar to any hard drive or other block device. At that point, the instance can interact with the volume just as it would with a local drive, formatting it with a file system or installing applications on it directly.
The Security Group defines which ports are opened in Amazon's firewall to allow incoming connections to your instance. For sub-accounts, the default group we provide allows ingress on the SSH, HTTP, and HTTPS ports (22, 80 and 443 respectively).Instances within the same security group will be able to communicate with each other.
Amazon Security Groups are EC2 region-specific.You cannot use a Security Group that you created in EC2-US for an instance in EC2-EU.
Amazon S3 is storage for the Internet. It is designed to make web-scale computing easier for developers.Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. Store any amount of data inexpensively and securely, while ensuring that the data will always be available when you need it.
Reliability:It is designed to tolerate failures and repair the system very quickly with minimal or no downtime. Amazon provides a service-level agreement (SLA) to maintain 99.99 percent availability.
Simplicity:S3 is built on simple concepts and provides great flexibility for developing your applications. You can build more complex storage schemes, if needed, by layering additional functions on top of S3 components.
Scalability:The design provides a high level of scalability and allows an easy ramp-up in service when a spike in demand hits your Web-scale applications.
Inexpensive:S3 rates are very competitive with other enterprise and personal data-storage solutions on the market.
The three basic concepts underpinning the S3 framework - 1).Buckets
Buckets are the fundamental building blocks. Each object stored in Amazon S3 is contained within a bucket.Think of a bucket as analogous to a folder, or a directory, on the file system.
One of the key distinctions between a file folder and a bucket is that each bucket and its contents are addressable using a URL. For example, if you have a bucket named "nirvikar," it can be addressed using the URL http://nirvikar.s3.amazonaws.com .
Buckets cannot be nested within each other, so you can't create a bucket within a bucket. You can affect the geographical location of your buckets by specifying a location constraint when you create them. This will automatically ensure that any objects that you store within that bucket will be stored in that geographical location.
Bucket names need to conform to the following S3 requirements:
The name must start with a number or a letter and must be between 3 and 255 characters.
A valid name can contain only lowercase letters, numbers, periods, underscores, and dashes.Though names can have numbers and periods, they cannot be in the IP address format. You cannot name a bucket 192.168.1.254.
The bucket namespace is shared among all buckets from all of the accounts in S3. Your bucket name must be unique across the entire S3.
The name cannot end with a dash. For example, myfavorite-.bucket.com is invalid.
Objects contain the data stored within the buckets in S3. Think of an object as the file you want to store. Each object stored is composed of two entities: data and metadata .
The data is the actual thing being stored, such as a PDF file, Word document, a video file, etc. The stored data also has associated metadata for describing the object.Some examples of metadata are the content type of the object being stored, the date the object was last modified, and any other metadata specific to you or your application.
The metadata for an object is specified by the developer as key-value pairs when the object is sent to S3 for storage.Unlike the limitation on the number of buckets, there are no restrictions on the number of objects.
You can store an unlimited number of objects in your buckets, and each object can contain up to 5 GB of data.
Each object stored within an S3 bucket is identified using a unique key. This is similar in concept to the name of a file in a folder on your file system. The file name within a folder on your hard drive must be unique.
Each object inside a bucket has exactly one key. The name of the bucket and the key are together used to provide the unique identification for each object stored in S3.
Every object within S3 is addressable using a URL that combines the S3 service URL, bucket name, and unique key. If you store an object with the key my_favorite_video.mov inside the bucket named nirvikar, that object can be addressed using the URL http://nirvikar.s3.amazonaws.com/
Authentication: Ensures that the request is being made by the user that owns the bucket or object. Each S3 request must include the Amazon Web Services access key that uniquely identifies the user.
Authorization: Ensures that the user trying to access the resource has the permissions or rights to the resource. Each S3 object has an access-control list (ACL) associated with it that explicitly identifies the grants and permissions for that resource.
Integrity: Each S3 request must be digitally signed by the requesting user with an Amazon Web Services secret key. On receipt of the request, S3 will check the signature to ensure that the request has not been tampered with in transit.
Encryption: You can access S3 through the HTTPS protocol to ensure that the data is transmitted through an encrypted connection.
Nonrepudiation: Each S3 request is time-stamped and serves as proof of the transaction.
Red Hat Enterprise Linux , openSUSE Linux , Ubuntu Linux , Fedora , Gentoo Linux, Debian
Windows Server 2003
Oracle Enterprise Linux
IBM DB2 , IBM Informix Dynamic Server , Microsoft SQL Server Standard 2005 , MySQL Enterprise , Oracle 11g
Apache HTTP, IIS/Asp.Net , IBM Lotus Web Content Management IBM WebSphere Portal Server
Hadoop, Condor, Open MPI
IBM Webspehere, Jboss, Oracle WebLogic Server
IBM Smash, Jboss Enterprise Edition, Rub On Rails
Video Encoding and Streaming
Wowza Media Server Pro
Windows Media Server
Amazon EC2 Pricing On-Demand instance Linux/Unix Usage Windows Usage Small 0.10 per hour 0.125 per hour Large 0.4 0.5 per hour Extra Large 0.80 1.00 per hour High CPU Medium 0.2 per hour 0.30 per hour High CPU Large 0.8 per hour 1.2 per hour Reserved Instances 1 yr term 3 yr term Usage Small $325 $500 0.03 per hour Large $1300 $2000 0.12 per hour Extra Large $2600 $4000 0.24 per hour High CPU Medium $650 $1000 0.06 per hour High CPU- Extra Large $2600 $4000 0.24 per hour