클라이언트 요청에 대해 MSA 에서 각 도메인별 서버로 연결해주는 역할을 LoadBalancer
가 하고있다.
그러면 LoadBalancer
는 어떻게 클라이언트의 요청을 각 서버로 연결해주는걸까?
(클라이언트의 요청으로 들어오는 IP를 내부 사설 IP로 변경해주는 작업을 NAT 라고 한다. NAT 에 대해서는 다른 글에 다시한번 다뤄본다.)
다수의 사용자가 몰렸을 때 LB 는 여러대의 WAS 서버 중에 부하, 속도저하, 처리량, 로드정도등에 따라 적절한 트래픽을 분산해주는 역할을 한다.
Application Load Balancer
이름에서도 알 수 있듯이 L7단에서 부하를 분산한다.Network Load Balancer
이름에서 알 수 있듯이 L4단에서 부하를 분산한다.일반적으로 계층이 높아질수록 속도가 빠르고 가격이 비싸다. 즉 ALB 보다는 L4레이어까지만 확인하는 NLB 가 속도는 더 빠르다.
그렇다고 항상 NLB 가 더 좋다고 말할 수 없다. 그만큼 설정이 복잡하고 관리가 어렵다.
ALB 로도 초당 3만의 요청을 처리할 수 있다고 하니 간단한 서비스에서는 ALB로도 충분하다.