서버 부하분산?
- 서버에 걸리는 부하를 분산
- 동일한 서비스를 제공하고 있는 복수의 서버에 작업을 분배
- 서버 부하란 클라이언트 접속으로 인해 발생
- 클라이언트 접속을 분산함으로써 처리 부하를 분산시킴
서버 부하분산이 필요한 이유
- 처리 능력 향상
- scale-up : 서버 자체의 성능 향상
- scale-out : 서버 수를 증가(유연성이 높아서 이 방법을 많이 사용)
- 장애 대처 능력 향상
- 장애에 어느 정도 견딜 수 있느냐
- 한 대의 서버가 다운되도 그 서버를 격리시켜 다른 서버가 서비스를 제공할 수 있게 됨
- 장애에 어느 정도 견딜 수 있느냐
- 유지 관리 효율 향상
- 소트프웨어 업데이트가 필요하다면, 한 대씩 작업이 가능해짐
서버 부하분산 방법
- DNS 라운드 로빈
- DNS : ip - domain name 매핑된 데이터베이스를 가지고 있음.

- 라운드 로빈 : 순서대로
- DNS 라운드 로빈 : 복수의 ip 주소를 DNS 서버에 등록해두고, 클라이언트로부터 요청이 오면 등록된 ip를 순서대로 전달
- 도메인 네임이 똑같아도 접속하는 서버가 달라짐
- 단점
- 서버 장애가 발생해도 알기 어려움
- DNS 서버는 장애가 발생한 사실을 알 수 없기 때문에, 다운된 서버로 접속 시도하게 됨

- 균등하게 부하분산 하지 않음
- DNS는 캐시 기능을 가지고 있기 때문에, 캐시가 없어지기 전까지는 계속 같은 웹 서버에 접속 함
- DNS 서버는 장애가 발생한 사실을 알 수 없기 때문에, 다운된 서버로 접속 시도하게 됨
- 서버 장애가 발생해도 알기 어려움
- DNS : ip - domain name 매핑된 데이터베이스를 가지고 있음.
- OS 타입
- OS 가 가지고 있는 자체 기능으로 부하분산 구현
- window : NLB
- 리눅스 : LVS
- 단점
- 클러스터 서비스의 부속 기능이기 때문에 복잡한 부하분산 구현이 어려움
- 모드에 따라 관계없는 서버와도 통신됨
- OS 가 가지고 있는 자체 기능으로 부하분산 구현
- 어플라이언스 타입
- Load Balancer라는 장비를 사용해 구현
- 벤더 ex. F5, Citirx, NetScale 등
- 단점 : 비용
- 장점
- 복잡한 트래픽을 유연하게 처리하는 것이 가능
- 전달 받은 연결을 효율화
- 암호화 -> 복호화
- Load Balancer라는 장비를 사용해 구현
서버 부하분산의 진화