Load Balancer
- traffic을 받아 여러 대의 서버에 분산시키는 기능을 하는 하드웨어 or 소프트웨어
- L4와 L7이 통용됨. L4부터 port를 다룰 수 있기 때문
- 주요 기능
- Network Address Translation: 사설 IP를 공인 IP로 바꿈
- Tunneling: 데이터를 캡슐화하여 연결되어진 노드만 그 데이터의 캡슐을 풀어서 볼 수 있게 해줌
- Dynamic Source Routing protocol(DSR): 요청에 대한 응답을 할 때 로드밸런서가 아닌 클라이언트의 IP로 응답
L4 Load Balancer
- Transport 계층을 사용
- IP, Port를 기준으로 스케줄링 알고리즘을 통해 부하를 분산
- 요청하는 서비스의 종류와 상관 없이 최적의 서버로 요청을 전송하고 결과를 return
- 주로 Round Robin 방식
L7 Load Balancer
- Application 계층을 사용
- IP, Port 외에도 URI, Payload, Http reader, Cookie 등의 내용을 기준으로 부하 분산
- Contents 기반 switching
- 가볍고 작은 단위로 여러 개의 서비스를 운영하고 요청을 각각의 서버에 분산할 수 있음
- 데이터를 분석해서 처리가 가능, 악의적이나 비정상 컨텐츠 감지해 보안 지점을 구축 가능 but 자원 소모 큼
Load Balalcing Failover
- 장애를 위한 이중화 구성
- 평소에는 active LB로, 장애 발생시에는 standby상태의 LB로 연결
성능 관련 용어
- 초당 연결 수(Connections per second)
- 하나의 TCP 연결은 클라이언트 - 서버 간 3-way handshake 동작.
- TCP 세션을 열고 닫는 작업은 L4 레벨의 기본 세션 관리 핵심
- L4의 포워딩 엔진 부분에 많은 작업량을 요하는 작업으로, L4 네트워크 기계나 커널의 성능에 따라 좌우됨
- 동시 연결수 (Concurrent connections)
- TCP 세션을 유지할 수 있는 수치. 초당 연결수와 다른 점은 일시적 동작이 아닌 연결 유지.
- 처리 용량 (Throughput)
- L4 스위치에 병목 현상이 걸리지 않도록 방화벽보다 높은 성능으로 선정되어야 함
AWS의 부하 분산
- ALB(Application Load Balancer)
- L7 부하 분산
- listen: HTTP, HTTPS, gRPC / target: IP, Instance, Lambda
- default
- NLB(Network Load Balancer)
- L4 부하 분산
- listen: TCP, UDP, TLS / target: IP, Instance
- 탁월한 성능
- GLB(Gateway Load Balancer)
- L3, L4 부하 분산
- listen: IP / target: IP, instance
- CLB(Classic Load Balancer)
- L4, L7 부하 분산
- listen: TCP, TLS, HTTP, HTTPS
- 현재는 거의 사용하지 않음
'Cloud Architecture' 카테고리의 다른 글
Control Tower Troubleshooting (0) | 2022.11.11 |
---|---|
Service Mesh (0) | 2022.06.17 |
CAP 이론, ACID, Eventual Consistency VS Strong Consistency (0) | 2022.06.16 |
Proxy / Forward Proxy / Reverse Proxy (0) | 2022.06.15 |
TCP, UDP, TCP Window Size (0) | 2022.06.15 |