Load Balancer란?
여러 대의 서버에게 들어오는 네트워크 트래픽을 분산시켜 주는 네트워크 장치이다. 트래픽을 여러 대의 서버에 균등하게 분배하여 각 서버가 과부하 상태에 빠지지 않도록 한다.
그중 ALB와 NLB의 차이점은?
ALB(Application Load Balancer)
1. OSI 7 계층에서 L7에서 동작한다.
2. 도메인 기반으로 로드밸런싱을 지원한다. 즉 도메인 이름을 통해 다른 서비스로 라우팅 할 수 있다.
3. HTTP/HTTPS 프로토콜에서 동작한다.
4. SSL인증서 발급 및 WAF(Web Application Firewall)를 통한 보안 기능 설정이 가능하다.
NLB(Network Load Balancer)
1. OSI 7계층에서 L4에서 동작한다.
2. IP기반으로 로드밸런싱을 지원한다. DNS Name과 IP주소 모두 사용이 가능하다.
3. TCP/IP 프로토콜에서 동작한다.
4. L4에서 동작하므로 SSL인증서 발급이 불가능하다.
사용 방법
로드밸런서를 생성하기 전에 대상그룹(target group)을 먼저 만들어야 한다. 대상그룹에 원하는 인스턴스를 넣어두면 이 인스턴스들로 로드밸런서에서 트래픽을 균등하게 분배해 준다.
web서버는 nginx(기본포트 80), was서버는 tomcat(기본포트 8080)을 쓴다는 전제 하에 이 과정을 진행하려 한다.
1. 대상그룹 생성
2. ALB생성(외부 -> web서버)
외부에서 HTTP 접속이 허용되어야 하니 보안그룹은 HTTP 80 포트에서 source를 0.0.0.0/0으로 설정하면 된다.
3. NLB생성(web서버 -> was서버)
NLB는 보안그룹이 없기 때문에 인스턴스 보안그룹에서 TCP 8080에 0.0.0.0/0(상황에따라 변경)을 설정해 주자
외부 로드밸런서를 통해 web서버에 접속하는 것과 내부 로드밸런서를 통해 web서버에서 was서버로 서로 연결되어 있는 것을 확인했다. 이를 통해 nginx서버의 proxy_pass를 이용해 web서버로 들어온 트래픽을 바로 was서버로 보내는 등 다양한 설정과 통신이 가능하다.
'AWS > Service' 카테고리의 다른 글
[AWS] Athena (0) | 2023.05.02 |
---|---|
[AWS] AWS Backup (0) | 2023.04.30 |
[AWS] SNS (0) | 2023.04.29 |
[AWS] WAF (0) | 2023.04.29 |
[AWS] SSL (0) | 2023.04.29 |