An Amazon ELB is a great means for scalability and redundancy. When testing a system where the front-end is an Amazon ELB, one must take into consideration various factors:
- The ELB IP can change without warning. This is a problem when most operating systems cache DNS requests. Therefore you may find yourself testing an IP that is no longer relevant. You need to make sure that your DNS requests are not cached. In BlazeMeter simply add the following to the JMeter command line arguments: -Dsun.net.inetaddr.ttl=0
- Stickiness by means of cookie or by an ELB provided cookie. In any case, to assure that you are not testing a single instance behind the ELB, either set stickiness to OFF or use numerous machines as part of your test. The more machines you use the better the odds that you are testing all system resources as opposed to only one instance.
BlazeMeter is well equipped do deal with AWS ELBs. The non-caching directive is present in both the JMeter console and engines configuration, so requests are not cached. With BlazeMeter you can select to run the load from any number of load engines and divide the actual traffic between these servers.