One of the issues people run into when they start looking at using AWS at scale is that although the cost per minute of compute resources is small once you multiply out the cost for a full month of always on compute it can be surprisingly expensive. Launching a machine for an hour or two for an experiment is so cheap people don’t fully think through the cost for having the machine be always on for a production environment. AWS Lambda gives you all the compute resources you need, and allows you to only pay for what you actually use.
With AWS Lambda you can create functions that perform compute actions when certain events are triggered. If someone uploads a picture to your S3 Bucket this can trigger a routine to take that picture and compress it. You then only pay for the compute time required for the actual compression.
To code for Lambda you’ll need to know Node.js or Java, but you can use these languages to trigger scripts in languages supported by Amazon Linux including BASH, Python and Ruby.
This could be a great platform for developing apps for new Startup companies. You only pay for the services required, and you can scale up indefinitely without having to migrate your code. The only issue could be is if you do in fact create the next Instagram the costs could increase unexpectedly as load skyrockets.
Check out AWS Lambda here: http://aws.amazon.com/lambda/