68638398 case-study-on-amazon-ec2

40
Advance Computing Technology 080380107046 7. Cloud Computing Taxonomy Map RKCET(CE) 65 | Page

Upload: homework-ping

Post on 21-Mar-2017

101 views

Category:

Education


0 download

TRANSCRIPT

Page 1: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

7. Cloud Computing Taxonomy Map

RKCET(CE) 65 | P a g e

Page 2: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

RKCET(CE) 66 | P a g e

Page 3: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

8. Parallel ComputerI. A. What is Parallel Computing?

Traditionally, software has been written for serial computation: o To be run on a single computer having a single Central Processing Unit

(CPU); o A problem is broken into a discrete series of instructions. o Instructions are executed one after another. o Only one instruction may execute at any moment in time.

In the simplest sense, parallel computing is the simultaneous use of multiple compute resources to solve a computational problem:

o To be run using multiple CPUs o A problem is broken into discrete parts that can be solved concurrently o Each part is further broken down to a series of instructions o Instructions from each part execute simultaneously on different CPUs

RKCET(CE) 67 | P a g e

Page 4: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

For example: The compute resources might be:

o A single computer with multiple processors; o An arbitrary number of computers connected by a network; o A combination of both.

The computational problem should be able to: o Be broken apart into discrete pieces of work that can be solved

simultaneously;

RKCET(CE) 68 | P a g e

Page 5: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

o Execute multiple program instructions at any moment in time; o Be solved in less time with multiple compute resources than with a single

compute resource. The Universe is Parallel: Parallel computing is an evolution of serial computing that attempts to emulate

what has always been the state of affairs in the natural world: many complex, interrelated events happening at the same time, yet within a sequence. For example:

o Galaxy formation o Planetary movement o Weather and ocean

patterns o Tectonic plate drift

o Rush hour traffic o Automobile assembly line o Building a jet o Ordering a hamburger at

the drive through.

Uses for Parallel Computing: Historically, parallel computing has been considered to be "the high end of

computing", and has been used to model difficult problems in many areas of science and engineering:

o Atmosphere, Earth, Environment o Physics - applied, nuclear, particle, condensed matter, high pressure,

fusion, photonics o Bioscience, Biotechnology, Genetics o Chemistry, Molecular Sciences o Geology, Seismology o Mechanical Engineering - from prosthetics to spacecraft o Electrical Engineering, Circuit Design, Microelectronics o Computer Science, Mathematics

Today, commercial applications provide an equal or greater driving force in the development of faster computers. These applications require the processing of large amounts of data in sophisticated ways. For example:

o Databases, data mining o Oil exploration o Web search engines, web based business services o Medical imaging and diagnosis o Pharmaceutical design o Management of national and multi-national corporations o Financial and economic modeling o Advanced graphics and virtual reality, particularly in the entertainment

industry o Networked video and multi-media technologies o Collaborative work environments

RKCET(CE) 69 | P a g e

Page 6: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

II. von Neumann Architecture

Named after the Hungarian mathematician John von Neumann who first authored the general requirements for an electronic computer in his 1945 papers.

Since then, virtually all computers have followed this basic design, differing from earlier computers which were programmed through "hard wiring".

o Comprised of four main components: Memory Control Unit Arithmetic Logic Unit Input/Output

o Read/write, random access memory is used to store both program instructions and data

Program instructions are coded data which tell the computer to do something

Data is simply information to be used by the program o Control unit fetches instructions/data from memory, decodes the instructions

and then sequentially coordinates operations to accomplish the programmed task.

o Aritmetic Unit performs basic arithmetic operations o Input/Output is the interface to the human operator

RKCET(CE) 70 | P a g e

Page 7: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

III. Flynn's Classical Taxonomy

There are different ways to classify parallel computers. One of the more widely used classifications, in use since 1966, is called Flynn's Taxonomy.

