Amazon Linux vs. Ubuntu for Amazon EC2
Solution 1:
Amazon Linux is a rolling distro, like Fedora, or Debian Testing (sort of). In my view it is not suitable for any production product whatsoever. I'm surprised more people do not realize this. This means if you launched your Amazon Linux instance, say, 450 days ago and do an update today, you will be pulling updates from an entirely different release. Once a new release is made, you have no buffer time, you immediately start pulling updates from the new release. As you can imagine, this may pull in a cascade of dependencies, and has a tendency to break things. For this reason it is inherently unmanageable. You cannot work something like this into an update policy without it being an absolute mess. Do not use Amazon Linux for anything serious.
Ubuntu LTS is a fine choice, as is Debian Stable or CentOS. All of those give you many years of updates to the same release.
Amazon Linux also has no bug tracking system, users must post questions in the AWS Developer Forums to file a bug against a package! There is no way to search for bugs, either. This should be a showstopping issue for almost everyone.
Amazon Linux makes it very difficult to retrieve source packages, needlessly.
Solution 2:
Since this question was written, Amazon completely revamped for Amazon Linux AMI 2011.09, with all the bootstrapping for CloudFormation as well as Amazon tools.
Also, it includes Nginx and PHP-FPM in the yum
repos if you're looking for fast and light.
Keep up with the latest releases here: http://aws.amazon.com/amazon-linux-ami/latest-release-notes/
Also keep an eye on security updates: http://aws.amazon.com/amazon-linux-ami/security-bulletins/
You'll usually have less to worry about, as the base AMI is a bare bones server with just the tools needed to bootstrap the services you actually need.
Solution 3:
I was in a similar situation; fully managed dedicated server, LAMP, CentOS. Then we decided to move to EC2. Also, I had very little systems or linux administration experience. I have almost zero experience with Ubuntu, so I really cannot speak to which is the so-called better OS.
I tried a bunch of pre-built AMI's with minimal OS installs from Rightscale, Alestic, Scalr and Amazon. I ended up building all my own AMI's on top of Amazon Linux, first using version 2010.11.01, now I've migrated all my custom AMI's to Amazon Linux version 2011.03.01.
The decision to go with an Amazon Linux AMI vs the other AMI providers was not an easy one. I played around with and tested different setups for close to a month before I made my final decision. In the end, since I wanted to use CentOS, it basically boiled down to one thing. I figured who better to know what hardware related dependencies needed to be included in the OS than the people who designed, built and maintain EC2. Nothing against Rightscale, Scalr or Alestic.
Six months later, even though I hit a few bumps in the road, Amazon's Linux has been quite stable. Though, I did decide to compile some of the software we use from the source (ie. php 5.3, MySQL 5.5, etc) because I ran into trouble with the pre-built packages Amazon maintained in their package repository.
Solution 4:
If you already have some familiarity with RHEL/CentOS, I'd stick with that. There is no "best" distro for a web app server. It comes down to what tools and conventions you are most familiar with.
Solution 5:
Although Ubuntu does better on these benchmarks, the tests themselves contribute towards Ubuntu winning, and the differences don’t seem to be big anyway.
I recently chose Amazon Linux largely because of automatic updates, and also because of the Ubuntu AMI bug reported by Steven and Ethan in the Quora version of this question.