티스토리 뷰
로드 밸런싱(Load Balancing)
둘 이상의 CPU or 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것
요즘 시대에는 웹사이트에 접속하는 인원이 급격히 늘어나게 되었다.
따라서 이 사람들에 대해 모든 트래픽을 감당하기엔 1대의 서버로는 부족하다.
대응 방안으로 하드웨어의 성능을 올리거나(Scale-up) 여러 대의 서버가 나눠서 일하도록 만드는 것(Scale-out)이 있다.
하드웨어 향상 비용이 더욱 비싸기도 하고, 서버가 여러대면 무중단 서비스를 제공하는 환경 구성이 용이하므로
Scale-out이 효과적이다. 이때 여러 서버에게 균등하게 트래픽을 분산시켜 주는 것이 바로 로드 밸런싱이다.
로드 밸런서가 서버를 선택하는 방식
- 라운드 로빈(Round Robin) : CPU 스케줄링의 라운드 로빈 방식 활용
- Least Connections : 연결 개수가 가장 적은 서버 선택 (트래픽으로 인해 세션이 길어지는 경우 권장)
- Source : 사용자 IP를 해싱하여 분배 (특정 사용자가 항상 같은 서버로 연결되는 것 보장)
로드 밸런서 장애 대비
서버를 분배하는 로드 밸런서에 문제가 생길 수 있기 때문에 로드 밸런서를 이중화하여 대비한다.
몇 개 층에서 정보를 열어서 분산하는가?
크게 L4로드밸런서와 L7로드밸런서로 나눔
L4 로드밸런서는 4 계층 이하의 정보를 가지고 로드를 분산
특히 MAC주소, IP주소, 포트정보를 가지고 트래픽을 분산
L7 로드밸런서는 응용 계층의 정보를 가지고 로드 분산
패킷 내용을 확인하고 분산해서 DDos 같은 비정상적인 트래픽도 필터링할 수 있다.
L7 로드밸런싱은 모든 정보를 다 알고 있다.
L7: URL기반
L4 로드밸런싱은 L4까지만 보고 요청을 분산시켜준다
L4: port기반
L3: IP기반
L2: MAC Address기반
원문 또는 참고
'개발지식 > Network' 카테고리의 다른 글
Proxy (0) | 2023.03.28 |
---|---|
OSI 7 Layers (0) | 2023.03.26 |
TCP-HandShake (0) | 2023.03.26 |
TCP and UDP (0) | 2023.03.25 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Laravel vite webpack
- Laravel 서비스 컨테이너
- PHP int 0값
- php trait
- artisan serve란
- vue.js의 computed 속성
- Laravel 컴포넌트 참조
- Laravel artisan 명령어 정리
- PHP 7 8변경점
- Laravel 이미지 폴더
- Laravel vaildation
- Laravel 서비스 프로바이더
- git branch 정렬
- Laravel 데이터 삭제 처리
- Laravel Carbon
- PHP의 Null
- Laravel seeder 데이터
- Laravel 설정
- DATE DATETIME TIMESTAMP 차이점
- Laravel의 쿼리빌더와 Eloquent의 차이
- Laravel 인증 라이브러리
- git branch 날짜순
- Laravel 라이프 사이클
- Laravel 페이지네이션
- 생소한 일본어
- Laravel 데이터 취급 비교
- Laravel post등록
- 상류공정
- Laravel Pagination
- TCP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함