We need the following EC2 instance types in the High IO Instances class from Amazon EC2 product team:
h1.large (2 cores, 7 GB RAM): Preferably very powerful CPU cores with High IO (1 GBits/s link). Will be useful for running HAProxy and Nginx in Non SSL mode.
h1.xlarge (4 cores, 7 GB RAM): Preferably very powerful CPU cores with High IO(1 GBits/s link). Will be useful for running HAProxy and Nginx in SSL mode. 1 core for HAProxy and dedicate remaining cores to Apache-Mod SSL, Stunnel("Tasksets") etc.
h1.2xlarge (2 cores , 60+GB RAM): Preferably very powerful CPU with High IO (10 GBits/s link) . Will be useful for running Redis and Varnish farms.
Note : The instance type API Names are imaginary and valid only for this article.
All the above popular software's are widely used by many online customers in AWS infra and they are designed not to eat lots of CPU (epoll/Kqueue model). Hence the current hi1.4xlarge, m2.4xlarge is a overkill while fitting them. The other lesser EC2 instance types do not ideally fit the requirements as well, but still we architect around it with scale out model(only option now in AWS). Not all the times scale out model is efficient; example take the case of Redis listed above, it will be really efficient to architect redis on 2 core, 60 GB RAM with very High IO (10GBits/s) for an high traffic system than on multiple m1.large EC2 instances for many use cases. I know the first 2 options(h1.large/xlarge) might be little greedy for now, but the last one will be really useful.
Need Consulting help ?
All posts, comments, views expressed in this blog are my own and does not represent the positions or views of my past, present or future employers. The intention of this blog is to share my experience and views. Content is subject to change without any notice. While I would do my best to quote the original author or copyright owners wherever I reference them, if you find any of the content / images violating copyright, please let me know and I will act upon it immediately. Lastly, I encourage you to share the content of this blog in general with other online communities for non-commercial and educational purposes.