Load(서버가 받는 요청, 부하) + Balancing(분산)
즉 로드밸런싱이란, '부하분산'으로 다수의 서버에 네트워크 트래픽을 균등하게 분배하여 시스템의 안정성과 가용성을 높이는 기술
| L4 로드밸런서 | L7 로드밸런서 | |
|---|---|---|
| 네트워크 계층 | Layer 4 전송계층(Transport layer) | Layer 7 응용계층(Application layer) |
| 특징 | IP주소, 포트(Port) 정보를 바탕으로 함 단순한 포워딩 | TCP/UDP 정보는 물론 HTTP의 URI, FTP의 파일명, 쿠키 정보 등을 바탕으로 함 |
| 장점 | - 데이터 안을 들여다보지 않고 패킷 레벨에서만 로드를 분산하기 때문에 속도가 빠르고 응답이 빠름 - 데이터의 내용을 복호화할 필요가 없기에 안전함 - L7 로드밸런서보다 가격이 저렴함 | - 상위 계층에서 로드를 분산하기 때문에 콘텐츠 기반 라우팅이 가능함 - 캐싱 기능을 제공함 - 비정상적인 트래픽을 사전에 필터링할 수 있어 서비스 안정성이 높음 |
| 단점 | - 패킷의 내용을 살펴볼 수 없기 때문에 섬세한 라우팅이 불가능함 - 사용자의 IP가 수시로 바뀌는 경우라면 연속적인 서비스를 제공하기 어려움 | - 패킷의 내용을 복호화해야 하기에 더 높은 비용을 지불해야 함 - 클라이언트가 로드밸런서와 인증서를 공유해야하기 때문에 공격자가 로드밸런서를 통해서 클라이언트에 데이터에 접근할 보안 상의 위험성이 존재함 |
로드 밸런싱을 수행하는 '실제 장비' 또는 '소프트웨어'
| 방식 | 흐름 | 설명 |
|---|---|---|
| SNAT (Source NAT) | 내부 → 외부 | 내부 사설 IP 주소를 외부의 공인 IP 주소로 변환하는 방식 |
| DNAT (Destination NAT) | 외부 → 내부 | 외부 공인 IP 주소를 내부의 사설 IP로 주소로 변환하는 방식 |
서버를 여러 대 추가하여 분산처리 하는 방식
장점
단점
- 데이터정합성 유지가 어려움
- 로드밸런싱이 필요
여러 시스템이나 데이터베이스에 저장된 데이터가 서로 모순없이 일치하는 상태
| 정합성 레벨 | 특징 | 장점 | 단점 | 사용 사례 |
|---|---|---|---|---|
| 강한 정합성 (Strong Consistency) | - 데이터 쓰기 후 즉시 모든 읽기에 반영 - 모든 노드가 같은 값을 반환 | - 데이터 신뢰도 높음 - 트랜잭션 처리 용이 - 일관된 사용자 경험 | - 높은 지연시간 - 성능 저하 - 가용성 감소 | - 은행 거래 - 결제 시스템 - 예약 시스템 |
| 약한 정합성 (Weak Consistency) | - 데이터 쓰기 후 일정 시간 동안 이전 값 반환 가능 - 동기화 시점 보장 없음 | - 빠른 응답 시간 - 높은 처리량 - 시스템 부하 감소 | - 일시적 데이터 불일치 - 복잡한 에러 처리 - 사용자 혼란 가능성 | - SNS 좋아요 - 조회수 - 실시간 채팅 |
| 최종 정합성 (Eventual Consistency) | - 일정 시간 후 모든 복제본 동기화 - 최종적으로 일관된 상태 보장 | - 고가용성 - 낮은 지연시간 - 확장성 우수 | - 일시적 불일치 - 충돌 해결 필요 - 복잡한 설계 필요 | - DNS - 이메일 - 분산 캐시 |
데이터 정합성 유지 방법
1. 트랜잭션 관리
2. 동기화 메커니즘 사용
3. 복제(Replication) 전략 수립
Reference