본문 바로가기
aws

ALB vs NLB

by hyohyohyo 2023. 7. 3.
728x90

개요

AWS의 ELB(Elastic Load Balancer)를 공부하다 보니 ALB(Application Load Balancer)와 NLB(Network Load Balancer), GLB(Gateway Load Balancer), CLB(Classic Load Balancer)를 elb가 지원한다고 하는 것을 공식문서에서 확인 가능했다.

그 중 나는 ALB와 NLB를 이번에 사용하기로 결정하였고, 이 것에 대해 조사하게 되었다.

왜 사용하고자 했는가?

일단 이번 소마에서 개발할 프로젝트는 백엔드로 Spring Boot를 이용하고자 한다. 그렇기에 앞에 apache나 nginx 같은 웹 서버(WS)를 사용해야 했고, 실제 서비스가 돌아갈 WAS 서버도 돌아가야 했다.

일단 이런 사전배경이 있었는데, 그래서 기업들에서는 어떤 아키텍처를 선택했나 찾아보았었다...

그러다가 보니 WS에도 elb를 걸고, WAS에도 elb를 거는 ㅇㅅㅇ... 구조를 보았다. ( 사실 당연한 거지... )

 

좀 더 자세히 보니, WS에서는 ALB를 사용하고, WAS는 NLB를 사용한다고 하였다.

그래서 이 둘에 대해 조금 자세히 공부해 보고 싶다는 생각이 들었다.

 

ELB란?

일단 elb에 대해 조금 자세히 알아보자자자자

로드 밸런서로서 부하를 적절하게 분배를 해주는 장치이다.

기능으로는

  • 트래픽 분산
  • 자동 확장
  • 인스턴스 상태 파악 후 오류 있는 경우 배제
  • 사용자 세션을 특정 인스턴스에 고정
  • SSL 암호화 지원
  • SSL 처리에 따른 부하를 ELB가 수용
  • 사용 시간과 통과한 트래픽에 따라 종량제로 과금

이정도가 있다고 한다.

 

ALB란?

  • L7 영역의 로드 밸런서
  • 통신
    • 클라이언트 IP와 서버 사이에 들어오고 나가는 모든 트래픽이 로드 밸런서와 통신
  • 보안
    • security group을 통해 따로 보안이 가능
  • IP
    • 변동 IP이다.
      • 그렇기에 클라이언트에서 액세스시 ELB의 DNS name을 이용해 접근해야한다
        • 즉 네임 서버 or route53에서 CNAME을 사용해야 도메인 네임 연동이 가능
          • 왜 변동이지? 추후에 찾아봐야겠다
  • 로드밸런서에 대한 경로 기반 라우팅이 지원된다
  • ip + port + 패킷 내용을 보고 스위칭
  • SSL 적용 가능

NLB란?

  • L4 영역의 로드밸런서
  • 통신
    • 클라이언트 IP와 서버 사이에서 서버로 들어오는 트래픽은 로드밸런서와 통신
    • 서버에서 클라이언트로 나가는 트래픽은 로드밸런서를 통하지 않고 클라이언트 IP와 직접 통신
  • 보안
    • 별도 security 그룹이 없다
      • 서버에 적용된 보안 그룹을 통해 보안이 가능
  • IP
    • 고정 ip 지원
  • 속도
    • 네트워크 계층만 하니 ALB에 비하면 빠르다
    • 라우팅이 단순하고, 트래픽이 극도로 많으면 ALB보단 NLB로
  • IP + PORT로 스위칭

비교

꽤나 많은 부분이 다르긴 하였다.

당연하게도 한쪽은 애플리케이션 영역이고 하나는 네트워크 영역이니 말이다.

 

결론

이번에 우리 프로젝트에서는 위에서 말했다 싶이 두개다 사용을 할 예정이다.

일단 ALB에 SSL 인증을 추가적으로 걸 생각도 있다. -> https를 위해

ALB로 nginx에 로드 밸런싱을 처리하고, nlb를 통해 실제 앱 서버에 분산을 시켜줄려고 한다.

실제로 구현을 하다보면 많은 이슈가 생길듯 하지만.... 열심히 해봐야겠다 ㅎㅎ...

 

 

 

 

 

 

 

 

 

 

 

참고자료

https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/userguide/what-is-load-balancing.html

 

Elastic Load Balancing이란 무엇인가요? - Elastic Load Balancing

Elastic Load Balancing이란 무엇인가요? Elastic Load Balancing은 둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산합니다. 등록된 대상의 상

docs.aws.amazon.com

https://velog.io/@combi_jihoon/AWS-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%A0%95%EB%A6%AC-Elastic-Load-BalancerELB

 

AWS 서비스 정리 | Elastic Load Balancer(ELB)

Load Balancer에 대해 알아보기 전에, Load Balancing이란 무엇인지 확인해 보도록 한다.사용자 수가 늘어나게 되면 서버에 많은 부하(load)가 걸려 혼자서 많은 트래픽을 감당할 수 없게 된다.이 때, 트래

velog.io

https://skstp35.tistory.com/321

 

AWS ALB와 Network NLB 차이점

AWS의 LB(Load Banlancer) 중 ALB(Application Load Balancer)와 NLB(Network Load Balancer)의 차이점에 정리해보자. AWS ALB, NLB 비교 ALB와 NLB의 차이점은 다음과 같다. ALB ALB는 L7단의 로드 밸런서를 지원한다. ALB는 HTTP/H

skstp35.tistory.com

 

'aws' 카테고리의 다른 글

EBS  (0) 2023.06.22
IAM 정책 시뮬레이터  (0) 2023.06.21

댓글