웹 서버 이중화
1. 웹 서버의 서버 이중화 (소프트웨어 관점)
- 클라이언트 관점에서는 서버 측이 프로세스로 가동되고 있는지, 스레드로 가동되고 있는지를 의식할 필요 없다.
- 아파치(Apache HTTP Server)에서는 어느 쪽이든 미리 여러 개를 가동 시켜 두어서 클라이언트 요청에 빠르게 대응할 수 있는 구성을 가지고 있음
- 프로세스/스레드 중 하나에 장애가 발생해도 다른 프로세스/스레드가 가동되고 있기 때문에 웹 서버의 서비스 전체가 정지되는 일은 없다.
2. 서버 이중화 (웹 서버 자체)
부하분산 장치 이용한 이중화
2-1. Persistence
부하분산 장치가 세션 상태 저장을 실현하는 기능
- 소스 IP 주소
클라이언트 IP 주소를 기반으로 요청을 할당할 웹 서버를 결정
--> Proxy 경우하면 프록시 서버의 IP주소가 클라이언트 IP주소가 되어 한쪽으로 부하 생길 가능성 있음
- 쿠키
HTTP헤더 내에 접속한 웹 서버 정보 저장
--> AP서버 등이 쿠키 사용할 때 부하분산 장치가 부여한 쿠키를 덮어쓰기하지 않는지 확인 필요
- URL
URL구조 내에 접속한 웹 서버 정보 저장
--> 사용자가 직접 편집 가능한 정보이기 때문에 부정 접속에 대한 대책 검토 필요
2-2. 부하분산 장치 할당 알고리즘
- 라운드 로빈(Round robin)
서버 IP주소 순서대로 요청 할당
- 최소 연결(Least Connection)
현재 활성 세션 수보다 세션 수가 가장 적은 서버 IP주소 할당
- 응답 시간(Response Time)
CPU사용률이나 응답시간 고려하여 부하가 가장 적은 서버 IP주소 할당
2-3. Failover
장애를 감지한 경우 클라이언트 요청을 동적으로 다른 서버에 할당하는 것
'INFRA' 카테고리의 다른 글
[Docker] Docker Buildx 란? (0) | 2023.05.25 |
---|---|
[Docker] Dockerfile 작성법 (1) | 2023.05.12 |
Gitlab에대해 (1) | 2022.09.27 |
프로세스 상태 전이도 (0) | 2022.05.26 |
Process와 Thread 차이점 ( Processor, Program) / Multi process와 Multi thread의 차이점 (0) | 2022.05.03 |
댓글