땡구리
땡굴 탱굴
땡구리
전체 방문자
오늘
어제
  • 분류 전체보기 (42)
    • AWS (5)
    • 자격증 후기 (8)
    • 백준 풀이 (17)
    • Vue2 (1)
    • Python (0)
    • Elasticsearch (0)
    • FastAPI (0)
    • MySQL (0)
    • 짜잘정보 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개선 가능

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땡구리

땡굴 탱굴

AWS

ELB 와 ASG (작성중)

2023. 1. 19. 00:13

ELB(Elastic Load Balancer) 와 ASG(Auto Scaling Group) 각각 Load 를 분산하고 Scale In/Out 을 하기 위한 AWS Service 다.

 

ELB

LB(Load Balacer) 는 Traffic 을 다른 Server 들로 Forward 하는 Server 다.

ELB 의 TG(Target Group) 이 '다른 Server 들' 에 해당한다. 

TG 는 EC2, ECS, IP(private), Lambda, ALB 가 될 수 있다.

TG 에는 Health Check(HC) 기능이 있어서 특정 port 와 path 에 대한 HTTP(S) 응답을 기반으로 해당 EC2에 Traffic 을 줄지 말지 결정한다.

 

AWS 에서 제공하는 LB 인 ELB 는 4가지 종류가 있다.

이름 출시년도 지원 프로토콜 Cross-Zone LB
CLB(Classic Load Balacer) 2009 HTTP, HTTPS, TCP, SSL disabled / no charge
ALB(Application Load Balacer) 2016 HTTP, HTTPS, WebSocket enabled / no charge
NLB(Network Load Balacer) 2017 TCP, TLS, UDP disabled / charge
GLB(Gateway Load Balacer) 2020 IP disabled / charge

 

CLB

Deprecated 되어 더 이상 제공하지 않는다.

 

ALB

ALB 는 L7 의 LB 이며 DNS 를 하나 제공한다. 

ALB 의 Port Listner 에 Rule 을 추가하여 Path, Query String, Header, Hostname 을 기반으로 Traffic 을 Forward 할 수 있다.

TG(Target Group) 으로는 EC2, ECS, Lambda, Private IP 가 가능하다.

Application 은 Client 가 사용하는 IP/Port/Protocol 를 직접 볼 수 없고 X-Forwarded-For/Port/Proto 를 통해 보게된다. 

SG 으로 보안을 관리한다.

Cookies 를 활용하여 Sticky Session(Session Affinity) 을 지원한다. 

사용되는 Cookies 로는 App-based, Duration-based 가 있으며 App-based 는 Custom 과 Application 으로 나뉜다.

 

NLB

NLB 는 L4 의 LB 이며 DNS 를 하나 제공하고 AZ 마다 Static IP 를 하나씩 제공한다.

EIP 를 지원한다.

TG 으로는 EC2, Private IP, ALB 가 가능하다.

HC(Health Check) 로 TCP, HTTP, HTTPS 를 사용 가능하다.

SG 를 사용하지 않는다.

 

GLB

Transparent Network Gateway 와 Load Balancer 기능을 제공한다.

Single Entry Single Exit

GENEVE, 6081 이면 GLB 이다.

TG 으로는 EC2, Private IP 가 가능하다.

주로 3rd Party 에게 모든 트래픽을 넘기고 3rd Pary 에서 Filterling 한 Traffic 만 Application 에 전달할 때 쓰인다.

 

 

SSL/TLS

In-flight Encryption, CA 에 의해 발행, SNI, Connection Draining

 

ASG

ASG 는 Scaling Policy 를 정하고 거기에 맞게 EC2 를 Scale In/Out 하는 서비스이다.

ASG 를 사용하려면 먼저 ASG 에서 생성할 EC2 들의 Template 인 Launch Template 을 작성해야한다.

 

ASG 에도 EC2 에 HC 를 하는 기능이 기본적으로 내장되어 있어서 EC2 Status 가 정상인지를 확인한다.

ELB 와 연계하여 ELB 의 HC 를 기반으로 EC2 를 종료하고 대체할 수 있다. 

 

Scaling Policy 는 다음과 같다.

  • Dynamic Scaling
    • Target Tracking Scaling
      • Network 입출력, CPU 사용량, LB 의 요청 수 등으로 Policy 를 만든다.
    • Simple Scaling
      • CloudWatch Alarm 을 기준으로 Policy 를 만든다.
    • Step Scaling
      • CloudWatch Alarm 을 기준으로 세분화된 기준을 가지고 Policy 를 만든다.
      • 예를 들면 ASG CPU Utilization 이 70% 이상일 때 Alarm 이 생성되는 경우에 해당 알람이 발생하는 경우 70~80 구간, 80~90구간, 90~100 구간에서 각각 어떤 Scaling 을 할 것인지 설정할 수 있다.
    • Scheduled Action
      • 시간대별로 실행할 Scaling 을 설정할 수 있다. 
  • Predictive Scaling
    • 머신러닝을 사용하여 과거의 부하를 분석하고 Scaling 을 수행해주는 Policy 이다.

 

Scaling Cooldown 이 존재하여  어느 한 Policy 가 다시 적용된 후 CloudWatch Metric 이 안정되기위한 Delay 를 줄 수 있다.

 

 

저작자표시 (새창열림)

'AWS' 카테고리의 다른 글

RDS 와 Elasticache  (0) 2023.01.20
EBS 와 EFS  (0) 2023.01.14
EC2 기초  (0) 2023.01.12
Cloud 기본과 IAM  (0) 2023.01.11
    'AWS' 카테고리의 다른 글
    • RDS 와 Elasticache
    • EBS 와 EFS
    • EC2 기초
    • Cloud 기본과 IAM
    땡구리
    땡구리
    잊는게 무서운 겁쟁이

    티스토리툴바