웹서버 이중화와 로드밸런서에 대해
- Network
- 2023. 8. 9.
웹서버 구성에서 앞에 로드밸런서를 두고 서버를 여러 대 운영하는 구조를 자주 볼 수 있습니다. 하나의 서버로는 트래픽을 원활하게 처리하지 못할 것으로 예상될 때 하는 구성입니다. 이중화와 로드밸런서 개념은 현장에서도 자주 보는 형태이기 때문에 간단하게 정리해 보겠습니다.
이중화와 로드밸런서
이중화(또는 다중화)는 한 대의 서버에 문제가 생길 경우 다른 서버에서 사용자 요청을 처리하는 방식입니다. 동일한 환경의 서버를 두 대 이상 구성하고 다운 타임 없이 서비스를 제공하기 위한 목적을 가지고 있습니다. 또 트래픽을 나눠서 처리함으로써 서버의 부하를 줄이는 효과도 있습니다.
로드밸런서는 서버 앞단에서 들어오는 트래픽을 여러 서버에 분산시키는 역할을 합니다. 사용자 요청 > 로드밸런서 > AP1 or AP2 식의 흐름입니다.
예시)
- AP1의 IP 주소 : 192.168.1.10
- AP2의 IP 주소 : 192.168.1.11
- 로드밸런서의 IP 주소 : 192.168.1.5
1. 사용자가 웹 브라우저를 통해 애플리케이션에 접속하려고 합니다. 사용자는 DNS 또는 직접 IP를 통해 로드밸런서(192.168.1.5)에 요청을 보냅니다.
2. 로드밸런서는 내부 알고리즘에 따라 요청을 AP1 또는 AP2 중 하나의 서버로 전달합니다. 예를 들어, 첫 번째 요청이 AP1으로 전달되었다면, 다음 요청은 AP2로 전달하는 식입니다(라운드 로빈 방식).
3. 선택된 서버는 요청을 처리한 후 응답을 로드밸런서로 다시 보냅니다.
4. 로드밸런서는 해당 응답을 원래의 사용자에게 전달합니다.
이 과정에서 만약 AP1이 장애가 발생한다면, 로드밸런서는 AP2에만 요청을 전달하게 되며, 이렇게 하여 서비스 중단 시간 없이 사용자 요청을 계속 처리할 수 있습니다.
로드밸런서 없이 요청
서버를 여러 대 운영한다고 해도 반드시 로드밸런서가 있어야 통신할 수 있는 건 아닙니다. 사용자가 특정 AP에만 요청을 날릴 수 있습니다. hosts 파일에 IP와 도메인을 수동으로 매핑하면 됩니다. 예를 들어, AP1로 특정하려면 http://192.168.1.10:[포트] 처럼 url을 요청하거나, DNS에 등록된 도메인을 hosts 파일에 192.168.1.10 example.com 처럼 매핑하는 식입니다. 다만 이 방식은 임시적인 조치의 성격이 강하기 때문에 실제 서비스 환경에선 로드밸런서를 통해 트래픽을 자동으로 분산하게 됩니다.
'Network' 카테고리의 다른 글
이더넷(Ethernet)이란? 유선 통신 표준 (0) | 2023.08.15 |
---|---|
네트워크 통신 방식 정리 (유니, 브로드, 멀티, 애니) (0) | 2023.08.10 |
TCP/IP 프로토콜 스택 계층별 정리 (0) | 2023.08.06 |
네트워크 감시 프로토콜 SNMP란? (0) | 2023.07.28 |
서버 팜(Server Farm)이란? 데이터 센터와 차이 (0) | 2023.07.18 |