Home 웹서버를 두대로 늘리려면?
Post
Cancel

웹서버를 두대로 늘리려면?

웹 서버를 두 대로 늘리려면?

  1. 로드 밸런싱!
  2. 고가용성!

-> L4 스위치 -> HAProxy

L4 스위치?

l4가격.PNG

  • 다나와 검색결과.. 아주 아주 매우 비싼 장비..
  • IP 와 TCP/UDP 포트를 보고 적절한 서버로 패킷을 전송하는 장비
  • L4가 적절한 서버 고르는 방법 (로드 밸런싱 알고리즘)
    • Least Connection
    • 현재 세션이 가장 적은쪽으로 세션을 보내줌 * 세션을 고려하기 때문에 약간의 메모리 자원이 소비된다.
      • 거의 5:5로 분산이 가능하지만, 경로 보장이 되지 않음.
    • RoundRobin * 서버로 세션을 순차적으로 맺어주는 방식. * 거의 5:5 분산이 가능하지만, 경로 보장이 되지 않음.
    • Hash * L4 자체 해싱 알고리즘을 사용하여 로드밸런싱 하는 기법. * 만일 해당 서버에 오류가 발생하거나, 서버 그룹에서 제외되거나, 추가된 경우 재할당된다. * 동일한 유저의 서비스 요청은 동일한 서버로 연결됨. * 경로가 보장되고, 메모리를 적게 사용하고 요구 절차가 간단. * 세션이 5:5로 분산되기 어렵기때문에 진정한 의미의 로드 밸런싱은 아님.
    • Minmiss * Hash와 유사한 방식을 사용 * 만일 해당 서버에 오류가 발생하거나, 서버 그룹에서 제외되거나, 추가된 경우, 해당 서버에 할당된 사용자에에 대해서만 재할당 작업을 한다.

RoundRobin & L7 health check

  • RoundRobin 방식으로 Load Balancing 적용
  • L7 health check 적용 l7_healthcheck.png
    • Layer 7 계층의 어플리케이션 응답을 체크하는 방식
    • 1분마다 한번씩 지정 URI에 Request를 날려서 건강한 서버인지 체크
      • 모니터 URI : GET /monitor/l7check
      • 예상 상태코드 : 200
    • 주기적으로 서버와 세션을 맺기 때문에 부하가 발생.
    • But 어플리케이션 상태까지 체크가능하기 때문에 L4 health check 보다 더 서비스 안정성 보장!

DSR(Direct Server Return) 모드

  • L4가 양방향 proxy일 경우, 모든 웹 서버가 받는 트래픽을 L4가 다 받아야 하는 문제가 생김 –> DSR 모드!
    • (기존) Client -> L4 -> Server -> L4 -> Client * (DSR) Client -> L4 -> Server -> Client * 응답이 로드밸런서를 경유하지 않고 직접 사용자에게 제공되도록 구성할 때 사용하는 방법 * 요청 패킷이 적은 케이스에 적합함
      • 일반적인 웹 요청 * 파일 다운로드

dsr.png

L4 적용

  • 기존 서비스의 System Architecture 11.PNG
  • L4를 적용한 System Architecture 2.png
  • 최종 System Architecture 3.png
This post is licensed under CC BY 4.0 by the author.