Amazon EC2- many micro-instances vs single small/medium instance

I have a chat application using stack of Openfire, Tomcat6 and MySQL.

Currently, i have installed all these servers on single Linux micro-instance(613 MB memory). Even in low user base 10-20 i am encountering CPU overload which is quite obvious here.

As, i am new to Amazon EC2 can somebody suggest me how to scale up my architecture according to traffic use?

  • should i use separate micro instances for every app server(openfire,mysql,tomcat6)

  • should i use single small or medium instance for whole server stack.

    Some factors in context:

  • high reliance on MYSQL

  • high memory usage due to file transfer

  • web-application interacting with other Amazon service like S3,SES


I would use at least an m1.small or better an m1.large Instance. The micro-instance really is for development only, because the 613MB may soon not be enough even with zero users. Besides that, you will most likely see a lot of CPU steal time and your Server will not react some time after you had a small cpu peak. That is very annoying.

I would try to get the whole stack running on each instance except of the mysql-db. Take a look at RDS! You dont need to setup a high avalailability mysql master-slave infrastrucure yourself!


Don't use micro instances for production due to their unpredictable CPU throttle. It is more cost effective to run everything at single instance, but if you are planning to grow and scale it is better to design and develop your application in several instances.