ALB를 사용해 웹 서버를 갖는 EC2 ASG에 부하를 분산해보자!
로드밸런서이란?
로드밸런싱이란, 여러 대의 서버에 가해지는 부하를 균등하게 분산하는 방법을 말한다. 로드밸런서는 즉 부하 분산기이다. AWS에서는 3가지 유형의 로드밸런서를 제공하고 있다.
- 애플리케이션 로드 밸런서(ALB)
- L7 계층의 로드밸런서
- HTTP, HTTPS 지원
- 웹 애플리케이션의 부하를 분산한다.
- 네트워크 로드 밸런서(NLB)
- L4 계층의 로드밸런서
- TCP, UDP 지원
- 고정 IP 제공
- 웹 애플리케이션의 부하를 분산한다.
- 게이트웨이 로드 밸런서(GWLB)
- 보안 솔루션을 통한 모든 트래픽 분석 및 제어
- 서드 파티 가상 어플라이언스와의 통합 지원
로드밸런서 비용(서울 리전 기준)
-
애플리케이션 로드 밸런서(ALB)
- 시간당 $0.0225
- 시간당 사용된 로드 밸런서 용량 단위(LCU) $0.008 + a
- 프리티어로 제공되는 부분이 존재한다.
-
네트워크 로드 밸런서(NLB)
- 시간당 $0.0225
- 시간당 사용된 로드 밸런서 용량 단위(NLCU) $0.008
ALB 구축하기
- ALB 보안그룹 생성
- 아래의 인바운드 규칙을 추가한다.
- 유형: HTTPS / 소스 유형: Anywhere-IPv4 / 소스: 0.0.0.0/0
- 유형: HTTP / 소스 유형: Anywhere-IPv4 / 소스: 0.0.0.0/0
- 대상 그룹 생성
- ASG를 대상 그룹으로 선택할 예정이기 때문에 대상 유형은 인스턴스로 선택한다.
- 스프링부트 서버를 웹 서버로 사용할 예정이기 때문에 포트는 8080으로 선택한다.


- 체계는 인터넷 경계를 선택했다.
- ALB를 앞단(프레젠테이션 계층)에 배치에 요청을 받게 하기 위함이다.

- VPC를 설정한다.
- 적절한 VPC, 가용 영역 및 서브넷을 선택한다.
- 리스너 및 라우팅
- HTTP, 80 포트, 앞에서 설정한 대상그룹으로 리스너를 생성한다.

ALB - Auto Scaling Group 연결
- Auto Scaling Group에서 로드 밸런서 대상 그룹을 설정한다.

