처음 생성해 보는 NLB, ALB와 무엇이 다를까?
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 처음 생성해 보는 NLB, ALB와 무엇이 다른지 정리해 봤습니다.
ALB에 관한 이야기는 아래 블로그를 참고해 주세요.
NLB란?
NLB는 4 ~ 6계층에서 작동하며, TCP, UDP, TLS 트래픽 분산에 적합한 로드 밸런서입니다.
그렇기 때문에 네트워크 레벨에서의 로드 밸런싱이 필요한 경우 NLB를 사용하는 것이 유용합니다.
또한, 이전에는 NLB에서 보안 그룹을 사용할 수 없었으며, Network Load Balancer는 인스턴스 레벨에서 보안 그룹을 제어했지만, 2023년 8월 업데이트를 통해 NLB에도 보안 그룹을 설정할 수 있게 변경 되었습니다.
그 외, ALB와는 다르게 NLB에서의 액세스 로그는 TLS 요청에 대한 로그만 취득할 수 있습니다.
ALB와 무엇이 다를까?
ALB에서는 리스너 규칙을 통해 다양한 라우팅 및 트래픽 분배를 할 수 있었습니다.
포트 기반 라우팅, 경로 기반 라우팅 등 다양한 트래픽 분배가 가능하지만, NLB에서는 단순한 포트 기반의 로드 밸런싱만을 지원합니다.
실제로 리스너를 확인해 보면, ALB와는 다르게, 포트 이외에는 아무것도 설정할 수 없습니다.
그 외에 ALB의 경우에는 Cross Zone 즉 교차 영역 로드 밸런싱이 기본적으로 유효화되어 있지만, NLB의 경우 무효화된 상태입니다.
디폴트로 무효화 되어 있는 것을 확인할 수 있습니다.
그 외, NLB 특징에 대해서는 아래 공식 문서를 참고해 주세요.
NLB 생성
먼저 NLB의 보안 그룹입니다.
Apache를 인스톨 하고, 80번 포트를 통해 접속할 생각이기 때문에 80번 포트를 열어줍니다,
이어서 EC2 인스턴스의 보안 그룹입니다.
80번 포트로 NLB의 보안 그룹을 허용한 상태입니다.
이제 타겟 그룹을 생성합니다.
여기서 80번 포트를 설정한다고 해서 프로토콜을 HTTP로 설정을 하면 NLB 생성 시 해당 타겟 그룹을 불러올 수가 없습니다.
TCP, UDP, TLS와 같은 프로토콜을 선택합니다.
대상 인스턴스를 등록합니다.
여기서 헬스 체크의 경우 HTTP를 선택해도 상관없습니다.
※ 헬스 체크의 경우 TCP, HTTP HTTPS만 선택 가능합니다.
이어서 NLB를 생성하며, 타겟 그룹에 조금 전 생성한 타겟 그룹을 선택합니다.
조금 기다려 보면, 헬스 체크가 문제 없이 통과되는 것을 확인할 수 있습니다.
DNS 통해 문제 없이 웹 사이트에도 접속되는 것을 확인할 수 있습니다.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 [email protected]로 보내주시면 감사하겠습니다.