BUNGEE Quick Start Guide for AWS EC2 based elastic clouds



Similar documents
Amazon Web Services Primer. William Strickland COP 6938 Fall 2012 University of Central Florida

Using ArcGIS for Server in the Amazon Cloud

Using Amazon EMR and Hunk to explore, analyze and visualize machine data

BUNGEE An Elasticity Benchmark for Self-Adaptive IaaS Cloud Environments

Amazon Elastic Beanstalk

Using The Hortonworks Virtual Sandbox

Using ArcGIS for Server in the Amazon Cloud

Generating Load from the Cloud Handbook

!"#$%&'()*'+),-./)0' 9##+':,%-.;),0'

How To Choose Between A Relational Database Service From Aws.Com

Trend Micro Worry- Free Business Security st time setup Tips & Tricks

How To Deploy Sangoma Sbc Vm At Amazon Cloud Service (Awes) On A Vpc (Virtual Private Cloud) On An Ec2 Instance (Virtual Cloud)

Scaling in the Cloud with AWS. By: Eli White (CTO & mojolive) eliw.com - mojolive.com

Background on Elastic Compute Cloud (EC2) AMI s to choose from including servers hosted on different Linux distros

Build Your Own Performance Test Lab in the Cloud. Leslie Segal Testware Associate, Inc.

VMUnify EC2 Gateway Guide

Healthstone Monitoring System

Eucalyptus User Console Guide

.Trustwave.com Updated October 9, Secure Web Gateway Version 11.0 Amazon EC2 Platform Set-up Guide

There are numerous ways to access monitors:

Monitoring and Scaling My Application

Razvoj Java aplikacija u Amazon AWS Cloud: Praktična demonstracija

AWS Account Setup and Services Overview

ArcGIS 10.3 Server on Amazon Web Services

Cloud Computing. Adam Barker

Guide to the LBaaS plugin ver for Fuel

Amazon EC2 Product Details Page 1 of 5

EEDC. Scalability Study of web apps in AWS. Execution Environments for Distributed Computing

How To Set Up Wiremock In Anhtml.Com On A Testnet On A Linux Server On A Microsoft Powerbook 2.5 (Powerbook) On A Powerbook 1.5 On A Macbook 2 (Powerbooks)

Developing High-Performance, Scalable, cost effective storage solutions with Intel Cloud Edition Lustre* and Amazon Web Services

WE RUN SEVERAL ON AWS BECAUSE WE CRITICAL APPLICATIONS CAN SCALE AND USE THE INFRASTRUCTURE EFFICIENTLY.

How To Create A Virtual Private Cloud On Amazon.Com

Opsview in the Cloud. Monitoring with Amazon Web Services. Opsview Technical Overview

ColdFusion 10 in the Amazon AWS Cloud. Sven Ramuschkat tecracer GmbH

Elastic Detector on Amazon Web Services (AWS) User Guide v5

TECHNOLOGY WHITE PAPER Jun 2012

Web Application Firewall

SAIP 2012 Performance Engineering

Last time. Today. IaaS Providers. Amazon Web Services, overview

STeP-IN SUMMIT June 18 21, 2013 at Bangalore, INDIA. Performance Testing of an IAAS Cloud Software (A CloudStack Use Case)

Apache Stratos (incubating) M5 Installation Guide

Cloud Computing project Report

Talari Virtual Appliance CT800. Getting Started Guide

Tibbr Installation Addendum for Amazon Web Services

WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE

A Monitored Student Testing Application Using Cloud Computing

Load testing with. WAPT Cloud. Quick Start Guide

AdWhirl Open Source Server Setup Instructions

AWS Lambda. Developer Guide

Amazon Web Services Student Tutorial

1 What is Cloud Computing? Cloud Infrastructures OpenStack Amazon EC CAMF Cloud Application Management

HIGH-SPEED BRIDGE TO CLOUD STORAGE

