пятница, 29 августа 2014 г.

Load testing with Amazon

Использование EC2 Amazon для нагрузочного тестирования

Думаю, что тут все просто.Не всегда нам хватает своих машин или своей ширины канала для нагрузочного тестирования.
А быстро нам все это предоставить не всегда возможно,но есть выход что с этим делать.
Можно воспользоваться EC2 Amazon.
Сервис который предоставит нам до 10 микро инстансов,на удобной нам системе и бесплатно(правда только первый год,но нам этого хватит)

В общем то все это сделать можно достаточно просто,но не совсем,постараюсь рассказать.
1.Создаем нужный нам instance машины.
2.Начинаем предварительную настройку машины.

Важно!-Не нужно заходить на машину и настраивать iptables,как делал сначала я.Все это настраиваться в UI Instance в категории Security Groups.

3.Настраиваем доступы следующим образом


4.После этого мы уже почти закончили)
Сетапим Jmeter и запускаем на машинах jmeter-server
Запускаем примерно вот так

jmeter-server -Dserver.rmi.localport=2048 -Djava.rmi.server.hostname=`curl -s http://169.254.169.254/latest/meta-data/public-ipv4`

На всякий случай объясню,что мы тут делаем.
Мы биндим RMI на 2048 порт и запускаем сервер с публичным IP который нам предоставил EC2

5.Нам понадобится ssh туннели,кто не в курсе как это и что это лезем сюда.

ssh -R11099:localhost:11099 ...(user@ip)

ssh -i yourkey.pem -R 11099:localhost:11099 ec2-user@54.213.155.162

6.На основной машине запускаем Jmeter следующим образом

jmeter -Dclient.rmi.localport=11099 -Djava.rmi.server.hostname=localhost 

Наши туннели будут пробрасывать все на порт 11099,все результаты полученные с удаленных машин появятся на нашей основной машине.

Кстати скопировать на инстанс проще всего как то так 

rsync -azvv --progress -e "ssh -i pathtopem.pem" target_folder ec2-user@52.88.37.176:destination_folder

Вот собственно и все.
Всем спасибо.