Flynn's taxonomy distinguishes multi-processor computer architectures according to how they can be classified along the two independent dimensions of Instruction and Data. Each of these dimensions can have only one of two possible states: Single or Multiple.

The matrix below defines the 4 possible classifications according to Flynn:

S I S D

Single Instruction, Single Data

S I M D

Single Instruction, Multiple Data

M I S D

Multiple Instruction, Single Data

M I M D

Multiple Instruction, Multiple Data

Single Instruction, Single Data (SISD): A serial (non-parallel) computer Single Instruction: Only one instruction stream is being acted on by the CPU

during any one clock cycle Single Data: Only one data stream is being used as input during any one

clock cycle Deterministic execution This is the oldest and even today, the most common type of computer Examples: older generation mainframes, minicomputers and workstations;

most modern day PCs.

RKCET(CE) 71 | P a g e

Page 8: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

Single Instruction, Multiple Data (SIMD): A type of parallel computer Single Instruction: All processing units execute the same instruction at any

given clock cycle Multiple Data: Each processing unit can operate on a different data element Best suited for specialized problems characterized by a high degree of

regularity, such as graphics/image processing. Synchronous (lockstep) and deterministic execution Two varieties: Processor Arrays and Vector Pipelines Examples:

o Processor Arrays: Connection Machine CM-2, MasPar MP-1 & MP-2, ILLIAC IV

o Vector Pipelines: IBM 9000, Cray X-MP, Y-MP & C90, Fujitsu VP, NEC SX-2, Hitachi S820, ETA10

Most modern computers, particularly those with graphics processor units (GPUs) employ SIMD instructions and execution units.

Multiple Instruction, Single Data (MISD): A type of parallel computer Multiple Instruction: Each processing unit operates on the data

independently via separate instruction streams. Single Data: A single data stream is fed into multiple processing units. Few actual examples of this class of parallel computer have ever existed. One

is the experimental Carnegie-Mellon C.mmp computer (1971).

RKCET(CE) 72 | P a g e

Page 9: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

Some conceivable uses might be: o multiple frequency filters operating on a single signal stream o multiple cryptography algorithms attempting to crack a single coded

message. o

Multiple Instruction, Multiple Data (MIMD): A type of parallel computer Multiple Instruction: Every processor may be executing a different

instruction stream Multiple Data: Every processor may be working with a different data stream Execution can be synchronous or asynchronous, deterministic or non-

deterministic Currently, the most common type of parallel computer - most modern

supercomputers fall into this category. Examples: most current supercomputers, networked parallel computer

clusters and "grids", multi-processor SMP computers, multi-core PCs. Note: many MIMD architectures also include SIMD execution sub-

components

RKCET(CE) 73 | P a g e

Page 10: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

IV. Parallel Computer Memory Architectures:Shared Memory

General Characteristics: Shared memory parallel computers vary widely, but generally have in

common the ability for all processors to access all memory as global address space.

Multiple processors can operate independently but share the same memory resources.

Changes in a memory location effected by one processor are visible to all other processors.

Shared memory machines can be divided into two main classes based upon memory access times: UMA and

Uniform Memory Access (UMA): Most commonly represented today by Symmetric Multiprocessor (SMP)

machines Identical processors Equal access and access times to memory Sometimes called CC-UMA - Cache Coherent UMA. Cache coherent means if

one processor updates a location in shared memory, all the other processors know about the update. Cache coherency is accomplished at the hardware level.

Shared Memory (UMA)

Non-Uniform Memory Access (NUMA): Often made by physically linking two or more SMPs One SMP can directly access memory of another SMP Not all processors have equal access time to all memories Memory access across link is slower If cache coherency is maintained, then may also be called CC-NUMA - Cache

Coherent NUMA

RKCET(CE) 74 | P a g e

Page 11: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

Shared Memory (NUMA)Advantages:

Global address space provides a user-friendly programming perspective to memory

Data sharing between tasks is both fast and uniform due to the proximity of memory to CPUs

Disadvantages: Primary disadvantage is the lack of scalability between memory and CPUs.

