티스토리 뷰
서버의 부하
대량의 패킷이 서버로 요청 될 경우에 서버가 모두 처리하지 못할 수 있는 상황이 발생한다.
이를 해결하기 위한 부하 분산 방법에 대해 알아보자.
DNS를 이용한 부하분산
DNS서버에 같은 이름으로 여러대의 웹 서버를 등록하는 방법
- 라운드로빈을 이용하여 차례대로 다른서버에 요청을 보낸다.
- DNS의 경우 서버의 상태를 체크할 수 없어 서버가 요청을 받을 수 없는 상태에도 해당 서버에 요청을 보내는 단점이 있다.
- 클라이언트 측에서 여러페이지에 걸쳐 대화를 하는경우 중간에 끊길 수도있다.
- 예를들어 로그인을 한 상태인경우 로그인상태가 다른서버에 접근하더라도 유지가 되어야한다.
복수페이지의 대화를 진행하는 방법
- 전후의 관계를 나타내는 데이터를 추가
- 쿠키를 HTTP헤더에 추가
로드밸런서(부하분산장치)
DNS에 로드밸런서를 등록하여 사용한다.
DNS에 여러 IP를 등록하여 사용할 경우의 문제점인 서버상태 체크를 로드밸런서를 통해 해결한다.
- 서버의 CPU, 메모리 상태 수집
- 시험 패킷을 통해 응답 시간으로 부하를 판단한다.
단, 부하는 단시간에 증가하거나 감소 할 수 있음을 조심해야한다.
가장 좋은 방법은 웹서버의 능력을 설정한 후 해당 능력 이상의 부하를 주지않도록 리퀘스트를 분배하는 방법이 가장 좋다
캐시서버를 이용한 부하분산
DNS에 캐시서버를 등록하여 사용하는 방식
캐시서버를 사용할 경우 Via라는 헤더가 추가된다. 이는 캐시서버를 경유함을 의미한다
프록시
클라이언트와 웹서버 중간에 들어가 중계기 역할을 한다.
데이터를 캐시에 저장하여 웹서버 대신에 데이터를 클라이언트로 전송하는 역할을 한다.
캐시 서버에서 웹 서버로 전송한 Request
If-Modified-Since: Wed, 21 Sep ... // 이전에 데이터가 캐시에 저장되어 있는경우 해당 헤더에 추가
웹 서버에서 캐시 서버로 Response
HTTp/1.1 304 Not Modified // If-Modified-Since 이후로 변경이 없으면 반환한다. 콘텐츠 변경이 없음을 의미한다
포워드 프록시
- 캐시 서버를 클라이언트 측에 두는방식
- 캐시서버 이용을 목적
- 클라이언트의 정보를 숨길 수 있다.
장점
- 저속회선 인터넷에서 인터넷에 빠르게 액세스가 가능하다.
- 리퀘스트의 내용을 조사함으로 request 내용에 문제가 있을경우 액세스접근을 막을 수 있다.
-> 방화벽으로 막을 수 없는 패킷에 추가적으로 안전장치가 추가 된것과 같다.
단점
- 브라우저의 설정에 문제가 있을경우 제대로 동작하지 않는다.
리버스 프록시
- 캐시서버를 웹서버 측에 두는 방식
- 웹서버의 정보를 숨길 수 있다.
장점
- 브라우저 설정이 필요없다.
'성공과 실패를 결정하는 1%의 네트워크원리' 카테고리의 다른 글
[네트워크 원리] 방화벽의 원리와 동작 (0) | 2021.10.31 |
---|---|
[네트워크 원리] 소켓라이브러리 동작 (0) | 2021.10.29 |
[네트워크 원리] 프로토콜 스택 (0) | 2021.10.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 서버사이드 error handling
- 1600 파이썬
- serverless nestjs
- suspense 장점
- React useMemo
- 백준 22862
- javascript
- 관심사 분리하기
- 가장 긴 짝수 연속한 부분 수열
- nextjs 에러핸들링
- 불량 사용자 자바스크립트
- 자바스크립트
- nextjs errorboundary
- serverless 배포
- nestjs 배포하기
- 에러핸들링
- react suspense
- 선언적 UI
- node 버전 마이그레이션
- useCallback과 useMemo 사용
- 미로탈출 명령어
- storybook scss import
- CSS
- React useCallback
- 서비스 디자인 패턴
- 백준 1600번
- node version yarn berry
- 표현 가능한 이진트리
- storybook react is not defiend 해결
- storybook scss이슈
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함