Conveniently, AWS has just made a case study on Fashiolista's setup, which will save me a bit of typing:
http://aws.amazon.com/solutions/case-studies/fashiolista/We run PostgreSQL and use its built in streaming replication.
Deploys are handled with Fabric - this includes AWS API actions (e.g. removing instances from the ELB while updating them) as well as pushing code.
We use Puppet as our config management tool, in combination with AMIs. If you just use a vanilla AMI and do all of your configuration on boot, autoscaling takes a long time, so we use Puppet to configure instances, then make AMIs of those. We also run Puppet on boot to do some runtime configuration.
This is automated, I'm planning to put the code on github once I have cleaned it up a bit.
We operate in eu-west-1, so have thankfully been relatively unaffected by the problems in us-east. Typical pain points are lack of flexibility in ELBs and variable performance on EBS - nothing that can't be worked around.
Setting up was relatively straightforward - AWS is well-documented and easy to experiment with. We did not have Puppet in place before moving to AWS - that is one thing that would have streamlined the process greatly.
I'm currently working on a book about AWS sysadmin/devops topics - some parts of the Fashiolista infrastructure will be used to demonstrate concepts in the book, but I'm always on the lookout for interesting architectures to write about. If you are doing something interesting on AWS and think it would make a good case study, I would love to hear about it.
ETA: Oh, and CloudFormation. Lots and lots of CloudFormation. I can't stress how useful it is. Our infrastructure configuration lives in the same github repo as our code and Puppet config, and is deployed using the same Fabric process. This makes the sysadmin in me very, very happy.