서버/인프라 구축 입문

다중화: 장애가 발생해도 예비 운용장비로 시스템의 기능을 계속할 수 있도고 하는 것을 말한다.

 

다중화의 분질

1. 장애를 상정한다.

2. 장애에 대비해서 예비 운용장비를 준비한다.

3. 장애가 발생했을 때 예비 운용장비로 교체할 수 있는 운용체제를 정비한다.

 

Hot Standby(상시 대기 방식) <-> Cold Standby(수동 예비 방식)

 

장애극복

현재 운용 장비에 장개가 발생했을 때 자동적으로 예비 운용장비로 처리를 인계하는 것을 장애극복 이라고 한다.

 

장애 검출

ICMP 감시(L3)

ICMP 감시는 ICMP의 echo 요청을 보내서 응답이 돌아오는지를 체크한다. 가장 간단하고 가벼운 헬스 체크지만, 웹서비스가 다운될 경우(아파지가 중지한 경우 등)은 감지할 수 없다.

포트 감시(L4)

포트 감시는 TCP로 접속을 시험해서 접속할 수 있는지 여부를 체크한다. 웹서비스가 다운된 것은 감지할 수 있지만, 과부하 상태로 응답할 수 없다거나 에러를 반환하는 것은 감지 할수 있다.

서비스 감시(L7)

실제로 HTTP 요청등을 보내서 정상적인 응답이 돌아오는지를 체크한다. 대부분의 이상을 감지할 수 있지만 경우에 따라서는 서버에 부하를 유발할 수도 있다.

 

부하분산

여러 대의 서버에 처리를 분산시켜 사이트 전체의 확장성을 향상시키는 방법

 

웹서버 다중화

DNS 라운드 로빈

문제점

1.서버의 수만큼 글로벌 주소가 필요

2.균등하게 분산되는 것이 아님

3.서버가 다운돼도 감지하지 못해

 

로드벨런서

하나의 IP주소에 대해 요청을 복수의 서버로 분산할 수 있다.(IPVS)

L4스위치: 트랜스포트 계층까지의 정보를 분석, 포트번호에 따라 분산대상 서버를 지정할수 있다.(IPVS)

L7스위치: 애플리케이션 계층까지의 정보를 분석, 클라이언트로 부터 요청된 URL에 따라 분산서버를 지정할수 있다.

 

IPVS 스케줄링

 

 명칭 동작
 rr(round-robin) 리얼서버를 처음부터 차례로 선택해간다.
 wrr(weighted round-robin)
 rr과 같지만 가중치를 가미해서 분산비율을 변경한다.
 lc(least-connetion) 접속수가 가장 적은 서버를 선택한다.
 wlc(weighted round-robin)
 lc와 같지만 가중치를 가미한다.
 sed(shortest expected delay)
 가장 응답속도가 빠른 서버를 선택한다.
 nq(never queue)
 sed와 동일한 알고리즘이지만 active 접속수가 0인 서버를 최우선으로 선택한다.
 sh(source hashing)
 소스IP주소로 부터 해시값을 계산해서 분산 대상 리얼 서버를 선택한다.
 dh(destination hashing) 목적지 IP주소로 해시값을 계산해서 분산대상 리얼 서버를 선택한다.
 lblc(locality-based least-connetion)
 접속수가 가중치로 지정한 값을 넘기 전까지 동일한 서버를 선택한다.
 lblcr(locality-based least-connetion with replication)
 lblc와 거의 같지만 모든 서버의 접속수가 가중치로 지정한 값이 넘고 있을 경우 접속수가 가장 적은 서버가 선택된다.

라우터 및 로드 밸런서의 다중화
VRRP(Virtual Router Redundancy Protocal)
VRRP 패킷이란?
VRRP의 마스터 노드는 정기적으로 VRRP패킷을 멀티캐스팅 주소로 계속 송신한다.
VRRP패킷은, 마스터 노드가 정상작동 중임을 광고하는 메시지라는 의미로 advertisement 라고 한다.
VRRP패킷
{IP Address(가상IP주소, Virtual Rtr ID(가상 라우터ID), Priority(우선순위)}

댓글

이 블로그의 인기 게시물

javascript ===, ==, >=, <=연산자

SQL oracle 내장함수[문자열 처리]

java 입출력2