I summarize the article provided by 3boll below. I'm using AWS. And based on the comparison below, I think the ELB is more suitable.
Performance
- ELB has the best performance.
- HAProxy is better with small load (less than 30 connections).
- Nginx is better with heavy load.
SSL support
- Both ELB and Nginx supports SSL.
- HAProxy doesn’t support SSL.
Algorithm Options
- HAProxy has the most options in this arena, support Round-Robin, Least Connection, Weighted and more.
- Nginx supports Round-Robin and Weighted only.
- AWS ELB only supports Round-Robin.
Monitoring solution
- Nginx, being a standard web server, can easily be monitored by any log monitor (e.g. Nagios), additionally, there's a plug-in (which I haven't tried) that looks interesting called Scout.
- HAProxy is also supported by Scout and there are several other options, including log monitors like Nagios.
- AWS ELB is supported by CloudWatch, so that's probably the simplest solution over, if you're using AWS.