Adding more CPUs can geometrically increases traffic on the shared memory-CPU path, and for cache coherent systems, geometrically increase traffic associated with cache/memory management.

Programmer responsibility for synchronization constructs that ensure "correct" access of global memory.

Expense: it becomes increasingly difficult and expensive to design and produce shared memory machines with ever increasing numbers of processors.

distributed MemoryGeneral Characteristics: Like shared memory systems, distributed memory systems vary widely but

share a common characteristic. Distributed memory systems require a communication network to connect inter-processor memory.

Processors have their own local memory. Memory addresses in one processor do not map to another processor, so there is no concept of global address space across all processors.

Because each processor has its own local memory, it operates independently.

RKCET(CE) 75 | P a g e

Page 12: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

Changes it makes to its local memory have no effect on the memory of other processors. Hence, the concept of cache coherency does not apply.

When a processor needs access to data in another processor, it is usually the task of the programmer to explicitly define how and when data is communicated. Synchronization between tasks is likewise the programmer's responsibility.

The network "fabric" used for data transfer varies widely, though it can can be as simple as Ethernet.

Advantages: Memory is scalable with the number of processors. Increase the number of

processors and the size of memory increases proportionately. Each processor can rapidly access its own memory without interference and

without the overhead incurred with trying to maintain cache coherency. Cost effectiveness: can use commodity, off-the-shelf processors and

networking. Disadvantages: The programmer is responsible for many of the details associated with data

communication between processors. It may be difficult to map existing data structures, based on global memory, to

this memory organization. Non-uniform memory access (NUMA) times

Hybrid Distributed-Shared Memory The largest and fastest computers in the world today employ both shared and

distributed memory architectures. The shared memory component can be a cache coherent SMP machine

and/or graphics processing units (GPU). The distributed memory component is the networking of multiple SMP/GPU

machines, which know only about their own memory - not the memory on another machine. Therefore, network communications are required to move data from one SMP/GPU to another.

Current trends seem to indicate that this type of memory architecture will continue to prevail and increase at the high end of computing for the foreseeable future.

Advantages and Disadvantages: whatever is common to both shared and distributed memory architectures.

RKCET(CE) 76 | P a g e

Page 13: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

RKCET(CE) 77 | P a g e

Page 14: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

CASE STUDY ON AMAZON EC2

This below facility shows how businesses are leveraging Amazon Web Services’ scalable, reliable and cost-effective cloud technology.

Application Hosting Backup and Storage Content Delivery E-Commerce High Performance Computing Media Hosting On-Demand Workforce Search Engines Web Hosting

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 Functionality

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 image to get up and running immediately. Or create an Amazon Machine Image (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) and operating system 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.

RKCET(CE) 78 | P a g e

Page 15: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

Pay only for the resources that you actually consume, like instance-hours or data transfer.

Service Highlights

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. 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.

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, 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 Windows Server.

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.

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 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.

RKCET(CE) 79 | P a g e

Page 16: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

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 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.

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.

Features

Amazon 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

RKCET(CE) 80 | P a g e

Page 17: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

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 six regions: US East (Northern Virginia), US West (Northern California), EU (Ireland), Asia Pacific (Singapore), Asia Pacific (Tokyo), and AWS GovCloud.

Elastic 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. 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. In addition, you can optionally configure the reverse DNS record of any of your Elastic IP addresses by filling out this form.

Amazon 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.

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

RKCET(CE) 81 | P a g e

Page 18: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

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.

VM Import – VM Import enables you to easily import virtual machine images from your existing environment to Amazon EC2 instances. VM Import allows you to leverage your existing investments in the virtual machines that you have built to meet your IT security, configuration management, and compliance requirements by seamlessly bringing those virtual machines into Amazon EC2 as ready-to-use instances. This offering is available at no additional charge beyond standard usage charges for Amazon EC2 and Amazon S3.

Instance Types

Standard Instances

Instances of this family are well suited for most applications.

