Category: Amazon EC2

New Features for Amazon CloudWatch

by Jeff Barr | on | in Amazon CloudWatch, Amazon EC2 |

The Amazon CloudWatch team has put together a really impressive set of new features. Too many, in fact, to fit on this page. I’ve written a series of posts with all of the information. Here’s a summary, with links to each post:

  • Basic Monitoring of Amazon EC2 instances at 5-minute intervals at no additional charge.
  • Elastic Load Balancer Health Checks -Auto Scaling can now be instructed to automatically replace instances that have been deemed unhealthy by an Elastic Load Balancer.
  • Alarms – You can now monitor Amazon CloudWatch metrics, with notification to the Amazon SNS topic of your choice when the metric falls outside of a defined range.
  • Auto Scaling Suspend/Resume – You can now push a “big red button” in order to prevent scaling activities from being initiated.
  • Auto Scaling Follow the Line -You can now use scheduled actions to perform scaling operations at particular points in time, creating a time-based scaling plan.
  • Auto Scaling Policies – You now have more fine-grained control over the modifications to the size of your AutoScaling groups.
  • VPC and HPC Support – You can now use AutoScaling with Amazon EC2 instances that are running within your Virtual Private Cloud or as Cluster Compute instances.

— Jeff;

Amazon Linux AMI 2010.11.1 Released

by Jeff Barr | on | in Amazon EC2 |

We have released a new version of the Amazon Linux AMI. The new version includes new features, security fixes, package updates, and additional packages. The AWS Management Console will be updated to use these AMIs in the near future.

Users of the existing Amazon Linux AMI can access the package additions and updates through our Yum repository.

New features include:

  • AMI size reduction to 8 GB to simplify usage of the AWS Free Usage Tier.
  • Security updates to the Amazon Linux AMI are automatically installed on the first launch by default. This can be disabled if necessary.
  • The AMI versioning system has changed to a YYYY.MM.# scheme.

The following packages were updated to address security issues:

  • glibc
  • kernel
  • java-1.6.0-openkdk
  • openssl

The following packages were updated to newer versions:

  • bash
  • coreutils
  • gcc44
  • ImageMagick
  • php
  • ruby
  • python
  • tomcat6

We have added a number of new packages including:

  • cacti
  • fping
  • libdmx
  • libmcrypt
  • lighttpd
  • memcached
  • mod_security
  • monit
  • munin
  • nagios
  • nginx
  • rrdtool
  • X11 applicaitons, client utilities, and bitmaps

We also added a number of Perl libraries.

A full list of all changes and additions, along with the AMI ID’s, can be found in the Amazon Linux AMI Release Notes.

— Jeff;


New EC2 Instance Type – The Cluster GPU Instance

by Jeff Barr | on | in Amazon EC2 |

If you have a mid-range or high-end video card in your desktop PC, it probably contains a specialized processor called a GPU or Graphics Processing Unit. The instruction set and memory architecture of a GPU are designed to handle the types of operations needed to display complex graphics at high speed. The instruction sets typically include instructions for manipulating points in 2D or 3D space and for performing advanced types of calculations. The architecture of a GPU is also designed to handle long streams (usually known as vectors) of points with great efficiency. This takes the form of a deep pipeline and wide, high-bandwidth access to memory.

A few years ago advanced developers of numerical and scientific application started to use GPUs to perform general-purpose calculations, termed GPGPU, for General-Purpose computing on Graphics Processing Units. Application development continued to grow as the demands of many additional applications were met with advances in GPU technology, including high performance double precision floating point and ECC memory.  However, accessibility to such high-end technology, particularly on HPC cluster infrastructure for tightly coupled applications, has been elusive for many developers. Today we are introducing our latest EC2 instance type (this makes eleven, if you are counting at home) called the Cluster GPU Instance. Now any AWS user can develop and run GPGPU on a cost-effective, pay-as-you-go basis.

