-
[네트워크] 안정성과 가용성을 위한 이중화, 다중화, 로드밸런싱IT/IT 기초(IT기사, 알고리즘, Linux 등) 2024. 11. 25. 21:46
안정성과 가용성
안정성은 '특정 기능을 언제든 균일한 성능으로 수행할 수 있는 특성'이다.
안정성의 정도를 수치화하는 방법은 가용성과 고가용성이 있다.
가용성이란 '컴퓨터 시스템(서버나 네트워크나 프로그램 등)이 특정 기능을 실제로 수행할 수 있는 시간의 비율'이다.
정상적인 사용 시간을 업타임, 불가능한 시간을 다운타임으로 정의한다.
가용성 = 업타임/업타임+다운타임
가용성이 높은 것을 고가용성이라고 한다. (High Availability, HA)
이중화
단일 장애점(Single Point Of Failure, SPOF) 를 이중화한다.
이중화 방식에는 액티브/스탠바이와 액티브/액티브가 있다.
액티브는 가동상태이며, 스탠바이는 액티브의 백업으로서 대기 상태를 의미한다.
액티브/스탠바이는 액티브 상태 시스템이 문제가 발생하면 스탠바이 시스템이 액티브 시스템을 대신하여 동작(페일오버)한다.
액티브/액티브는 두 시스템 모두를 가동 상태로 둔다.
부하를 분산하고 두 시스템이 함께 가동하므로 성능도 좋다.
이중화에 비해 더 안정적인 다중화 기술도 있다.
로드 밸런싱
트래픽은 주어진 시점에 특정 노드를 경유한 패킷의 양이다.
서버를 다중화해도 트래픽의 분배를 해야 한다.
트래픽의 고른 분배를 위해 로드(=부하) 밸런싱(균형) 기술이 있다.
로드 밸런서에 의해 수행되고, HAProxy, Envoy 등이 있다.
웹서버인 Nginx도 로드밸런싱 기능이 있다.
로드 밸런싱 알고리즘
단순히 서버를 돌아가며 부하를 전달하는 라운드 로빈 알고리즘
연결이 적은 서버부터 우선 부하를 전달하는 최소 연결 알고리즘
무작위로 고르는 해시 자료구조를 이용하거나
응답 시간이 가장 짧은 서버를 선택하기도 한
서버의 상태를 체크하는 헬스 체크
HTTP, ICMP 등 다양한 프로토콜로 서버 상태를 모니터링한다.
혹은 서버 간에 하트비트라는 메시지를 주고받으며 상태를 확인하기도 한다.
'IT > IT 기초(IT기사, 알고리즘, Linux 등)' 카테고리의 다른 글
[네트워크] 무선 네트워크 동작원리, AP 개념 (0) 2024.11.26 [네트워크] 안정성을 위한 암호화와 인증서, 디지털 서명이란? (0) 2024.11.25 [네트워크] 캐시, 쿠키, 웹스토리지 개념 (0) 2024.11.25 [네트워크] HTTP 대표적인 헤더 (0) 2024.11.25 [네트워크] HTTP 상태코드 (0) 2024.11.25