로드밸런서란? (Load Balancer)
로드밸런서란 서버에 가해지는 부하를 분산해주는 장치이다.
왜 로드밸런서가 필요할까?
서버를 운영하고 있을 때, 서버가 감당하지 못할 트래픽이 오게 되면 해결책은 두 가지가 있다.
서버 스펙을 늘리거나 (scale-up), 서버의 개수를 늘리는(scale-out) 방식으로 문제를 해결하게 되는데, 보통 비용이 더 싸고 안정성 때문에 scale out 방식으로 문제를 해결한다. (서버가 죽더라도 다른 서버가 대체할 수 있는 장점)
서버의 대수를 늘린다고 해서 문제가 단순히 해결되는 것이 아닌, 적당한 서버에 트래픽을 분산시켜줘야 하는데 이 역할을 하는 것이 바로 로드 밸런서이다. (On promise 환경에서는 이것을 L4/L7 스위치라고 칭한다)
AWS에서의 로드밸런서
AWS에서도 로드밸런서 기능을 제공해주고 있다.
로드 밸런서는 크게 자식이 서비스하는 대상을 정의하는 리스너(Listener), 부하 분산 대상을 정의하는 대상 그룹(Target Group)으로 이루어져 있다.
▪️ 리스너(Listener)
: 프로토콜 및 포트를 사용하여 연결 요청을 확인하는 프로세스. 로드밸런서에서 서비스하고자 하는 프로토콜과 포트를 지정하는 규칙(Rule)을 생성
▪️ 대상 그룹(Target Group)
: 하나 이상의 대상을 라우팅 하여, 부하 분산을 하는 데 사용함. 대상 그룹에 속한 대상은 지속적으로 Keepalive를 통해 Health Check 되고 있음
▪️ ALB (L7 로드 밸런싱)
: HTTP나 HTTPS와 같이 웹 애플리케이션에 대한 분산 처리를 제공하는 로드 밸런서
HTTP 헤더 정보나 URI와 같은 정보를 기반으로 프로토콜을 이해한 후 부하 분산할 수 있음
고정IP가 따로 할당되지 않아, 고정 IP가 필요하면 앞에 NLB를 연결해야함.
비용 - Application Load Balancer 시간(또는 부분 시간)당 0.0225 USD, LCU 시간(또는 부분 시간)당 0.008 USD
▪️NLB
: TCP나 UDP 프로토콜에 대한 포트 정보를 정의하여 네트워크 기반의 분산 처리를 제공하는 로드밸런서 (OSI 4 계층 레벨의 로드밸런서)
가장 처리 속도가 빠르며, 고정 IP나 탄력적 IP를 보유할 수 있는 것이 특징
(NLB의 IP 확인법 :2022.11.11 - [Ops/Cloud] - [AWS] NLB IP 확인 (aws console))
비용 - Network Load Balancer 시간(또는 부분 시간) 당 0.0225 USD, NLCU 시간(또는 부분 시간) 당 0.006 USD
▪️GLB
: OSI 3 계층에서 작동하는 로드 밸런서 (자세한 설명은 링크 참조 )
▪️CLB
: VPC의 예전 버전인 EC2-Classic에 대해서도 분산 처리를 제공할 수 있는 이전 세대의 로드 밸런서
=> NLB 혹은 ALB를 쓰는 것을 권장함
(EC2-Classic 네트워크는 2022년 8월 15일 이후 종료 예정)
ALB | NLB | CLB | |
Layer | Layer 7 Reverse Proxy | Layer 4 NAT | Layer 4 / 7 Reverse Proxy |
Protocols | HTTP, HTTPS | TCP | TCP, SSL, HTTP, HTTPS |
Platform | VPC | VPC | EC2-Classic, VPC |
Sticky sessions | Support | Not Support | Support |
Back-end server Encryption | Support | Not Support | Support |
Static IP | Not Support | Support | Not Support |
Elastic IP | Not Support | Support | Not Support |
Preserve Source IP | Not Support | Support | Not Support |
출처 - 베스핀 글로벌(Bespinglobal)
'DevOps > Cloud' 카테고리의 다른 글
[AWS] NLB IP 확인 (aws console) (0) | 2022.11.11 |
---|---|
[AWS] S3 Intelligent-Tiering이란 ? (S3 Tiering Tier) (0) | 2022.09.21 |
[AWS] EFS (Elastic File System) (0) | 2022.05.19 |
[AWS] EBS 생성 후 EC2에 mount 하기 (0) | 2022.05.12 |
[AWS] 스프링 부트를 외장 톰캣으로 EC2에 배포하기 (0) | 2021.08.23 |