Similar to the Cluster Compute Instance type that we introduced earlier this year, the Cluster GPU Instance (cg1.4xlarge if you are using the EC2 APIs) has the following specs:

  • A pair of NVIDIA Tesla M2050 “Fermi” GPUs.
  • A pair of quad-core Intel “NehalemX5570 processors offering 33.5 ECUs (EC2 Compute Units).
  • 22 GB of RAM.
  • 1690 GB of local instance storage.
  • 10 Gbps Ethernet, with the ability to create low latency, full bisection bandwidth HPC clusters.

Each of the Tesla M2050s contains 448 cores and 3 GB of ECC RAM and are designed to deliver up to 515 gigaflops of double-precision performance when pushed to the limit. Since each instance contains a pair of these processors, you can get slightly more than a trillion FLOPS per Cluster GPU instance. With the ability to cluster these instances over 10Gbps Ethernet, the compute power delivered for highly data parallel HPC, rendering, and media processing applications is staggering.  I like to think of it as a nuclear-powered bulldozer that’s about 1000 feet wide that you can use for just $2.10 per hour!

Each AWS account can use up to 8 Cluster GPU instances by default with more accessible by contacting us. Similar to Cluster Compute instances, this default setting exists to help us understand your needs for the technology early on and is not a technology limitation. For example, we have now removed this default setting on Cluster Compute instances and have long had users running clusters up through and above 128 nodes as well as running multiple clusters at once at varied scale.

You’ll need to develop or leverage some specialized code in order to achieve optimal GPU performance, of course. The Tesla GPUs implements the CUDA architecture. After installing the latest NVIDIA driver on your instance, you can make use of the Tesla GPUs in a number of different ways:

  • You can write directly to the low-level CUDA Driver API.
  • You can use higher-level functions in the C Runtime for CUDA.
  • You can use existing higher-level languages such as FORTRAN, Python, C, C++, Java, or Ruby.
  • You can use CUDA versions of well-established packages such as CUBLAS (BLAS), CUFFT (FFT), and LAPACK.
  • You can build new applications in OpenCL (Open Compute Language), a new cross-vendor standard for heterogeneous computing.
  • You can run existing applications that have been adapted to make use of CUDA.

Elastic MapReduce can now take advantage of the Cluster Compute and Cluster GPU instances, giving you the ability to combine Hadoop’s massively parallel processing architecture with high performance computing. You can focus on your application and Elastic MapReduce will handle workload parallelization, node configuration, scaling, and cluster management.

Here are some resources to help you to learn more about GPUs and GPU programming:


So, what do you think? Can you make use of this “bulldozer” in your application? What can you build with this much on-demand computing power at your fingertips? Leave a comment, let me know!


Fedora 14 AMIs for Amazon EC2

by Jeff Barr | on | in Amazon EC2 |

Earlier this month the Fedora Community released Fedora 14. At that time they also released an Amazon Machine Image (AMI) for EC2.

This is pretty big news — Fedora is one of the most popular Linux distributions around, with millions of copies running worldwide. The new version of Fedora includes new desktop, system administration, and developer features.

Just six months ago it was not possible to launch the previous version of Fedora in the cloud due to kernel incompatibilities. As of this launch, the Fedora team is now treating Amazon EC2 as a tier 1 platform that must be supported for launch.

Here’s a table of Fedora 14 AMI IDs. Be sure to log in as ec2-user, not root!

— Jeff;


Converting an S3-Backed Windows AMI to an EBS-Backed AMI

by Jeff Barr | on | in Amazon EC2 |

If you are running a Windows Server 2003 AMI it is most likely S3-backed. If you’d like to migrate it to an EBS-backed AMI so that you can take advantage of new features such as the ability to stop it and then restart it later, I’ve got some good news for you.

We’ve just put together a set of step-by-step instructions for converting an S3-backed Windows AMI to an EBS-backed AMI.

You will need to launch the existing AMI, create an EBS volume, and copy some data back and forth. It is pretty straightforward and you need only be able to count to 11 (in decimal) to succeed.

The document also includes information on the best way to resize an EBS-backed Windows instance and outlines some conversion approaches that may appear promising but are actually dead-ends.

— Jeff;

Updates to the AWS SDKs

by Jeff Barr | on | in Amazon EC2, Amazon Elastic Load Balancer, Amazon RDS, Amazon S3, Amazon VPC, Coding Tip, Developer Tools |