Small Instance (Default) 1.7 GB of memory, 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit), 160 GB of local instance storage, 32-bit platform

Large Instance 7.5 GB of memory, 4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each), 850 GB of local instance storage, 64-bit platform

RKCET(CE) 82 | P a g e

Page 19: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

Extra Large Instance 15 GB of memory, 8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each), 1690 GB of local instance storage, 64-bit platform

Micro Instances

Instances of this family provide a small amount of consistent CPU resources and allow you to burst CPU capacity when additional cycles are available. They are well suited for lower throughput applications and web sites that consume significant compute cycles periodically.

Micro Instance 613 MB of memory, up to 2 ECUs (for short periodic bursts), EBS storage only, 32-bit or 64-bit platform

High-Memory Instances

Instances of this family offer large memory sizes for high throughput applications, including database and memory caching applications.

High-Memory Extra Large Instance 17.1 GB memory, 6.5 ECU (2 virtual cores with 3.25 EC2 Compute Units each), 420 GB of local instance storage, 64-bit platform

High-Memory Double Extra Large Instance 34.2 GB of memory, 13 EC2 Compute Units (4 virtual cores with 3.25 EC2 Compute Units each), 850 GB of local instance storage, 64-bit platform

High-Memory Quadruple Extra Large Instance 68.4 GB of memory, 26 EC2 Compute Units (8 virtual cores with 3.25 EC2 Compute Units each), 1690 GB of local instance storage, 64-bit platform

High-CPU Instances

Instances of this family have proportionally more CPU resources than memory (RAM) and are well suited for compute-intensive applications.

High-CPU Medium Instance 1.7 GB of memory, 5 EC2 Compute Units (2 virtual cores with 2.5 EC2 Compute Units each), 350 GB of local instance storage, 32-bit platform

High-CPU Extra Large Instance 7 GB of memory, 20 EC2 Compute Units (8 virtual cores with 2.5 EC2 Compute Units each), 1690 GB of local instance storage, 64-bit platform

Cluster Compute Instances

Instances of this family provide proportionally high CPU with increased network performance and are well suited for High Performance Compute (HPC) applications and other demanding network-bound applications

Cluster Compute Quadruple Extra Large 23 GB memory, 33.5 EC2 Compute Units, 1690 GB of local instance storage, 64-bit platform, 10 Gigabit Ethernet

RKCET(CE) 83 | P a g e

Page 20: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

Cluster GPU Instances

Instances of this family provide general-purpose graphics processing units (GPUs) with proportionally high CPU and increased network performance for applications benefitting from highly parallelized processing, including HPC, rendering and media processing applications. While Cluster Compute Instances provide the ability to create clusters of instances connected by a low latency, high throughput network, Cluster GPU Instances provide an additional option for applications that can benefit from the efficiency gains of the parallel computing power of GPUs over what can be achieved with traditional processors.

Cluster GPU Quadruple Extra Large 22 GB memory, 33.5 EC2 Compute Units, 2 x NVIDIA Tesla “Fermi” M2050 GPUs, 1690 GB of local instance storage, 64-bit platform, 10 Gigabit Ethernet

EC2 Compute Unit (ECU) – One EC2 Compute Unit (ECU) provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor.

Operating Systems and Software

Operating Systems

Amazon Machine Images (AMIs) are preconfigured with an ever-growing list of operating systems. We work with our partners and community to provide you with the most choice possible. You are also empowered to use our bundling tools to upload your own operating systems. The operating systems currently available to use with your Amazon EC2 instances include:

Operating Systems    Red Hat Enterprise Linux

Windows Server Oracle Enterprise Linux

SUSE Linux Enterprise Amazon Linux AMI Ubuntu LinuxFedora Gentoo Linux Debian

Software

Amazon EC2 enables our partners and customers to build and customize Amazon Machine Images (AMIs) with software based on your needs. We have hundreds of free and paid AMIs available for you to use. A small sampling of the software available for use today within Amazon EC2 includes:

