One of the questions we regularly get, is which Linux AMI should I use at Amazon EC2? To answer this question, there are a number of questions you'll need to ask yourself to narrow it down.
1) Which Linux distro do you want to run?
You likely want to run one of the two most popular distros on EC2.:
a) Ubuntu Server (LTS release) - This is clearly EC2 users' favorite OS, and is running on more instances than all others combined. Most support channels, including self-service forums, are the most robust for Ubuntu. Paid support is available.
b) CentOS - If you are looking for a RedHat based distro, that is well supported on Amazon, and you are NOT a RHEL subscriber this will be your distro of choice. RedHat now officially funds development of CentOS, so it can be a very valid choice, particularly if you are attracted to the 10-year support lifecycle.
Other popular distros that are options, should be probably only be used only if you are an existing user of these distros, as they aren't nearly as popular as Ubuntu and CentOS, so you might run into issues that others haven't. These distros include:
c) RedHat Enterprise Linux
f) SUSE Enterprise Linux
Then there is Amazon Linux. While Amazon linux is a fine stable distro, that comes preconfigured with many AWS tools, we have difficulty recommending it, because it can't run outside of Amazon's cloud. You may think you do not care, as you plan to run all your infrastructure on EC2, but many modern development workflows require running local VMs that mirror your production environment on developer laptops (think vagrant). Amazon Linux isn't available outside of Amazon's cloud. Also, if you have a mixture of on-premise and cloud servers, again you can't run the same OS everywhere. Of course, if you are running a container-based workflow, the latest Amazon Linux has full support for Docker, which powers the Amazon EC2 Container Service. If you want to use Docker, and use the Amazon EC2 Container service to get going, it's a perfectly valid choice to use the Amazon ECS-optimized AMI, which is basically Amazon Linux preconfigured with Docker and the EC2 container agent. That said, most distros support Docker today, and we tend to steer people with heavy container-based workflows, towards building their own clusters using distros like CoreOS that were built from the ground up to only host containers.
2) 32-bit or 64-bit?
Although there are a few edge cases where a 32-bit AMI makes sense, the answer is now almost invariably 64-bit, as every instance type can run a 64-bit AMI, so you have the most flexibility to resize your instance at a later date.
3) PV or HVM?
If you are new to AWS, please choose an HVM AMI, as all new instance types will support HVM, and PV is being phased out. If you aren't new to AWS, you'll have to make the decision on a case by case basis, but in most cases you'll want to choose an HVM AMI so that you can take advantage of the newer instance types that provide higher performance, and better cost effectiveness.
4) EBS or instance-store?
In almost all cases you want EBS backed AMIs, as they give you much more flexibility, in that they allow you to turn off the instance without losing the data stored on the root volume. This provided you the ability to easily resize your instances. In summary, in all all likelihood you'll want to be running a 64-bit, EBS-backed, HVM AMI that's running a popular Linux distribution like Ubuntu LTS, or CentOS.
Brandorr Group LLC is a one-stop cloud computing solution provider, helping companies manage growth and ship new projects using cloud and scalability best practices.
220 Broadway (19th fl)
New York, NY 10038
We'd love to hear from you,
please feel free to call us:
With decades of experience in cloud technologies and specialties in high volume/throughput, high availability, and disaster mitigation engineering, Brandorr Group has the experience to help customers of all sizes develop, deploy and manage their new or existing infrastructure in the cloud.
By using provisioning and configuration management technologies such as Docker, Ansible, Chef, Puppet, Terraform, and CloudFormation, we are able to quickly and cost-effectively scale and deploy infrastructure projects of any size.
Additionally, Brandorr maintains 24x7 systems engineering, security and monitoring teams augmented by database administrators and software developers to ensure projects are delivered and systems remain highly available while maintaining performance.