오늘 한일
- 로드 밸런싱
로드 밸런싱은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다. 이로써 가용성 및 응답시간을 최적화 시킬 수 있다.
메인프레임 1대(단일 구성체) 보다 IA-32와 같은 일반적인 서버(복합 구성체)가 안정성 면에서 유리한 위치에 있다. 로드 밸런싱 서비스는 그에 적합한 하드웨어와 소프트웨어에 의해 제공된다. 이 기술은 보통 내부 네트워크를 이용한 병렬처리(특히, 고가용성의 병렬처리)에 사용된다.
로드 밸런싱을 위한 대부분의 응용 프로그램은 다수의 서버(다른 말로, 서버 팜)를 가지고 한 가지 종류의 인터넷 서비스를 지원하는 방식이다. 보통 부하 분산은 트래픽이 많은 웹 사이트, IRC 네트워크, FTP 사이트, NNTP 서버 그리고 DNS서버에 적용이 되고 있다.
인터넷 서비스를 위해서는 소프트웨어를 이용한 로드 밸런싱이 적용되며, 이 소프트웨어는 중간에 위치에 실제 서비스하는 서버와 클라이언트를 포트를 이용해 중개하고 있다.
정적 로드 밸런싱 방식
- 라운드 로빈 방식 - 서버에는 클라이언트에게 요청을 전송할 위치를 알려주는 IP 주소가 있다. IP 주소는 기억하기 어려운 긴 숫자여서 이를 쉽게 하기 위해 도메인 이름 시스템은 웹 사이트 이름을 서버에 매핑한다.
- 가중 기반 라운드 로빈 방식 - 가중치 기반 라운드 로빈 로드 밸런싱에서는 우선순위 또는 용량에 따라 각 서버에 서로 다른 가중치를 할당할 수 있다. 가중치가 높은 서버는 이름 서버에서 들어오는 애플리케이션 트래픽을 더 많이 수신한다.
- IP 해시 방식 - IP 해시 방법에서 로드 밸런서는 클라이언트 IP 주소에 대해 해싱이라고 하는 수학적 계산을 수행한다. 클라이언트 IP 주소를 숫자로 변환한 다음 개별 서버에 매핑한다.
동적 로드 밸런싱
- 최소 연결 방법 - 연결은 클라이언트와 서버 간의 개방형 통신 채널이며 클라이언트는 서버에 첫 번째 요청을 전송할 때 서로 활성 연결을 인증하고 설정한다.
- 가중치 기반 최소 연결 방법 - 가중치 기반 최소 연결 알고리즘은 일부 서버가 다른 서버보다 더 많은 활성 연결을 처리할 수 있다고 가정한다. 따라서 각 서버에 다른 가중치 또는 용량을 할당할 수 있으며 로드 밸런서는 용량별 연결이 가장 적은 서버로 새 클라이언트 요청을 전송한다.
- 최소 응답 시간 방법 - 서버 응답 시간과 활성 연결을 결합하여 최상의 서버를 결정한다. 로드 밸런서는 이 알고리즘을 사용하여 모든 사용자에게 더 빠른 서비스를 보장한다.
- 리소스 기반 방법 - 리소스 기반 방법에서 로드 밸런서는 현재 서버 부하를 분석하여 트래픽을 배포한다. 에이전트라고 하는 특수 소프트웨어는 각 서버에서 실행되며 컴퓨팅 용량 및 메모리와 같은 서버 리소스의 사용량을 계산한다. 그런 다음 로드 밸런서는 해당 서버에 트래픽을 배포하기 전에 에이전트에 충분한 여유 리소스가 있는지 확인한다.
어려웠던 점
- 로드 밸런싱에 대해 배웠는데 낯선 단어들과 여러 방식으로 인해 제대로 이해하기 어려웠고 실제 서버에 어떤 방식이 효율적이고 어떠한 방법을 사용해야 하는지 감이 잡히지 않았다. (로드 밸런싱 알고리즘에 대해 공부하고 실제로 어떻게 작동하는지 배우면 좋을 것 같다.)
오늘의 TIP
- 스케일 업(Scale Up)은 기존 서버의 성능을 향상시키는 방법으로 이는 CPU나 메모리를 업그레이드하는 것과 같은 작업을 포함한다. 스케일 아웃(Scale Out)은 트래픽이나 작업을 여러 대의 컴퓨터나 서버에 분산시켜 처리하는 방법이다. 각각의 방법은 장단점이 있어 어떤 방법이 더 적합한지 판단해야 한다.
'TIL' 카테고리의 다른 글
TIL#52(Wireshark) (0) | 2024.07.02 |
---|---|
TIL#51(서브넷 마스크와 IPv4 주소) (0) | 2024.07.01 |
TIL#49(레이턴시, TCP 3-way hanshake) (0) | 2024.06.27 |
TIL#48(패킷 처리 및 데이터 전송) (0) | 2024.06.26 |
TIL#47(버퍼와 스트림) (0) | 2024.06.25 |