로드밸런서는 부하를 적절하게 분배해주는 장치임. AWS 에서는 ELB라는 이름으로 로드밸런서를 제공함. 이 시스템은 자동으로 로드 밸런싱으로 제공하며 시스템이 서버가 죽지 않도록 알아서 관리함.
트래픽 분산, 자동 확장, 인스턴스의 상태를 자동 감지해서 오류가 있는 시스템 배제, 사용자 세션을 특정 인스턴스에 고정, SSL 암호화 지원, SSL의 경유지로 ELB를 사용하는 경우에 SSL 처리에 따른 부하를 ELB가 수용하게됨. 등등..
사용자는 로드 밸런서 포트를 통해 웹에 접속. 사용자가 접속하면 로드 밸런서는 적당한 웹서버에 분배해 주는데 이때 로드 밸런서는 Instance Port를 통해 웹서버와 통신함. 그래서 80:3000 이런식으로 통신할 수 있게됨.
오토스케일링 : 트래픽을 몰릴때 인스턴스(컴퓨터) 수를 자동으로 늘림으로서 서버 사이즈를 조절해 서비스가 원할히 유지되게 하며, 또한 트래픽이 적을 경우 인스턴스를 감소시켜 비용 낭비를 막아주는 서비스.
ELB: 트래픽을 오토 스케일링을 통해 늘린 수만개의 인스턴스들에게 부하(트래픽)을 분산하는 서비스.
즉 이 둘은 서로 유기적으로 연동되어 ec2 등의 서비스를 효과적으로 이용할 수 있게함.
프로토콜과 포트를 기반으로 요청을 받아 검사하고 이를 적절한 타켓으로 전달하는 기능을 수행함. 모든 로드밸런서는 최소 1개 이상의 리스너를 필요로 하며, 최대 10개까지 설정할 수 있음.
리스너 룰은 리스너와 타겟그룹 사이의 트래픽 분배를 위한 라우팅 규칙에 해당함. 룰은 우선순위, 액션, 조건 등의 정보를 담고 있으며, 조건이 만족되었을 때, 지정된 액션을 수행하는 방식으로 작동.
리스터 룰에는 path, host, http header, source IP, query parameter 등의 다양한 조건 제공.
리스너가 전달한 요청을 처리하기 위한 부하분산 대상들의 모임. 즉 ELB가 분산을 할 때 어디로 분산할 것이냐를 모든 그룹들을 말함.
그렇기에 대상 그룹에 등록된 EC2의 각종 정보가 적혀있고, 이 EC2가 전달받은 요청을 처리할 수 있는지 체크하는 헬스 체크
기능, 요청 처리가 가능한 ec2를 확인할 수 있는 모니터링 기능도 있음.
OSI 7계층에서 Application Layer를 다루는 로드밸런서임.
사용자와 직접 접하는 계층으로서 브라우저를 통해 특정 사이트들에 들어갈 수 있도록 사용하는 프로토콜 역시 Application Layer에 속한다. (Http/https)
OSI 7계층에서 네 번쨰 계층에 해당하는 Transport Layer를 다루는 로드밸런서 = TCP와 UDP를 사용하는 요청을 받아들여 부하분산을 실시함.
단, HTTP가 아닌 하위 Layer인 TCP Layer에서 처리하므로 HTTP 헤더를 해석하지 못한다.
로드 밸런서가 연결 요청을 받으면 기본 규칙의 대상 그룹에서 대상을 선택하고 리스너 구성에 지정된 포트에서 선택한 대상에 대한 TCP 연결을 열려고 시도한다.
고성능을 요구하는 환경에서의 부하분산에 적합한 솔루션임. 낮은 레이턴시로 초당 수백만 건의 요청을 처리할 수 있으며 갑작스러운 트래픽 증대 및 변화에도 최적화 되어있음.
ALB와 비교하여 NLB의 가장 큰 특징은 EIP로 공인 IP를 고정할 수 있다는 점임.
도움이 많이 되었습니다!😊