목차/09. ConnectControl — 서버 부하 분산

09ConnectControl — 서버 부하 분산ConnectControl — 서버 부하 분산

ConnectControl게이트웨이 뒤에 있는 여러 서버로 가는 트래픽을 분산 하는 Check Point 솔루션입니다. 게이트웨이가 이미 트래픽을 보고 있으니 추가 메모리·CPU 부담 없이 부하 분산을 얹는 셈입니다.

동작 원리 — Logical Server

핵심 개념은 Logical Server 입니다. 여러 물리 서버를 하나의 가상 IP(Virtual IP)로 대표 하는 객체로, 클라이언트는 이 하나의 IP로 접속하고 ConnectControl이 뒤의 적절한 물리 서버로 요청을 넘깁 니다.

ConnectControl 패킷 흐름
ConnectControl 패킷 흐름

흐름은 이렇습니다. 클라이언트가 Logical Server의 IP로 연결을 시작 → 게이트웨이에 도착해 Logical Server 규칙에 매칭 → 게이트웨이가 Logical Server 그룹의 내부 IP로 요청을 전달 → ConnectControl이 부하 분산 방식에 따라 그룹 중 가장 적합한 서버를 선택 합니다.

구성 절차의 큰 줄기

Object Explorer(Ctrl+E)에서 시작합니다. 부하 분산할 서버마다 Host 객체를 만들고, 이들을 묶는 Network Group 객체(권장 29개 이하)를 만든 뒤, Logical Server 객체를 정의 하는 것이 뼈대입니다. Logical Server에는 공인 Virtual IP를 주고, 서버 타입·서버 그룹·persistency·부하 분산 방식 을 정합니다. 그다음 Access Control 정책에 Logical Server로 가는 부하 분산 규칙 을 추가하고, 전역 설정(ConnectControl)을 잡은 뒤 정책을 설치합니다.

서버 타입 — HTTP vs Other

서버 타입에 따라 ConnectControl이 클라이언트 연결을 다루는 방식이 다릅니다. HTTP 타입은 HTTP 리디렉션을 써 모든 HTTP 세션을 한 서버로 보냅니다(많은 웹 애플리케이션이 요구하는 동작, HTTP 프로토콜 전용, 오프사이트 서버 지원). Other 타입은 NAT으로 트래픽을 그룹 서버에 보내 며, 모든 프로토콜을 지원하고 가장 효과적으로 부하를 분산합니다(서버가 게이트웨이로 NAT되어야 함).

Persistency와 부하 분산 방식

Persistency(연결 고정)클라이언트를 처음 고른 서버에 계속 묶 습니다. Persistency by server 는 여러 웹 서버 환경의 HTTP 폼 처럼 한 서버로 모든 요청을 보내야 할 때(폼 작성 중 데이터 손실 방지), Persistency by service 는 한 그룹에서 여러 서비스를 분산 할 때(서버마다 HTTP·FTP를 돌리는 환경에서 서비스별로 올바른 서버로) 유용합니다.

부하 분산 방식 은 세 가지입니다. Random 은 무작위 배정(RAM·CPU가 비슷하고 같은 세그먼트일 때 좋음), Server load 는 새 연결을 가장 잘 감당할 서버를 선택, Round Robin 은 순서대로 다음 서버 에 보냅니다(Round Trip·Domain 방식은 미지원).

전역 설정에서는 서버 가용성 점검 주기·재시도 횟수Persistency by server의 타임아웃 을 조정합니다. HTTP 리디렉션을 쓰는 경우, 서버 그룹이 클라이언트와 직접 통신하도록 허용하는 규칙 도 추가해야 합니다.