We’ve made some important updates to the AWS SDK for Java the AWS SDK for PHP, and the AWS SDK for .NET. The newest versions of the respective SDKs are available now.

AWS SDK for Java

The AWS SDK for Java now supports the new Amazon S3 Multipart Upload feature in two different ways. First, you can use the new APIs — InitiateMultipartUpload, UploadPart, CompleteMultipartUpload, and so forth. Second, you can use the SDK’s new TransferManager class. This class implements an asynchronous, higher level interface for uploading data to Amazon S3. The TransferManager will use multipart uploads if the object to be uploaded is larger than a configurable threshold. You can simply initiate the transfer (using the upload method) and proceed. Your application can poll the TransferManager to track the status of the upload.

The SDK’s PutObject method can now provide status updates via a new ProgressListener interface. This can be used to implement a status bar or for other tracking purposes.

We’ve also fixed a couple of bugs.


The AWS SDK for PHP now supports even more services. We’ve added support for Elastic Load Balancing, the Relational Database Service, and the Virtual Private Cloud.

We have also added support for the S3 Multipart Upload, and for CloudFront Custom Origins, and you can now stream to (writing) or from (reading) an open file when transferring an S3 object. You can also seek to a specific file position before initating a streaming transfer.

The 1000-item limit has been removed from the convenience functions; get_bucket_filesize, get_object_list, delete_all_objects, delete_all_object_versions, and delete_bucket will now operate on all of the entries in a bucket.

We’ve also fixed a number of bugs.


The AWS SDK for .NET now supports the Amazon S3 Multipart Upload feature using the new APIs — InitiateMultipartUpload, UploadPart, CompleteMultipartUpload, well as a new TransferUtility class that automatically determines when to upload objects using the Multipart Upload feature.

Weve also added support for the CloudFront Custom Origins and fixed a few bugs.

These SDKs (and a lot of other things) are produced by the AWS Developer Resource team. They are hiring and have the following open positions:

— Jeff;


FameTown – A New AWS-Powered Facebook Game

by Jeff Barr | on | in Amazon EC2, Cool Sites |

Amir of Diversion, Inc. wrote to tell me about his company’s newest release, an AWS-powered Facebook game called FameTown.

FameTown lets you play the role of a movie star in a digital version of Hollywood. You can start on the D-List (a total unknown) and attempt to progress to the A-List, earning points by completing tasks such as meeting with cast members and directors. You can also improve your social standing by attending parties and charity events, and you can hire agents, assistants, and publicists to further boost your career.

Under the hood, this Facebook game makes good use of AWS and a number of other technologies. Here’s a summary:

  • The game is written in Sinatra, a DSL (domain specific language) used to create Ruby apps with minimal effort. The code runs on Amazon EC2.
  • Traffic to the EC2 instances is load balanced using the Nginx load balancer.
  • Membase is used for data storage, hosted on a number of Elastic Block Storage (EBS) volumes.
  • Scalr is used to scale and manage the application.

Amir and I chatted about scalability. He told me that each application server runs on High CPU Extra Large (c1.xlarge) instance and can process 3000 to 3500 requests per second. Membase runs on a set of three Extra Large (m1.xlarge) instances and can handle over 100,000 requests per second.

I’ve not yet played FameTown (but I will), and I hope that Amir and company have a lot of success with it.

— Jeff;


Servers for Nothing, Bits for Free

by Jeff Barr | on | in Amazon EC2 |

In the last year or two we’ve added free tiers of service to Amazon SQS, Amazon SNS, and Amazon SimpleDB. We have learned that developers like to be able to try out our services without having to pay to do so. In many cases, they have created non-trivial applications that can run entirely within the free tier of a particular service.

Today, we’re going to go a lot farther. How far? Really far!

