-
1. Scalability & High Availability
-
2. Vertical Scalability - ์์ง ํ์ฅ์ฑ
-
3. Horizontal Scalability - ์ํ ํ์ฅ์ฑ
-
4. High Availability - ๊ณ ๊ฐ์ฉ์ฑ
-
5. High Availavility & Scalability For EC2
-
6. Elastic Load Balancing (ELB)
-
6-1. What is load balancing?
-
6-2. Why use a load balancer?
-
6-3. Why use an Elastic Load Balancer?
-
6-4. Health Checks
-
6-5. Types of load balancer on AWS
-
6-6. Load Balancer Security Groups

1. Scalability & High Availability
- Scalability(ํ์ฅ์ฑ) means that an application / system can handle greater loads by adapting.
- There are two kinds of scalability
- - Vertical Scalability
- - Horizontal Scalability (=elasticity) ํ๋ ฅ์ฑ, ์ํ ํ์ฅ์ฑ
- Scalability is linked but different to High Availability ( ํ์ฅ์ฑ != ๊ณ ๊ฐ์ฉ์ฑ)
2. Vertical Scalability - ์์ง ํ์ฅ์ฑ

- Vertically scalability means increasing the size of the instance
- For example, your application runs on a t2.micro
- Scaling that application vertically menas running it on a t2.large
- Vertical Scalability is very common for non-distributed systems, such as a database. (๋ถ์ฐ๋์ง ์์ ์์คํ )
- RDS, ElastiCache are services that can scaale vertically. (ํ์ ์ธ์คํด์ค์ ์ ํ์ ์ ๊ทธ๋ ์ด๋ ํด ์์ง์ ์ผ๋ก ํ์ฅํ ์ ์๋ ์์คํ )
- There's usually a limit to how much you can vertically scale (hardware limit)
3. Horizontal Scalability - ์ํ ํ์ฅ์ฑ
- Horizontal Scalability means increasing the number of instances / systems for your application
- Horizontal scaling implies distributed systems.
- This is very common for web applications / modern applications
- It's easy to horizontally scale thanks the cloud offerings such as Amazon EC2
4. High Availability - ๊ณ ๊ฐ์ฉ์ฑ

High Availability or HA eliminates single points of failure in IT systems to minimize the impact of a disruption in systems, databases and applications. Thus reducing the risk of damaging productivity and losing revenue. Redundancy and automatic failure detection are key features to achieve HA

- High Availability usually goest hand in hand with horizontal scaling
- High availability means running your application / system in at least 2 data centers (==Availability Zones)
- The goal of higgh availability is to survive a data center loss
- The high availability can be passive (for RDS Multi AZ for example)
- The high availability can be active (for horizontal scaling)\
5. High Availavility & Scalability For EC2
Vertical Scaling
- Increase instance size (= scale up / down)
- Form: t2.nano - 0.5G of RAM, 1 vCPU
- To: u-l 2tb1.metal - 12.3 TB of RAM, 558 vCPUs
Horizontal Scaling
- Increase number of instanes (= scale out / in)
- - Auto Scaling Group
- - Load Balancer
High Availability
- Run instances for the same application across multi AZ
- - Auto Scaling Group multi AZ
- Load Balancer multi AZ
6. Elastic Load Balancing (ELB)

6-1. What is load balancing?
- Load Balances are servers that forward traffic to multiple servers (e.g., EC2 instances) downstream
- The more users you have, the more the load is going to be balanced across EC2 Instance
- But your users do not know which Instances are connected to, they just know that they have to connect Elastic Load Balancer which gives you one end point of connectivity only.
6-2. Why use a load balancer?
- 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
- Seperate public traffic from private traffic
6-3. Why use an Elastic Load Balancer?
- An Elastic Load Balancer is a managed load balancer
- - AWS guarantees that it will be working
- - AWS takes care of upgrades, maintenance, high availability
- - AWS provides only a few configuration knobs
- It costs less to setup your own load balancer but it will be a lot more effort on your end
- It is integrated with many AWS offerings / services
- - EC2, EC2 Auto Scaling Groups, Amazon ECS
- - AWS Certificate Manager (ACM), CloudWatch
- - Route 53, AWS WAF, AWS Global Accelerator
6-4. Health Checks
- Health Checks are crucial for Load Balancers
- They enable the load balancer to know if instances if forwards traffic to are available to reply to requests
- The health check is done on a port and a route (/health is common)
- If the response is not 200 (OK), then the instance is unhealthy

6-5. Types of load balancer on AWS
AWS has 4 kinds of managed Load Balancers


Classic Load Balancer (v1 - old generation) - 2009 - CLB
- - HTTP, HTTPS, TCP, SSL (secure TCP)
Application Load Balancer (v2 - new generation) - 2016 - ALB
- - HTTP, HTTPS, WebSocket
Network Load Balancer (v2 - new generation) - 2017 - NLB
- TCP, TLS (secure TCP), UDP
Gateway Load Balancer - 2020 - GWLB
- Operates at layer 3 (Network layer) - IP Protocol
Overall, it is recommended to use the newer generation load balancers as they provide more features.
Some load balancers can be setup as internal (private) or external (public) ELBs.
6-6. Load Balancer Security Groups

'AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ

1. Scalability & High Availability
- Scalability(ํ์ฅ์ฑ) means that an application / system can handle greater loads by adapting.
- There are two kinds of scalability
- - Vertical Scalability
- - Horizontal Scalability (=elasticity) ํ๋ ฅ์ฑ, ์ํ ํ์ฅ์ฑ
- Scalability is linked but different to High Availability ( ํ์ฅ์ฑ != ๊ณ ๊ฐ์ฉ์ฑ)
2. Vertical Scalability - ์์ง ํ์ฅ์ฑ

- Vertically scalability means increasing the size of the instance
- For example, your application runs on a t2.micro
- Scaling that application vertically menas running it on a t2.large
- Vertical Scalability is very common for non-distributed systems, such as a database. (๋ถ์ฐ๋์ง ์์ ์์คํ )
- RDS, ElastiCache are services that can scaale vertically. (ํ์ ์ธ์คํด์ค์ ์ ํ์ ์ ๊ทธ๋ ์ด๋ ํด ์์ง์ ์ผ๋ก ํ์ฅํ ์ ์๋ ์์คํ )
- There's usually a limit to how much you can vertically scale (hardware limit)
3. Horizontal Scalability - ์ํ ํ์ฅ์ฑ
- Horizontal Scalability means increasing the number of instances / systems for your application
- Horizontal scaling implies distributed systems.
- This is very common for web applications / modern applications
- It's easy to horizontally scale thanks the cloud offerings such as Amazon EC2
4. High Availability - ๊ณ ๊ฐ์ฉ์ฑ

High Availability or HA eliminates single points of failure in IT systems to minimize the impact of a disruption in systems, databases and applications. Thus reducing the risk of damaging productivity and losing revenue. Redundancy and automatic failure detection are key features to achieve HA

- High Availability usually goest hand in hand with horizontal scaling
- High availability means running your application / system in at least 2 data centers (==Availability Zones)
- The goal of higgh availability is to survive a data center loss
- The high availability can be passive (for RDS Multi AZ for example)
- The high availability can be active (for horizontal scaling)\
5. High Availavility & Scalability For EC2
Vertical Scaling
- Increase instance size (= scale up / down)
- Form: t2.nano - 0.5G of RAM, 1 vCPU
- To: u-l 2tb1.metal - 12.3 TB of RAM, 558 vCPUs
Horizontal Scaling
- Increase number of instanes (= scale out / in)
- - Auto Scaling Group
- - Load Balancer
High Availability
- Run instances for the same application across multi AZ
- - Auto Scaling Group multi AZ
- Load Balancer multi AZ
6. Elastic Load Balancing (ELB)

6-1. What is load balancing?
- Load Balances are servers that forward traffic to multiple servers (e.g., EC2 instances) downstream
- The more users you have, the more the load is going to be balanced across EC2 Instance
- But your users do not know which Instances are connected to, they just know that they have to connect Elastic Load Balancer which gives you one end point of connectivity only.
6-2. Why use a load balancer?
- 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
- Seperate public traffic from private traffic
6-3. Why use an Elastic Load Balancer?
- An Elastic Load Balancer is a managed load balancer
- - AWS guarantees that it will be working
- - AWS takes care of upgrades, maintenance, high availability
- - AWS provides only a few configuration knobs
- It costs less to setup your own load balancer but it will be a lot more effort on your end
- It is integrated with many AWS offerings / services
- - EC2, EC2 Auto Scaling Groups, Amazon ECS
- - AWS Certificate Manager (ACM), CloudWatch
- - Route 53, AWS WAF, AWS Global Accelerator
6-4. Health Checks
- Health Checks are crucial for Load Balancers
- They enable the load balancer to know if instances if forwards traffic to are available to reply to requests
- The health check is done on a port and a route (/health is common)
- If the response is not 200 (OK), then the instance is unhealthy

6-5. Types of load balancer on AWS
AWS has 4 kinds of managed Load Balancers


Classic Load Balancer (v1 - old generation) - 2009 - CLB
- - HTTP, HTTPS, TCP, SSL (secure TCP)
Application Load Balancer (v2 - new generation) - 2016 - ALB
- - HTTP, HTTPS, WebSocket
Network Load Balancer (v2 - new generation) - 2017 - NLB
- TCP, TLS (secure TCP), UDP
Gateway Load Balancer - 2020 - GWLB
- Operates at layer 3 (Network layer) - IP Protocol
Overall, it is recommended to use the newer generation load balancers as they provide more features.
Some load balancers can be setup as internal (private) or external (public) ELBs.
6-6. Load Balancer Security Groups
