High Availability and Scalability: ELB & ASG Flashcards
Horizontal Scalability
Increasing the number of instances, systems for your application. Horizontal scaling implies distributed systems.
Vertical Scalability
Increasing the size of the instance. common for non distributed systems such as database. RDS and Elasticache are services that can scale vertically.
High Availability
running application, system in at least 2 data centers. the goal of high availability is to survive data center loss.
Load Balancing
Load Balancers are Servers that forward traffic to multiple servers downstream.
Why use Load Balancers?
- Spread load across multiple downstream instances
- Expose a single point of access (DNS) to your application * Seamlessly handle failures of downstream instances
- Do regular health checks to your instances
- Provide SSL termination (HTTPS) for your websites
- Enforce stickiness with cookies
- High availability across zones
- Separate public traffic from private traffic
Types of Load Balancers?
Classic Load Balancer (v1 - old generation) – 2009 – CLB * HTTP, HTTPS,TCP,SSL(secureTCP)
* Application Load Balancer (v2 - new generation) – 2016 – ALB * HTTP, HTTPS,WebSocket
* Network Load Balancer (v2 - new generation) – 2017 – NLB * TCP,TLS(secureTCP),UDP
* Gateway Load Balancer – 2020 – GWLB
* Operates at layer 3 (Network layer) – IP Protocol
Application Load Balancer
- Application load balancers is Layer 7 (HTTP)
- Load balancing to multiple HTTP applications across machines (target groups)
- Load balancing to multiple applications on the same machine (ex: containers)
- Suppor t for HTTP/2 and WebSocket
- Support redirects (from HTTP to HTTPS for example)