Databases Resource Management

Web Hosting

IBM DB2 StackIQ Rocks+ Apache HTTPIBM Informix Dynamic Server

Hadoop IIS/Asp.Net

Microsoft SQL Server Standard

Condor IBM Lotus Web Content Management

RKCET(CE) 84 | P a g e

Page 21: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

MySQL Enterprise   IBM WebSphere Portal ServerOracle Database 11g    

Application Development Environments

Application Servers Video Encoding & Streaming

IBM sMash IBM WebSphere Application Server

Wowza Media Server Pro

JBoss Enterprise Application Platform

Java Application Server Windows Media Server

Ruby on Rails Oracle WebLogic Server  

Pricing

Pay only for what you use. There is no minimum fee. Estimate your monthly bill using AWS Simple Monthly Calculator. The prices listed are based on the Region in which your instance is running. For a detailed comparison between On-Demand Instances, Reserved Instances and Spot Instances, see Amazon EC2 Instance Purchasing Options.

Free Tier*

As part of AWS’s Free Usage Tier , new AWS customers can get started with Amazon EC2 for free. Upon sign-up, new AWS customers receive the following EC2 services each month for one year:

750 hours of EC2 running Linux/Unix Micro instance usage

750 hours of Elastic Load Balancing plus 15 GB data processing

10 GB of Amazon Elastic Block Storage (EBS) plus 1 million IOs, 1 GB snapshot storage, 10,000 snapshot Get Requests and 1,000 snapshot Put Requests

15 GB of bandwidth out aggregated across all AWS services

1 GB of Regional Data Transfer

RKCET(CE) 85 | P a g e

Page 22: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

Case Study on Google App Engine

Google App Engine lets you run your web applications on Google's infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your application, and it's ready to serve your users.

