Third Biweekly Project Update
- Nelson Gomez Bohorquez
- Mar 21
- 3 min read
Updated: Apr 7
1. PLANNED ACTIVITIES:
Continuing AWS Environment Setup:
Deploy an AWS environment for tests with the AWS Application Load Balancer (ALB).
Analysis of the difference in the performance and improvements between CLB algorithm and ALB algorithm.
Load Testing Implementation: Continue JMeter load scenarios to simulate varying levels of concurrency with other load-balancing algorithms.
Research relevant metrics on Amazon CloudWatch and JMeter, which could be valuable to analyze load balancer performance.
2. PROGRESS UPDATE:
2.1. CONTINUING AWS ENVIRONMENT SETUP.
We have deployed the AWS environment to test the Application Load Balancer (ALB). Now, the performance tests are running by monitoring metrics like throughput, response times, and error rates to identify relevant results for the comparison between the Application load balancer approach against the existing Classic Load Balancer (CLB).
2.2. LOAD TESTING IMPLEMENTATION
Continue JMeter load scenarios to simulate varying levels of concurrency with other load-balancing algorithms.
As part of the evaluation of alternative load-balancing algorithms, a new testing scenario was identified to be deployed to assess the behaviour of the AWS Network Load Balancer (NLB), which operates at Layer 4 (TCP) [1].
TCP Backend Servers.
To simulate a realistic TCP-level load, two dedicated EC2 instances (t2.micro) with Ubuntu Server 24.04 were provisioned to act as TCP Backend servers. Each instance runs a TCP server implemented with a Python script, listening on port 7000 and configured to return a "pong" response when receiving a "ping" message from a client.
TCP load Traffic generator.
To generate the load of concurrent TCP connections to test the load balancing algorithm of the NLB and its registered TCP backend servers, we will use the current EC2 instance “JMeter load generator”, running Apache JMeter in CLI mode, each connection transmits a predefined payload ("ping\n"), and the server responds with a simple "pong\n" acknowledgment. Throughout the test execution, JMeter captures and logs key performance metrics including response time, throughput, and connection error rate, enabling an evaluation of the NLB’s performance under varying levels of TCP concurrency [2].
2.3. RESEARCH RELEVANT METRICS ON AMAZON CLOUDWATCH AND JMETER.
One of the most useful tools available on AWS Cloud is CloudWatch. This tool allows users to design customized dashboards and provides a centralized view of all cloud-deployed services.
Based on AWS documentation for Elastic Load Balancers and CloudWatch [3][4][5], we identified key metrics for each type of load balancer. These metrics help us compare their performance effectively:
RequestCount / NewFlowCount: Number of requests successfully processed by the load balancers.
ActiveConnectionCount / ActiveFlowCount: Total number of concurrent TCP connections between clients and the load balancer, as well as between the load balancer and its targets.
ProcessedBytes: Total bytes handled by the load balancer, including HTTP headers and payload.
TargetResponseTime / Latency: Time elapsed from when the load balancer sends a request to a target instance until the instance begins responding.
HTTPCode_Backend_2XX: Successful responses returned by the instances.
HTTPCode_Backend_3XX: Redirect responses sent by the instances.
HTTPCode_Backend_4XX: Client error responses returned by the instances.
HTTPCode_Backend_5XX: Server error responses returned by the instances.
BackendConnectionErrors / TargetConnectionErrorCount: Number of connections that failed to establish between the load balancer and the instances.
3. NEXT STEPS:
Continuing AWS Environment Setup:
Continuing the tests with the AWS Application Load Balancer (ALB).
Deploy an AWS environment for tests with the AWS Network Load Balancer (NLB).
Analysis of the difference in the performance and improvements between CLB algorithm, ALB algorithm, and NLB algorithm.
Working on project demo/presentation.
Working on project report.
References:
[1] Amazon Web Services, Elastic Load Balancing – Network Load Balancer, Mar. 2025. [Online]. Available: https://aws.amazon.com/elasticloadbalancing/network-load-balancer/
[2] Apache Software Foundation, Apache JMeter User Manual: TCP Sampler, Mar. 2025. [Online]. Available: https://jmeter.apache.org/usermanual/component_reference.html#TCP_Sampler
[3] Amazon Web Services, Classic Load Balancer CloudWatch Metrics, Mar. 2025. [Online]. Available: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-cloudwatch-metrics.html
[4] Amazon Web Services, Application Load Balancer CloudWatch Metrics, Mar. 2025. [Online]. Available: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html
[5] Amazon Web Services, Network Load Balancer CloudWatch Metrics, Mar. 2025. [Online]. Available: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html
Comments