I came across “Do Not Use Amazon Linux” opinion on Ex Ratione. I have to say that I mostly agree with it. When I initially started using Amazon Web Services, I assumed (due to time constraints mostly) that Amazon Linux was a close derivative of CentOs and I opted for that. For the majority of things that affect applications in my environment that holds true, however it’s not all as simple as it sounds.
There are in fact differences that have to be taken into account. Some of the configuration issues can be abstracted with the tools like Puppet (which I do use). But not all of it. I’ve been bitten by package names and version differences (hello PHP 5.3, 5.4, and 5.5; and MySQL and MariaDB) between Amazon AMI and CentOS distribution. It’s an absolute worst when trying to push an application from our testing and development environments into the client’s production environment. Especially when tight deadlines are involved.
One of the best reasons for CentOS is that developers can easily have their local environments (Vagrant anyone?) setup in an exactly the same way as test and production servers.