scaling Magento in the Amazon web Services

What's to follow is a set of instructions on how I went about getting Magento on the cloud in a scalable configuration, that's not to say it's the 'correct' way, but it works. The following are the tools I used:
Magento 1.6.1.0 Community Edition (should work with 1.5.0.0+)
Amazon AWS (EC2, ELB, RDS, S3/Cloudfront)
OnePica Image CDN plugin
Scalr (Open source cloud management platform)
NFSv3 (you can use v4)
s3cmd

Scalr isn't required, but it does provide some handy features like managing a DNS record for each server instance or allowing you to execute scripts across multiple servers. I'm also certain you could translate these instructions to other cloud systems as none of them depend on any particular AWS feature. Here is what we are trying to achieve (pardon the icons, they were the best I could find):

(ELB) Load balancer, balancing our web servers
(S3) CDN which will host our cached media files and skin (skin/) files (you could use cloudfront)
(EC2)x2 Public facing web servers which will contain our Magento code base (I put 2x so you can see how the load balancer and web server scaling will work)
(EC2) Admin web server which will be a seperated administration-only server
(EBS) Persistant storage mounted on the admin server containing our media files (media/) shared out via NFS
(RDS) Database server which speaks for itself