본 내용은 10분 테코톡 조앤님의 강의를 토대로 작성하였습니다.
1. Load Balancer란?
액세스가 증가할 때
서버로 요청하는 클라이언트 수가 늘어나서 액세스가 증가한다면
- Scale-up: 서버의 하드웨어를 고성능으로 바꿈
- 다만, 다수의 사용자가 집중적으로 액세스한다면 해결책이 될 수 없음
- 분산 처리: 복수의 서버를 사용하여 처리를 분담
- 여러대의 웹서버를 설치하고 한 대가 담당하는 사용자의 수를 줄임
- 이때, 부하 분산 장치로써 로드밸런서를 이용
Load Balancer의 역할
- 로드밸런싱: 해야할 작업을 나누어서 서버의 부하를 분산
- 로드밸런서: 여러대의 서버가 분산 처리할 수 있도록 요청을 나누어 줌
Load Balancer가 요청을 분배하는 방식
- 단순한 액세스
- 대화가 복수의 페이지에 걸쳐 있지 않을 때
- 웹 서버의 부하 상태가 판단 근거
- 시험 패킷을 이용하여 웹 서버에 보내 응답 시간으로 부하를 판단
- 미리 웹 서버의 능력을 설정
- 미리 웹 서버에 능력을 설정한 후 부하를 조사하지 않고 웹 서버의 능력을 설정
- 비율에 따라 요청 분배
Load Balancer의 종류
- 종류는 L2, L3, L4, L7가 있음
- L2, L3
- 각각 맥 주소, IP 주소를 바탕으로 로드밸렁싱하는 것을 의미
- L4
- 전송 계층에서 로드밸런싱 하는 것
- 요청을 담당하는 여러대의 서버로 로드밸런서가 요청을 나누어 줌
- L7
- 응용 계층에서 로드밸런싱
- 요청의 종류에 따라서 담당 서버들로 요청을 나누어 줌
2. Proxy란?
Proxy
- 네트워크 프록시
- 대리라는 의미
- 웹서버에서의 중개자(대리) 역할
- 클라이언트와 서버사이의 위치에서 http 메시지를 정리하는 대리인처럼 동작
- 웹 서버이기도하고 웹 클라이언트가 되기도 함
Proxy server
- 서버와 클라이언트의 중계 서버
- 통신을 대리 수행
Forward Proxy
- 클라이언트와 인터넷 사이에 프록시가 위치해서 클라이언트 대신 서버에 요청을 보내주는 역할
- 프록시가 내 컴퓨터 가까이
- 로컬 네트워크와 인터넷 사이에 오가는 트래픽을 제어
- ex) 부적절한 콘텐츠 브라우저 방지 필터링
Reverse Proxy
- 서버와 인터넷 사이에 위치해서 서버의 응답을 대신 클라이언트에게 전달해주는 역할
- 프록시가 서버 가까이
- 웹 서버를 향하는 모든 요청을 처리
- 웹 서버의 보안 기능 추가
- 빠른 웹 서버 캐시를 느린 웹 서버 앞에 놓아 성능 개선
Proxy 네트워크 배치 방법
- 입구 프록시
- ISP 인터넷 서비스 공급자 접근 지점에 위치
- 고속 접속 사용자들을 위해 다운로드 속도를 개선
- 캐시 프록시를 이용해 인터넷 대역폭 비용을 줄임
- 네트워크 교환 프록시
- 캐시를 이용해서 인터넷의 혼잡을 완화하고 트래픽을 감시
- 충분한 처리 능력을 갖춘 프록시가 네트워크 사이에 인터넷 교환 지점에 놓임
Proxy를 사용하는 이유
- 필터
- ex) 특정 웹 사이트 접속 시 차단
- 접근제어
- 많은 웹 서버들과 웹 리소스에 대한 단일한 접근 제어 전략을 구현, 추적
- 특정 클라이언트만 접근할 수 있는 콘텐츠가 서버에 있을 때
- 허가된 클라이언트는 접근을 허용
- 그렇지 않은 클라이언트는 접근 요청 시 비밀번호 요구
- 캐싱
- 인기있는 요청을 관리
- 해당 요청이 오면 서버까지 거치지 않고 프록시에서 응답
- 느리고 비싼 커뮤니케이션 비용을 절감
- 익명화
- HTTP 메시지에서 신원을 식별할 수 있는 특성을 제거
- 개인 정보 보호, 익명성 보장에 기여
- 클라이언트 요청이었으나 프록시 요청인 것처럼 위장할 수 있음
- 리버스 프록시의 경우 서버인 척 응답을 보냄
- 로드밸런싱
- 서버가 요청을 나누어 가질 수 있도록 프록시에서 결정
Reference
[10분 테코톡] 조앤의 Forward Proxy vs Reverse Proxy vs Load Balancer
'programming study > web' 카테고리의 다른 글
REST API (0) | 2021.10.13 |
---|---|
WebRTC, WebSockets (0) | 2021.10.08 |
프론트엔드에서의 에러 핸들링 (0) | 2021.09.24 |
웹스토리지 & 쿠키 (0) | 2021.09.23 |
지속적 배포 (0) | 2021.09.19 |