Effective today (November 1, 2010), we’re opening up a new free tier for all new AWS developers. Here’s what you get each month when you combine the existing free tier with this announcement:

  • 750 hours of free time on an Amazon EC2 Micro instance running Linux. You can use this to run one of the Amazon Linux AMIs or any other non-paid Linux AMI. This time cannot be used to run the new SUSE Linux AMIs, the IBM AMIs, or the Microsoft Windows AMIs.
  • 10 GB/months of Elastic Block Storage, 1 GB of snapshot storage, and 1 million I/O requests. This is enough space for the Amazon Linux AMI among others.
  • 750 hours of Elastic Load Balancer time and 15 GB of data transfer through it.
  • 5 GB/months of Amazon S3 storage, along with 20K GETs and 2K PUTs.
  • 15 GB of internet data transfer out, and 15 GB of internet data transfer in.
  • 100K Amazon SQS requests.
  • 100K Amazon SNS requests, along with 100K HTTP notifications and 1K email notifications.
  • 25 Amazon SimpleDB machine hours and 1 GB of storage.

In plain English, you get everything that you need to build and deploy a very functional web application and run it full time, for free! The AWS Management Console and Auto Scaling are already available at no charge, of course.

You need to send us cookies, put an AWS sticker on your cat, write a blog post about this, create an AWS account with a valid credit card attached, in case your usage in a given month exceeds what we’ve made available in the free tier.

You will be able to see what pay-as-you-go really means, and you will be able to get some valuable experience with AWS.

Your free usage starts on the day that you create your AWS account and ends one year after that. Accounts are limited to one per customer.

You can get started by reading the EC2 Getting Started Guide or my new AWS book.

We are very interested in learning more about the uses that you find for these new resources. In fact, we’re curious what folks are working on this week. If you create a cool tool, a great application, or a compelling web site that runs entirely within the free tier,send us a note by this Friday. You can leave a comment on this post or drop us a line at . We’d love to hear from you.

— Jeff;


Cloud-powered Software Development LifeCycle – Innovative Social Gaming and LBS Platform in the AWS Cloud – TAPTIN

by Jeff Barr | on | in Amazon EC2, Amazon Elastic Load Balancer |

As AWS technology evangelists, we often meet startups working on cool stuff.  Every so often we discover startups that have done incredible things on AWS.  Recently, I came across Navitas, a Berkeley-based company with development teams in Silicon Valley, Ecuador, and Thailand. Since I am deeply interested in location-based services and geo apps in the AWS, I dived a little deeper to learn more about the company and its architecture.

Navitas is the creator of TAPTIN, a location-based service similar to Foursquare and Gowalla. However, TAPTIN goes beyond mere check-ins.  The TAPTIN platform enables the creation of locally branded apps, such as Berkeley Local, which has events and recommendations for UC Berkeley and the city of Berkeley.  TAPTIN is thus a new form of local media, with built-in Foursquare-style check-in features as well as services for merchants to engage with their customers, such as through coupons, loyalty campaigns, etc. so you can build locally branded apps for every city around the world.  Another example of an app built on the same platform is We Love Beer app. This beer app has a beer catalog, and pubs can link to the catalog categories to create their own beer menus.  This app enables you to find what beers are available nearby, to locate a particular kind of beer, and to find your friends at local pubs.

Recently, Navitas abandoned their server farm and moved their entire development and production environments to AWS. It runs 100% in AWS cloud. TAPTIN is scaling on AWS across multiple tiers of servers. The founder of the company, Kevin Leong, was helpful in explaining their architecture in detail below.

What Kevin and his team have done is commendable, especially given that they did it by bootstrapping, which Kevin says would not have been possible without AWS.

Production Environment
The figure below depicts the Navitas production environment, which consists of seven scalable layers, all using open source enterprise technologies. Load balancers are employed in multiple tiers.  Search is based on Solr, a popular open source search platform from the Apache Lucene project. Solr is also used for geospatial search. The search tier uses HAProxy on an Amazon EC2 instance to apply write updates to a Solr master server, and these updates are then distributed to the two Solr read-only slaves.

