Spring BootAWSLoad BalancingDocker

Load Balancing in Cloud

By Gabriel Cepeda
Picture of the author
Published on
Duration
1 Week
Role
DevOps
+5

Description

HAProxy was carefully configured using the Round Robin algorithm for load distribution and fault tolerance mechanisms to handle potential unavailability gracefully. This phase laid the groundwork for optimizing resource utilization and enhancing the overall responsiveness of the application, while adhering to the required architecture.

Also, implemented secure HTTPS navigation from the client to the load balancer instance. Subsequently, the project transitioned to an AWS environment, leveraging the cloud platform's scalability and ease of provisioning virtual machines. Three additional virtual machine instances were created, each hosting the web application Mockup API. This strategic use of multiple instances aligned with load balancing objectives, allowing the distribution of incoming requests among these instances. Additionally, a Redis cluster in AWS ElastiCache was created to store sessions centrally, enabling load balancing while maintaining user sessions independently of the instances.

Additionally, security was managed by configuring an AWS security group for the load balancer instance, allowing access from any IP to the application ports (80 for HTTP and 443 for HTTPS). The other instances and the Redis cluster operated within a private subnet, ensuring that only services within the same subnet had access, as a result excluding external access to these services from outside the AWS private subnet.


Technologies / Tools

  • Spring Boot
  • MySQL
  • AWS
  • HAProxy
  • Redis
  • Network Security
  • SSL Certificates
  • Docker

Demo

This is a video summary about the functionality: