Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

For my Django e-commerce web application that will run on Nginx, gunicorn, postgresql and memcached, what should be my preference while selecting the right Ubuntu server version (32 or 64 bit) for Amazon EC2 ? Here is my selection:

share|improve this question
up vote 5 down vote accepted

There is almost no reason anymore to use 32-bit systems at all since the introduction of 64-bit ubiquity, see the respective post EC2 Updates: New Medium Instance, 64-bit Ubiquity, SSH Client:

You can now launch 64-bit operating systems on the Small and Medium instance types. This means that you can now create a single Amazon Machine Image (AMI) and run it on an extremely wide range of instance types, from the Micro all the way up to the High-CPU Extra Large and and the High-Memory Quadruple Extra Large [...]

This will make it easier for you to scale vertically (to larger and smaller instances) without having to maintain parallel (32 and 64-bit) AMIs.

Despite the cloud in general and Amazon EC2 in particular being primarily about horizontal scaling, this is still a rather significant improvement, insofar it allows to scale dedicated nodes up and down vertically as well with a simple stop/scale/start cycle, usually done in less than a minute manually (and this can of course be fully automated as well).

Consequently I'd recommend using only 64-bit instances going forward to gain the flexibility of vertical scaling; see Eric Hammond’s post Use the Same Architecture (64-bit) on All EC2 Instance Types for another, but equally enthusiastic perspective.

share|improve this answer
Very informative, thank you so much! – user117298 Apr 12 '12 at 21:53
Eric Hammond also mentions testing the difference in available free memory on a t1.micro 32-bit vs 64-bit Ubuntu instance. The 64-bit instance had only 4% less free memory, which means the difference is not significant, unless you're trying to squeeze every last bit out of it. – Martijn Heemels Apr 12 '12 at 21:58

While the typical answer is to use a 64-bit AMI, it should be noted that 32-bit operating systems use less memory, as each register is only half as wide. If memory usage is a concern for you, and you are using an instance with less than 4GB of memory (micro, small, medium) then a 32-bit operating system may offer an advantage.

Typically, there may be a small performance gain on 64-bit applications, although it is very specific to the implementation. Applications that are computationally intensive and work with large numbers may see a marked improvement in performance with a 64-bit architecture (e.g. encryption, audio/video encoding, etc).

For any instance larger with more than 4GB of memory, you must use a 64-bit AMI. If you want to retain the flexibility of changing your instance type later, then a 64-bit AMI is recommended as it works on all instances.

share|improve this answer

32-bit systems support up to 4GB of memory. Are you fine with this limit?

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.