Navitas Cloud Architecture 
The application tiers consist of three layers. Web pages are implemented in PHP and consume REST APIs running on Jetty servers.  Some PHP pages are also calling Solr directly.  The company originally started with Enterprise Java Beans (EJB) running JBoss servers but then decided to use lightweight Java Persistence API (JPA) with Hibernate and Spring Framework HTTP Remoting. The caching layer runs memcached which provides dynamic load balancing cache services. They employ two layers of cache.  First, they employ memcached that is deployed in the web tier.  If an object is not found in memcached, it will be requested from the persistent tier, which for most recently used objects are probably in cache.  This technique gives a higher performance.  Memcached is configured to scale automatically with new servers.

While load balancing and automatic instance deployment ensures high availability as TAPTIN and Grand Poker apps scale, Kevins team also implemented a failover strategy, automatic data backup and implemented data recovery steps, as well as recovery of Solr search indexes. Because everything is done behind AWS, there is no bandwidth usage.

Navitas uses PostgreSQL on Amazon EC2 to store structured data with pgpool for load balancing, failover and asynchronous replication.  It’s very easy for them to add another instance to Pgpool to replicate to support load balancing and parallel queries. 

Media, such as photos, are transcoded and stored in Amazon S3.

Sandbox and Development Environment
Having sandbox and source code repository (SVN) on AWS was not only cost-effective but also a huge productivity gain for the team as it was easy to launch another instance. With Amazon Machine Images (AMIs), developers create and launch a consistent environment for development, test and production environments. Kevin said that his developer team which is spread out around the world (in California, Latin America and Asia Pacific) can launch the same pre-configured sandboxes in that AWS region within minutes. This saved a lot of time and increased the developer productivity. The company uses spot instances for all development work, whenever available, which is cheaper.

They also create a new sandbox environment on AWS for testing.  With SVN on Amazon EC2, Navitas does their nightly build in the cloud. Source code is checked out to a build directory where its compiled, built and deployed. Unit test hornets are also run to ensure no code breakage and to ensure performance of function is maintained. Kevin talked about automated performance testing will be coming later when the company has more resources. 

With having an automated build on AWS, basically they were able to migrate their extreme programming development methodology to AWS by having developers commit their code daily for nightly build.  They commit all development code to SVN trunk for all projects, and can build as required for testing in their sandbox environment. They create SVN branches for all production releases, allowing them to bugfix quickly and efficiently, and immediately release new application binaries, or plan and stage back-end upgrades.

The company maintains a series of build-scripts and uses Maven to manage the build dependencies.  The server configuration is externalized so that the build scripts can pick up the appropriate configuration for sandbox and production.  They create their sandbox which is a mirror of production and the bootstrapped AMI does all the magic. Cloud-powered SDLC clearly has lot of advantages.

Final Thought
What I really liked about Kevin’s strategy was the “Think Scale” approach.  Not many startups invest in designing a scalable architecture early on especially because its time-consuming and distracting. Some think it’s too expensive. His message to Start-ups was “think scale” from the beginning as it is really not too expensive to do in the cloud. To quote him, “I did it by bootstrapping.  They can also.  Amazon AWS is the way to go.”

– Jinesh Varia

Restore The Gulf – US Government Site Hosted on Amazon EC2

by Jeff Barr | on | in Amazon EC2, Cool Sites |

Ho hum – another web site (pictured at right) running on Amazon EC2. No big deal, right?

Actually, it is a pretty big deal.

Take look at the top left of the site. What does it say?

An Official Website of the United States Government

A number of US Government regulations, including an important one called FISMA (Federal Information Security Management Act), establish stringent information security requirements that had to be satisfied before this site was brought on line.

The prime contractor for this project was a company called Government Acquisitions. They worked with Acquia for hosting, and SiteWorx (an Acquia partner) to build the site.

The site itself was built with the very popular Drupal content management system (CMS). You can read more about Acquia Hosting and their use of AWS in this update from Drupal founder Dries Buytaert. Ths is a nice step forward for Drupal and an unmistakable sign that the US Government is paying attention to open source software like Drupal.

If your application requires FISMA certification and you’d like to learn more about running it on AWS, please use the AWS Sales and Business Development form to get in touch with us.

Speaking of the US Government, we’ll be participating in the Adobe Government Assembly on November 3rd, 2010. At this event, government IT innovators will discuss ways to engage, innovate, and improve government efficiency. We hope to see you there!

— Jeff;