Stress test your Flex application using Jmeter and EC2 - Part 2

In part 1 we discussed Jmeter configuration.

In this part, we'll go over EC2 configuration

 

We’ll be using Amazon’s cloud computing service (aka EC2/S3).

I’ll be assuming you already have an account with Amazon. If you don’t, create one, and save the cert-XXX.pem and pk-XXX.pem key files.

What we’d like to achieve, is a machine image (AMI) stored on S3 service, which will have Jmeter already installed. That will let us create instances of that image when needed.

 

Setup your local machine
  1. Download EC2 tools from here: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351.
  2. Extract ec2-api-tools.zip to some directory. I’ve installed them at /root/.ec2
  3. Create a ‘keys’ directory under /root/.ec2
  4. Install JRE>=1.5
  5. Export/set the following environment variables; JAVA_HOME, EC2_HOME, EC2_PRIVATE_KEY, EC2_CERT, PATH. You could simply add these to your .bashrc file:

export JAVA_HOME=/usr
export EC2_HOME=/root/.ec2/ec2-api-tools
export EC2_PRIVATE_KEY=/root/.ec2/keys/pk-XXX.pem
export EC2_CERT=/root/.ec2/keys/cert-XXX.pem
export PATH=$EC2_HOME/bin:$PATH

 

Your local machine is ready! Happy happy joy joy!!!
Now, you can start using EC2 commands.
 
Creating an AMI

The easiest way to create an AMI is to use an existing public one and install what you need over it.

  1. Select an AMI
    The first step is to locate an AMI that contains the packages and services that you require. This can be one of your own AMIs or one of the public AMIs provided by Amazon EC2. Use ec2-describe-images to get a list of available AMIs, then select one of the listed AMIs and note its AMI ID, e.g. ami-4b709422 (Ubuntu 8.10 64bit).
  2. Generate a Keypair
    This step is only required if you’ve selected one of the public AMIs provided by Amazon EC2 (which we do). A public/private keypair must be created to ensure that you, and only you, have access to the instances that you launch. ec2-create-keypair key1 – the result will be something like:

KEYPAIR key1 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f

-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQBuLFg5ujHrtm1jnutSuoO8Xe56LlT+HM8v/xkaa39EstM3/aFxTHgElQiJLChp
HungXQ29VTc8rc1bW0lkdi23OH5eqkMHGhvEwqa0HWASUMll4o3o/IX+0f2UcPoKCOVUR+jx71Sg
...
P8TTvW/6bdPi23ExzxZn7KOdrfclYRph1LHMpAONv/x2xALIf91UB+v5ohy1oDoasL0gij1houRe
2ERKKdwz0ZL9SWq6VTdhr/5G994CK72fy5WhyERbDjUIdHaK3M849JJuf8cSrvSb4g==
-----END RSA PRIVATE KEY-----

The resulting private key must be saved in a local file for later use. Create a file named key1-keypair in /root/.ec2/keys and paste into it all lines starting with the line

-----BEGIN PRIVATE KEY-----
and ending with the line

-----END PRIVATE KEY-----“.
Confirm that the file contents looks exactly as shown below.

—–BEGIN RSA PRIVATE KEY—–
MIIEoQIBAAKCAQBuLFg5ujHrtm1jnutSuoO8Xe56LlT+HM8v/xkaa39EstM3/aFxTHgElQiJLChp
HungXQ29VTc8rc1bW0lkdi23OH5eqkMHGhvEwqa0HWASUMll4o3o/IX+0f2UcPoKCOVUR+jx71Sg

P8TTvW/6bdPi23ExzxZn7KOdrfclYRph1LHMpAONv/x2xALIf91UB+v5ohy1oDoasL0gij1houRe
2ERKKdwz0ZL9SWq6VTdhr/5G994CK72fy5WhyERbDjUIdHaK3M849JJuf8cSrvSb4g==
—–END RSA PRIVATE KEY—–

Make sure that only the owner can read & write to that file. i.e.
chmod 600 /root/.ec2/keys/key1-keypair

  1. Launch an instance of the AMI you selected above:
    ec2-run-instances ami-4b709422 -k key1 -n 1-1 -t m1.large
    the result will be something like
    INSTANCE i-10a64379 ami-5bae4b32   EC2    pending   key1

The instance ID in the second field of the output is a unique identifier for the instance and can be used subsequently to manipulate your instance, e.g. to terminate it.Important: Once you launch an instance, you will be billed per hour for CPU time. Make sure you terminate any instances which you don't intend to leave running indefinitely.It will take a few minutes for the instance to launch. You can follow its progress by running: ec2-describe-instances i-10a64379

RESERVATION     r-fea54097  495219933132   EC2
INSTANCE        i-10a64379  ami-5bae4b32 domU-12-34-31-00-00-05.usma1.compute.amazonaws.com EC2 running key1

When the status field reads “running”, the instance has been created and has started booting. There may still be a short time before it is accessible over the network, however. The DNS name displayed in the sample output above will be different from that assigned to your instance. Make sure you use the appropriate one.

  1. Authorize network access In order to be able to reach the running instance from the Internet, you need to enable access for the ssh service which runs on port 22:
    ec2-authorize default -p 22

    PERMISSION default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0
  2. Connect to the instance
    ssh -i /root/.ec2/keys/key1-keypair root@domU-12-34-31-00-00-05.usma1.compute.amazonaws.com
  3. Now you have complete control over the instance, and you better change the root password to something else.
  4. Upload your Amazon Web Services (AWS) private key (PK) & certificate (CERT) files to that instance.
    You can use scp to do this.
    scp -i /home/azeez/.ec2/keys/key1-keypair pk-XXX.pem cert-xxx.pem
    root@domU-12-34-31-00-00-05.usma1.compute.amazonaws.com:/tmpThe new AMI will be encrypted and signed to ensure that it can only be accessed by you and Amazon EC2. You therefore need to upload your Amazon EC2 private key and X.509 certificate to the running instance, for use in the AMI bundling process.

    Note:
    It is important that the key and cert files are uploaded into /tmp to prevent them being bundled with the new AMI.
  5. Install Java
    sudo vim /etc/apt/sources.list

    Ensure that the following two sources are added to the configuration file:
    deb http://za.archive.ubuntu.com/ubuntu/intrepid main restricted
    deb http://za.archive.ubuntu.com/ubuntu/
    intrepid multiverse

    After the configuration file is updated, the package repository needs to updated with the following command:
    sudo apt-get update

    To install Java version 6, the following command needs to be executed:
    sudo apt-get install sun-java6-jre
  6. Install Jmeter
    Download and install Jmeter, and scp the scenarios you’d like to run.
  7. Bundle the AMI

 

OR
USE THE AWS CONSOLE at

https://console.aws.amazon.com

 

Thank you for your interest!

We will contact you as soon as possible.

Send us a message

Oops, something went wrong
Please try again or contact us by email at info@tikalk.com