You can serve your app from your own domain name (such as http://www.example.com/) using Google Apps. Or, you can serve your app using a free name on the appspot.com domain. You can share your application with the world, or limit access to members of your organization.

Google App Engine supports apps written in several programming languages. With App Engine's Java runtime environment, you can build your app using standard Java technologies, including the JVM, Java servlets, and the Java programming language—or any other language using a JVM-based interpreter or compiler, such as JavaScript or Ruby. App Engine also features a dedicated Python runtime environment, which includes a fast Python interpreter and the Python standard library, and a Go runtime environment that runs natively compiled Go code. These runtime environments are built to ensure that your application runs quickly, securely, and without interference from other apps on the system.

With App Engine, you only pay for what you use. There are no set-up costs and no recurring fees. The resources your application uses, such as storage and bandwidth, are measured by the gigabyte, and billed at competitive rates. You control the maximum amounts of resources your app can consume, so it always stays within your budget.

App Engine costs nothing to get started. All applications can use up to 1 GB of storage and enough CPU and bandwidth to support an efficient app serving around 5 million page views a month, absolutely free. When you enable billing for your application, your free limits are raised, and you only pay for resources you use above the free levels.

The Application Environment

Google App Engine makes it easy to build an application that runs reliably, even under heavy load and with large amounts of data. App Engine includes the following features:

dynamic web serving, with full support for common web technologies

persistent storage with queries, sorting and transactions

automatic scaling and load balancing

APIs for authenticating users and sending email using Google Accounts

RKCET(CE) 86 | P a g e

Page 23: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

a fully featured local development environment that simulates Google App Engine on your computer

task queues for performing work outside of the scope of a web request

scheduled tasks for triggering events at specified times and regular intervals

Your application can run in one of three runtime environments: the Go environment, the Java environment, and the Python environment. Each environment provides standard protocols and common technologies for web application development.

The Sandbox

Applications run in a secure environment that provides limited access to the underlying operating system. These limitations allow App Engine to distribute web requests for the application across multiple servers, and start and stop servers to meet traffic demands. The sandbox isolates your application in its own secure, reliable environment that is independent of the hardware, operating system and physical location of the web server.

Examples of the limitations of the secure sandbox environment include:

An application can only access other computers on the Internet through the provided URL fetch and email services. Other computers can only connect to the application by making HTTP (or HTTPS) requests on the standard ports.

An application cannot write to the file system. An app can read files, but only files uploaded with the application code. The app must use the App Engine datastore, memcache or other services for all data that persists between requests.

Application code only runs in response to a web request, a queued task, or a scheduled task, and must return response data within 30 seconds in any case. A request handler cannot spawn a sub-process or execute code after the response has been sent.

The Go Runtime EnvironmentApp Engine's Go runtime environment provides a convenient way to implement and deploy web applications written in the Go Programming Language.

The Go runtime environment uses Go release r58.1. The SDK includes the Go compiler and standard library, so it has no additional dependencies. As with the Java and Python environments, not all the standard library's functionality is available inside the sandbox. For example, attempts to open a socket or write to a file will return an os.EINVAL error.

The SDK includes an automated build service to compile your app, so you'll never need to invoke the compiler yourself. And—as with the Python SDK—your app will

RKCET(CE) 87 | P a g e

Page 24: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

be automatically re-built whenever you change the source. This keeps you productive by making the edit-compile-run cycle refreshingly short.

The Go environment provides idiomatic Go APIs for most of the App Engine services.

You can upload other third-party libraries with your application, as long as they are implmented in pure Go.

The Java Runtime Environment

You can develop your application for the Java runtime environment using common Java web development tools and API standards. Your app interacts with the environment using the Java Servlet standard, and can use common web application technologies such as JavaServer Pages (JSPs).

The Java runtime environment uses Java 6. The App Engine Java SDK supports developing apps using either Java 5 or 6.

The environment includes the Java SE Runtime Environment (JRE) 6 platform and libraries. The restrictions of the sandbox environment are implemented in the JVM. An app can use any JVM bytecode or library feature, as long as it does not exceed the sandbox restrictions. For instance, bytecode that attempts to open a socket or write to a file will throw a runtime exception.

Your app accesses most App Engine services using Java standard APIs. For the App Engine datastore, the Java SDK includes implementations of the Java Data Objects (JDO) and Java Persistence API (JPA) interfaces. Your app can use the JavaMail API to send email messages with the App Engine Mail service. The java.net HTTP APIs access the App Engine URL fetch service. App Engine also includes low-level APIs for its services to implement additional adapters, or to use directly from the application. See the documentation for the datastore, memcache, URL fetch, mail, images and Google Accounts APIs.

Typically, Java developers use the Java programming language and APIs to implement web applications for the JVM. With the use of JVM-compatible compilers or interpreters, you can also use other languages to develop web applications, such as JavaScript, Ruby, or Scala.

The Python Runtime Environment

With App Engine's Python runtime environment, you can implement your app using the Python programming language, and run it on an optimized Python interpreter. App Engine includes rich APIs and tools for Python web application development, including a feature rich data modeling API, an easy-to-use web application framework, and tools for managing and accessing your app's data. You can also

RKCET(CE) 88 | P a g e

Page 25: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

take advantage of a wide variety of mature libraries and frameworks for Python web application development, such as Django.

The Python runtime environment uses Python version 2.5.2. Additional support for Python 3 is being considered for a future release.

The Python environment includes the Python standard library. Of course, not all of the library's features can run in the sandbox environment. For instance, a call to a method that attempts to open a socket or write to a file will raise an exception. For convenience, several modules in the standard library whose core features are not supported by the runtime environment have been disabled, and code that imports them will raise an error.

Application code written for the Python environment must be written exclusively in Python. Extensions written in the C language are not supported.

The Python environment provides rich Python APIs for the datastore, Google Accounts, URL fetch, and email services. App Engine also provides a simple Python web application framework called webapp to make it easy to start building applications.

You can upload other third-party libraries with your application, as long as they are implemented in pure Python and do not require any unsupported standard library modules.

The Datastore

App Engine provides a distributed data storage service that features a query engine and transactions. Just as the distributed web server grows with your traffic, the distributed datastore grows with your data. You have the choice between two different data storage options differentiated by their availability and consistency guarantees.

The App Engine datastore is not like a traditional relational database. Data objects, or "entities," have a kind and a set of properties. Queries can retrieve entities of a given kind filtered and sorted by the values of the properties. Property values can be of any of the supported property value types.

Datastore entities are "schemaless." The structure of data entities is provided by and enforced by your application code. The Java JDO/JPA interfaces and the Python datastore interface include features for applying and enforcing structure within your app. Your app can also access the datastore directly to apply as much or as little structure as it needs.

The datastore is strongly consistent and uses optimistic concurrency control. An update of a entity occurs in a transaction that is retried a fixed number of times if other processes are trying to update the same entity simultaneously. Your

RKCET(CE) 89 | P a g e

Page 26: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

application can execute multiple datastore operations in a single transaction which either all succeed or all fail, ensuring the integrity of your data.

The datastore implements transactions across its distributed network using "entity groups." A transaction manipulates entities within a single group. Entities of the same group are stored together for efficient execution of transactions. Your application can assign entities to groups when the entities are created.

Google Accounts

App Engine supports integrating an app with Google Accounts for user authentication. Your application can allow a user to sign in with a Google account, and access the email address and displayable name associated with the account. Using Google Accounts lets the user start using your application faster, because the user may not need to create a new account. It also saves you the effort of implementing a user account system just for your application.

If your application is running under Google Apps, it can use the same features with members of your organization and Google Apps accounts.

The Users API can also tell the application whether the current user is a registered administrator for the application. This makes it easy to implement admin-only areas of your site.

App Engine Services

App Engine provides a variety of services that enable you to perform common operations when managing your application. The following APIs are provided to access these services:

URL Fetch

Applications can access resources on the Internet, such as web services or other data, using App Engine's URL fetch service. The URL fetch service retrieves web resources using the same high-speed Google infrastructure that retrieves web pages for many other Google products.

Mail

Applications can send email messages using App Engine's mail service. The mail service uses Google infrastructure to send email messages

Memcache

The Memcache service provides your application with a high performance in-memory key-value cache that is accessible by multiple instances of your application. Memcache is useful for data that does not need the persistence and transactional

RKCET(CE) 90 | P a g e

Page 27: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

features of the datastore, such as temporary data or data copied from the datastore to the cache for high speed access.

Image Manipulation

The Image service lets your application manipulate images. With this API, you can resize, crop, rotate and flip images in JPEG and PNG formats.

Scheduled Tasks and Task Queues

An application can perform tasks outside of responding to web requests. Your application can perform these tasks on a schedule that you configure, such as on a daily or hourly basis. Or, the application can perform tasks added to a queue by the application itself, such as a background task created while handling a request.

Scheduled tasks are also known as "cron jobs," handled by the Cron service. For more information on using the Cron service, see thePython or Java cron documentation.

Task queues are currently released as an experimental feature. The Python, Java, and Go runtime environments can use task queues. For information about the task queue service, see the Python API documentation, the Java API documentation or the the Go API documentation.

Development Workflow

The App Engine software development kits (SDKs) for Java, Python, and Go each include a web server application that emulates all of the App Engine services on your local computer. Each SDK includes all of the APIs and libraries available on App Engine. The web server also simulates the secure sandbox environment, including checks for attempts to access system resources disallowed in the App Engine runtime environment.

Each SDK also includes a tool to upload your application to App Engine. Once you have created your application's code, static files and configuration files, you run the tool to upload the data. The tool prompts you for your Google account email address and password.

When you build a new major release of an application that is already running on App Engine, you can upload the new release as a new version. The old version will continue to serve users until you switch to the new version. You can test the new version on App Engine while the old version is still running.

The Java SDK runs on any platform with Java 5 or Java 6. The SDK is available as a Zip file. If you use the Eclipse development environment, you can use the Google Plugin for Eclipse to create, test and upload App Engine applications. The SDK also includes command-line tools for running the development server and uploading your app.

RKCET(CE) 91 | P a g e

Page 28: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

The Python SDK is implemented in pure Python, and runs on any platform with Python 2.5, including Windows, Mac OS X and Linux. The SDK is available as a Zip file, and installers are available for Windows and Mac OS X.

The Go SDK features an idiomatic, native Go API for using the App Engine services, and uses the same tools as the Python SDK (with some additional machinery for automatically compiling your Go apps). The Go SDK is stand-alone—you do not need to install Go separately—and is available as a Zip file for both Mac OS X and Linux (a Windows version will be available soon

RKCET(CE) 92 | P a g e

Page 29: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

Case Study On Microsoft Azure

Microsoft Windows Azure Cloud Computing Service

Microsoft Azure offers cloud computing SaaS as well as a pay-as-you-go infrastructure usage. Azure essentially is infrastructure as a service that enables users to only utilize infrastructure resources as they are needed. Windows Azure offers cloud computing in the .NET platform and offers Microsoft .NET Services, Microsoft SQL Services, Microsoft Online Services, SharePoint Services, and Dynamics CRM Services. In comparison to other cloud computing services such as Amazon EC2, GoGrid, and Google App Engine, Microsoft Windows Azure has a high level of security in addition to a 99.95% compute reliability and 99.9% role instance and storage reliability.

Azure Software as a Service (SaaS)

Microsoft has integrated services such as SharePoint and CRM that are offered with its cloud computing service Azure in order to make the online applications most frequently used by businesses readily available on a cloud infrastructure. Microsoft utilizes a unique server balancing act that enables users to switch to another server backup if one service becomes unavailable. Fabric Controller technology reroutes work instantaneously if a server goes down, resulting in 99.9% - 99.95% uptime.

Although Microsoft Azure basic package supports the .NET environment, Microsoft Business Edition supports more platforms and can be used with both Microsoft technologies in conjunction with Mac and other platforms. Microsoft may have entered the Cloud Computing arena later in the game, but the superior service they offer was well worth the wait.

With a powerful SQL Azure database coupled with competitive pricing and enterprise scalability, Azure already stacks up to the other existing Cloud Computing services and gives them a run for their computing.

Azure Pricing Guide

Pure pay-as-you-go:$0.12 per hour for computing$0.15 per gigabytes for storage$0.10 per 10,000 storage transactions

SQL Azure database:$9.99 - basic Web edition (1 gigabyte relational database)$99.99 - Business Edition (10 gigabytes database)

Network bandwidth:$0.10-$0.15 per gigabyte 

RKCET(CE) 93 | P a g e

Page 30: 68638398 case-study-on-amazon-ec2

Advance Computing Technology 080380107046

Microsoft Windows Azure Cloud Computing Case Study

Microsoft's Azure is still technically in the beta phase, but there are case studies available that detail the results that Microsoft Cloud Computing is already having on businesses that are utilizing the service. Here is an example of a case study that demonstrates the impact that Azure had for the IT Services company Epicor:

Epicor | Profile: $480 Million, private company that offers software solutions for small to mid-size companies in the manufacturing, distribution, service, retail, and hospitality industries.

What did Azure do for Epicor?: Azure significantly cut costs for the company by lowering their development costs. It allowed them to offer their customers internet-based services and build on their developers’ familiarity with the Microsoft .NET Framework.

Epicor also had the capability to publish the application's search indexes in the cloud so remote users can run the application on a laptop or mobile device to get into the system—instead they have VPN access.

By developing its new ERP application on Azure, Epicor was able to lower its development costs and offer its customers internet-based services.

Azure allowed Epicor to build an Enterprise Search on the internet without having to build out data center environments, which made for much lower development overhead.

RKCET(CE) 94 | P a g e