반응형
개요
프록시 서버를 사용하지 않고도 병렬 서버에서 부하 분산(로드 밸런싱)을 구현하는 방법이 있다.
이러한 방법은 클라이언트가 직접 여러 서버와 통신하도록 설계하여 프록시 서버의 부하를 줄이고, 중간 단계를 없애는 데 초점을 둔다.
DNS 기반 부하 분산
DNS 로드 밸런싱은 하나의 도메인 이름에 여러 개의 IP 주소를 매핑하여 클라이언트가 요청할 때마다 서로 다른 서버로 트래픽을 분배하는 기법이다.
DNS 서버는 클라이언트의 요청을 받아 여러 개의 IP 주소 중 하나를 반환한다.
이 방식은 가장 간단하고 비용이 적은 로드 밸런싱 방법으로 사용된다.
작동 원리
- 클라이언트가 도메인 이름으로 서버에 접속할 때, DNS 서버가 요청 처리
- DNS 서버는 여러 서버 IP 주소를 반환하거나 특정 서버의 IP 주소를 선택해 반환하여 부하 분산
- 일반적인 방식은 라운드 로빈 DNS로, 요청을 순차적으로 다른 서버로 분배
장점
- 설정이 간단하며 추가 소프트웨어가 필요하지 않음.
- 서버를 추가하거나 제거할 때 DNS 기록을 업데이트만 하면 되어서 유연하다.
- DNS 서버는 지리적 위치에 따라 클라이언트가 가장 가까운 서버에 연결될 수 있도록 지원한다.
단점
- DNS 응답은 캐시되기 때문에 클라이언트가 지속적으로 동일한 IP 주소를 사용하게 될 수 있다. (부하 불균등)
- DNS는 서버의 상태를 체크하지 않기 때문에, 장애가 발생한 서버로의 트래픽이 계속 유입될 수 있다.
- DNS는 IP 주소를 찾는 데 시간이 걸리므로, 실시간으로 서버 상태를 반영한 트래픽 분배는 한계가 있다.
Anycast
Anycast는 여러 서버가 동일한 IP 주소를 공유하도록 설정하여, 클라이언트 요청이 가장 가까운(네트워크 거리 기준) 서버로 전달되도록 하는 방식이다.
작동 원리
- 서버 그룹은 같은 Anycast IP 주소를 사용.
- 클라이언트가 요청을 보내면, BGP 라우터가 최단 경로 또는 네트워크 지연이 적은 경로로 라우팅
- 클라이언트의 요청은 가장 가까운 (또는 가장 빠른) 서버로 전달되며, 이 서버가 응답
장점
- 클라이언트는 자신의 지리적 위치나 네트워크 경로를 고려하여 가장 빠른 서버에 연결(지연 시간을 최소화)
- 트래픽은 최단 경로를 통해 라우팅되므로, 응답 시간이 단축된다.
- 서버 중 하나에 장애가 발생하면, BGP는 자동으로 다른 서버로 트래픽을 라우팅
- 전 세계적으로 분산된 데이터 센터에 배치된 서버 간의 트래픽을 효과적으로 분배
단점
- BGP와 같은 고급 네트워크 라우팅 기술을 필요로 하며, 이를 설정하고 운영하는 데 전문적 지식 요구
- 항상 가장 적합한 서버를 선택한다고 보장할 수는 없다.
- 서버 장애 발생 시 라우팅 업데이트 지연으로 클라이언트 요청이 실패할 수 있음.
- 네트워크 장애나 차단이 발생할 경우 클라이언트-서버 간 연결이 끊길 위험이 있을 수 있음
적합 기준 선택
서버 상태를 실시간으로 반영하려면 클라이언트 측 로드 밸런싱 또는 서버 간 통신 활용한다.
만약 정적인 부하 분산이 가능하면 DNS 기반이 단순하고 적합하다.
클라이언트가 서버 정보에 접근하지 않도록 해야 하면 프록시 서버를 고려해야 한다.
직접 연결이 허용되면 Anycast를 고려해도 좋다.
확장이 중요한 경우 Anycast, DNS 기반 부하 분산 또한 좋다.
DNS와 Anycast 비교
특성 | DNS 로드 밸런싱 | Anycast |
기본 원리 | 도메인 이름에 여러 IP 주소를 매핑해 트래픽 분배. | 동일한 IP 주소를 여러 지점에서 사용하여 최단 경로로 라우팅. |
설정 및 관리 | 간단하며 관리가 용이하다. | BGP와 같은 고급 네트워크 라우팅 기술이 필요. |
실시간 트래픽 분배 | DNS 캐싱으로 인해 실시간 반영이 어려움. | 실시간으로 클라이언트 요청을 최단 경로로 라우팅. |
장애 복구 | 장애 서버로 트래픽이 계속 전달될 수 있다. | 서버 장애 시 자동으로 다른 서버로 트래픽을 우회. |
응답 시간 최적화 | 상대적으로 긴 응답 시간. | 네트워크 경로에 따라 빠른 응답 시간. |
주요 사용 사례 | DNS를 통한 기본적인 로드 밸런싱, 글로벌 트래픽 분산. | 글로벌 네트워크 트래픽 분산, 대규모 서비스. |
728x90
반응형
'네트워크 통신' 카테고리의 다른 글
네트워크 병렬 서버 로드 밸런싱 - 프록시 서버 (0) | 2024.11.26 |
---|---|
네트워크 IOCP (0) | 2024.11.26 |