This presentation covers virtual application shared services supplied with IBM Workload Deployer version 3.1.

Chapter 11 Cloud Application Development

CloudCIX Bootcamp. The essential IaaS getting started guide.

Android: Setup Hello, World: Android Edition. due by noon ET on Wed 2/22. Ingredients.

Tutorial: Using HortonWorks Sandbox 2.3 on Amazon Web Services

Amazon Aurora. r3.8xlarge

How to Configure an Initial Installation of the VMware ESXi Hypervisor

Single Node Hadoop Cluster Setup

On- Prem MongoDB- as- a- Service Powered by the CumuLogic DBaaS Platform

Lab 0 (Setting up your Development Environment) Week 1

Cloud.com CloudStack Community Edition 2.1 Beta Installation Guide

TECHNOLOGY WHITE PAPER Jan 2016

Online Backup Guide for the Amazon Cloud: How to Setup your Online Backup Service using Vembu StoreGrid Backup Virtual Appliance on the Amazon Cloud

Tutorial: Load Testing with CLIF

GETTING STARTED WITH PROGRESS AMAZON CLOUD

Deploying for Success on the Cloud: EBS on Amazon VPC. Phani Kottapalli Pavan Vallabhaneni AST Corporation August 17, 2012

ur skills.com

USER CONFERENCE 2011 SAN FRANCISCO APRIL Running MarkLogic in the Cloud DEVELOPER LOUNGE LAB

Load and Performance Load Testing. RadView Software October

ST 810, Advanced computing

JMETER - MONITOR TEST PLAN

Aneka Dynamic Provisioning

DVS-100 Installation Guide

Table of Contents. Using the plug- in Pure Storage Flash Array Home Page... 11

HADOOP BIG DATA DEVELOPER TRAINING AGENDA

Every Silver Lining Has a Vault in the Cloud

Amazon EC2 Container Service. Developer Guide API Version

Creating an ESS instance on the Amazon Cloud

KeyControl Installation on Amazon Web Services

Recording HTTP/S Traffic from any iphone and ipad by using "Pure Cloud"

What it is and why you might use it

Altor Virtual Network Security Analyzer v1.0 Installation Guide

Postgres Plus Cloud Database!

Tutorial on Basic Android Setup

Network Probe User Guide

Zend Server Amazon AMI Quick Start Guide

Alfresco Enterprise on AWS: Reference Architecture

OpenTOSCA Release v1.1. Contact: Documentation Version: March 11, 2014 Current version:

How to Guide: StorageCraft Cloud Services VPN

ArcGIS for Server: In the Cloud

Amazon Web Services Yu Xiao

RDS Migration Tool Customer FAQ Updated 7/23/2015

Transcription:

BUNGEE Quick Start Guide for AWS EC2 based elastic clouds Felix Rauh (felix.rauh@stud-mail.uni-wuerzburg.de) and Nikolas Herbst (nikolas.herbst@uni-wuerzburg.de) At the Department of Computer Science Chair for Computer Science II Software Engineering July 7, 2015 BUNGEE version 1.0 Julius-Maximilians-Universität Würzburg http://descartes.tools/bungee

Contents 1 Introduction 1 1.1 Requirements................................... 1 2 Installation and configuration of BUNGEE for AWS EC2 2 2.1 Load Driver system setup............................ 2 2.2 AWS EC2 Management Console........................ 3 2.3 Images for worker vm instances (Launch configuration)............ 4 3 Getting started 5 3.1 BUNGEE Examples............................... 5 3.1.1 TestAWS.java............................... 5 3.1.2 DetailedAWSAnalysis.java........................ 5 3.1.3 RunBenchmarkonAWS.java....................... 6 3.2 Property files................................... 7 3.2.1 measurement.prop file.......................... 7 3.2.2 host.prop file............................... 7 3.2.3 jmeter.prop file.............................. 7 3.2.4 request.prop file............................. 7 4 Installation and configuration of BUNGEE for CloudStack 8 5 Result analysis 9 5.1 result.runresult file................................ 9 6 Possible Extensions to BUNGEE 11 7 Final Remarks 12 ii

1. Introduction The following instructions intend to enable an easy start using the BUNGEE IaaS elasticity benchmarking framework. For in-depth documentation, please refer to the Master s thesis by Andreas Weber, Chapter 6, Pages 49-70. 1.1 Requirements At the moment BUNGEE works with Windows on your local load-driver machine. We are working to fix the remaining bugs on Linux/Mac, as JMeter is not called correctly by BUNGEE on these platforms. Access to a public elastic IaaS cloud (e.g. AWS EC2) or a private (e.g. CloudStack based) environment is required. 1

2. Installation and configuration of BUNGEE for AWS EC2 2.1 Load Driver system setup Install Java SDK, 1.6 or newer Install Eclipse IDE (for Java EE Developers recommended for AWS). Install LIMBO Load Intensity Modeling Framework (http://descartes.tools/ limbo) via the Eclipse Update site http://se2.informatik.uni-wuerzburg.de/ eclipse/limbo/. Install viewer plugins of the BUNGEE framework via the Eclipse Update site http: //se2.informatik.uni-wuerzburg.de/eclipse/bungee/ Install http://aws.amazon.com/eclipseaws Toolkit/SDK for Java. The AWS SDK for Android is not needed. To enable all the features within Eclipse you need your AWS Access Key ID and your AWS Secret Access Key after that installation. Checkout BUNGEE Java projects from: https://github.com/nikolasherbst/bungee Download Apache JMeter http://jmeter.apache.org/download_jmeter.cgi version 2.11 and install the JMeter TimestampTimer Plugin from https://github. com/andreaswe/jmetertimestamptimer (Apache JMeter 2.11 with the required TimestampTimer Plugin is also available at the BUNGEE GITHUB repository.) BUNGEE experiments perform distributed time measurements of high amount of short running tasks (in the order of milliseconds). Before running a BUNGEE experiment the time of your local system and the time of the cloud instances should be configured to synchronize with the same NTP servers. The NTP time service on Windows machines is getting imprecise within experiment duration. BUNGEE s sanity check on after a measurement run fails in these cases as the timestamp of request sent may be bigger than the one of request processed on cloud instance. We suggest to use the Meinberg NTP package on your Windows load driver machine to fix the issue of imprecise system times. (https://www.meinbergglobal.com/ english/sw/ntp.htm#ntp_stable) 2

2.2. AWS EC2 Management Console 3 2.2 AWS EC2 Management Console Login to your AWS EC2 management console Create a Load Balancer: set Ports on 8080 (HTTP) select a Security Group and Security Settings set Ping Path (see Configure Health Check) to /?size=1 and in advanced Details you can set Timeout = 2 seconds; Interval = 5 seconds and Thresholds on 2. you don t have to choose an instance disable Cross-Zone Load Balancing set Connection Draining on 30 seconds set Tags you want Create a Launch Configuration: select a AMI you want; for easy testing can try our preconfigured image for Elasticity Benchmarking (for more information see below) choose a instance type you want enable CloudWatch detailed monitoring select the your security group like configured above finally select a key pair Create an Auto Scaling Group: select your just now created launch configuration select a network and a subnet of your choice see advanced details for enabling load Balancing and select the balancer you ve created before. Set Health Check Type on EC2 with a Grace Period of 30 seconds use scaling policies to adjust the capacity of this group; see Figure 2.1 for an example Make sure you have set the same security group for your Load Balancer and your Launch Configuration. It will not work when launched instances haven t the same group. 3

2.3. Images for worker vm instances (Launch configuration) 4 Figure 2.1: scaling policies example 2.3 Images for worker vm instances (Launch configuration) You can use our preconfigured AMI for testing BUNGEE. Our Image is available in any region: US East (N. Virginia) - AMI ID: ami-6ff31404 US West (Oregon) - AMI ID: ami-55c8f465 US West (N.California) - AMI ID: ami-253ad261 EU (Ireland) - AMI ID: ami-b94388ce EU (Frankfurt) - AMI ID: ami-4e86b853 Asia Pacific (Singapore) - AMI ID: ami-70390122 Asia Pacific (Tokyo) - AMI ID: ami-60ac7d60 Asia Pacific (Sydney) - AMI ID: ami-c5b0c9ff South America (São Paulo) - AMI ID: ami-5195144c Otherwise you can simply set up your own machine: The cloud-side load generation application is a java based HTTP server. This allows to easily deploy it on any platform with a support for java. The application uses Simple (version 5.1.6) as a lightweight HTTP server framework. You can find the required libraries and classes for the server application inside the package tools.descartes.bungee.simplehttp of this project. 4

3. Getting started 3.1 BUNGEE Examples Let s try some examples of the project you can find at tools.descartes.bungee.cloud. aws/src/tools.descartes.bungee.examples. The tests TestAWS.java, DetailedAWSAnalysis.java and RunBenchmarkonAWS.java are described below. 3.1.1 TestAWS.java This is a Hello World to check, if infrastructure setup is okay. insert the DNS of your Load Balancer at hostname (line 11) run TestAWS.java as a Java application this test starts an instance, if none is started yet. it tests whether BUNGEE can connect to AWS and can measure request response times 3.1.2 DetailedAWSAnalysis.java The Detailed Analysis process searches for the maximum intensity in requests your cloud can sustain at every scaling stage via a binary search. Be aware that this process can easily take up to several hours. make sure the files defined in lines 20 22 exist inside the host properties file you have to set the DNS of you Load Balancer as hostname you can switch on or of the GUI by changing the value/file inside the jmeter properties file this test creates the calibration/mapping files that are used for the next test: the amount of instances is controlled by BUNGEE (controller disabled) BUNGEE searches the maximum load intensity your system can withstand at a certain scaling level. 5

3.1. BUNGEE Examples 6 3.1.3 RunBenchmarkonAWS.java This executes a load profile defined in DLIM scaled to a given upper maximum number of instances. select a property file for the settings of your test (line 15) use our preconfigured property files or create/adapt your own (the property files are documented separately, see below) opt Use LIMBO to build own Descartes Load Intensity Profiles (DLIM) or extract model instances from own traces. We suggest the LIMBO tutorial as background. make sure, the called files inside that property file are existing (line 1 6) inside the called host properties file you have to set the DNS of you Load Balancer as hostname run this Java application for a benchmark which is defined inside the property file; here the calibration files from above are used the jmeter GUI can be activated at propertyfiles/jmeter.prop This program executes the elasticity measurement based on the DLIM load profile given as input (the amount of resources is now controlled by your controller/aws autoscaling configuration). BUNGEE executes a sanity check on the measurement data, whether your load driver machine achieved to send the requests accurately timed. 6

3.2. Property files 7 3.2 Property files These property files are important for AWS EC2. The other property files additionally needed for CloudStack based environments. 3.2.1 measurement.prop file mappingfile=path/file.mapping #the created mapping file of the analysis run before numberofbenchmarkedresources=10 #set the max number of instances that are spawning relativepathes=true #true or false intensitymodelfile=path/file.dlim #LIMBO load intensity profile used for the benchmark hostpropertiesfile=path/file.prop #for the communication with the host requestpropertiesfile=path/file.prop #location of the request file for JMeter warmupseconds=300 #duration without measuring secondspertimeunit=225 #depends on the load profile, here we have a time unit (1 arrival rate value) per 15 minutes - the experiment of simulation one day is speed up times 4 when using 225 (resulting in 6h experiment time) 3.2.2 host.prop file hostname=dns port=8080 #insert the load balancer DNS here #port for HTTP communication 3.2.3 jmeter.prop file nogui=true # true or false activates the GUI; also set the jmx file jmeterpath=path/apachejmeter.jar #relative path to the JMeter project jmxfile=jmx/nogui.jmx #select a jmx you like; depends on the boolean Gui propertyfile=propertyfiles/jmeter.properties #yet another file for JMeter properties 3.2.4 request.prop file # arguments for JMeter problemsize=500000 timeout=1000 7

4. Installation and configuration of BUNGEE for CloudStack Please check out the code to get BUNGEE with CloudStack working. Find the places inside the code where to add needed information (like above). This property files are used for CloudStack: cloudsettings.prop netscaler.prop cloudstack.prop Inside the measurement.prop file you should add: cloudstackpropsfile=cloudstack.prop. 8

5. Result analysis You can use the viewer Plugin (see Figure 5.1) to analyse the results. Also generate and watch charts, for an example see Figure 5.2. To enable the viewer plug-in features in Eclipse click on Window Show View Other..., select BUNGEE Elasticity Measurement and choose the views you want. If you click on a BUNGEE generated file inside measurement or calibration you can see the result in the correspondent view. Be warned klicking on a runresult file could take a while, because it contains all the timestamp of sent requests. At the moment you can not save the figures, because of the itext licence. 5.1 result.runresult file # #Tue May 26 11:10:58 CEST 2015 #Timestamp automatically created responsefile=responses.csv #responses of the benchmark. The file contains: id, timer start, start, end, response Time, latency, start Wortk, end Work, duration, result, failed, response Code, Server IP warmupseconds=180.0 #waiting-time after a new instance has started timestampfile=timestamps.csv #timestamps for the benchmark test. Stamps are automatically created Figure 5.1: BUNGEE Eclipse Viewer Plug-In has four differnet Views for different files 9

5.1. result.runresult file 10 Figure 5.2: charts generated by the BUNGEE Eclipse Viewer Plug-In 10

6. Possible Extensions to BUNGEE add own metrics that are based on measured response times, throughput, resource supply/demand changes change application type (adapting the jmx-file containing the JMETER test plan) and connecting BUNGEE to the elastic application in the cloud running behind the load balancer employ other than out-of-the-box controllers that implement the AWS or CloudStack autoscaling API AWS and Cloudstack support is given by now. BUNGEE can be easily extended to support OpenStack and other cloud management APIs Distributed, synchronised execution of several BUNGEE load driver instances to achieve higher intensities (more than 600 req/sec) 11

7. Final Remarks Your feedback is highly appreciated. Countless hours of work have been spent for this work - please cite us if you are using our framework: Nikolas Roman Herbst, Samuel Kounev, Andreas Weber, and Henning Groenda. BUNGEE: An Elasticity Benchmark for Self-Adaptive IaaS Cloud Environments. In Proceedings of the 10th International Symposium on Software Engineering for Adaptive and Self- Managing Systems (SEAMS 2015), Firenze, Italy, May 18-19, 2015. @inproceedings{hekowegr_2015_seams_bungee, author = {Nikolas Roman Herbst and Samuel Kounev and Andreas Weber and Henning Groenda}, title = {{BUNGEE: An Elasticity Benchmark for Self-Adaptive IaaS Cloud Environments}}, keywords = {IaaS, benchmark, metric, cloud, elasticity, resource, measurement}, booktitle = {Proceedings of the 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2015)}, day = {18--19}, location = {Firenze, Italy}, month = {May}, year = {2015}, pdf = {http://se2.informatik.uni-wuerzburg.de/pa/uploads/papers/paper-782. pdf}, slides = {http://se2.informatik.uni-wuerzburg.de/pa/uploads/slides/slidespaper-782.pdf} } For more information please refer to: BUNGEE IaaS Cloud Elasticity Benchmarking Framework: http://descartes.tools/bungee LIMBO Load Intensity Modeling Framework: http://descartes.tools/limbo Further Descartes Tools: http://descartes.tools 12