Elastic Webserver on AWS

15618 Final Project

View project on GitHub

State of The Project

Its a little slower than anticipated and I am slightly behind schedule however its nothing that cannot be pulled back.

Things That I am Happy About

  • The basic load balancing framework was implemented allowing to blugin differant load balancing stratergies.
  • Almost all the work dealing woth the AWS Java API relating to spanning and killing of new instances is done. So in essense I have a basic Elastic Web Server which can do basic load balancing and scaling up and down.

Biggest Challenge

Deciding on how to generate traces and jobs so that they bring out the advantages of a scheduling and scaling stratergy based on the job at hand while still being representative of real world traces hitting the web server. It would be easy to make traces with heavily skewed jobs whoch would make the round robin load balancing of the ELB look bad but they may not necessearily be representative of real world traffic hitting the webservers.

I believe that the following types of requests broadly summarise the type of requests that arrive at a modern webservers

  • Latency Sensative requests. These are requests like static web content where the delays in serving the requests can lead to a bad user experience and make your site appear slow.
  • Requests that require a lot of computation. There are some requests that require a lot of CPU computation and although they are not super latency sensative if they get queued up at the Worker they can cause other requests to queue up if scheduled correctly.
  • Requests that are bandwith bound and will cause severly increased latencies if they need to page to disk.

Generating traces

The majority of the requests will be of the first type for most web tasks with type 2 and 3 requests interleaved in.

I plan to create four types of trace sets

  • Majority type 1 requests and a few type 2 and type 3 requests.
  • Majority type 2 reqeusts.
  • Majority type 3 reqeusts.
  • A mix of all three types of requests.
  • Evaluation Methodology

    Ill generate baseline time for all the computations done on a unloaded server and then analyze the web server performance. I plan to then be able to demnstrate visually the impact that the scheduling and scaling stratergy has on performance.

    Updated Timeline

    Timeline