Skip to main content

Elastic Load Balancing (ELB)

Rationale#

Elastic Load Balancing is the AWS service we use for exposing applications to Internet. It provides load balancers using a IaaS model.

The main reasons why we chose it over other alternatives are:

  1. It seamlessly integrates with VPC, EC2, EKS, etc. Allowing to easily serve applications hosted in the cloud.
  2. It complies with several certifications from ISO and CSA. Many of these certifications are focused on granting that the entity follows best practices regarding secure cloud-based environments and information security.
  3. When combined with Kubernetes, it allows to balance application load by distributing requests to multiple replicas using a horizontal scaling approach.
  4. It has its own Kubernetes module for automatically provisioning application load balancers when Kubernetes applications are deployed. This is specially useful for serving ephemeral environments.
  5. It supports VPC security groups, allowing to easily set networking inbound and outbound rules for the load balancers. Such feature is essential for avoiding CDN bypassing.
  6. A single load balancer supports multiple Availability zones, granting networking redundancy, which is essential for keeping it always available to the Internet.
  7. It supports health checks, allowing to constantly monitor all the endpoints associated to a load balancer. Application requests are only sent to healthy endpoints.
  8. Application load balancers support rules, allowing to create complex routing scenarios when it comes to request forwarding.
  9. It supports application load balancers, network load balancers, and gateway load balancers, providing infrastructure for a wide range of solutions.
  10. Load balancers can be monitored via CloudWatch.

Alternatives#

  1. GCP Cloud Load Balancing: Pending to review.
  2. Azure Load Balancer: Pending to review.

Usage#

We use ELB for:

  1. Serving our ASM production environment.
  2. Serving our ASM ephemeral environments.

We do not use ELB for:

Serving our website and documentation, as they are static sites served by S3, which directly provides endpoints without having to manage load balancers.

Guidelines#

  1. You can access the ELB console after authenticating on AWS.
  2. Any changes to ELB's infrastructure must be done via Merge Requests by modyfing its modules.