회사에서 L4 스위치에서 L7 스위치로 변경하기 위해 사전 영향도 조사 관련 메일을 받았습니다.
L4, L7 스위치에 관하여 알아보다가 로드밸런싱, HAProxy와 연관이 있어 같이 정리해보려고 합니다.
로드밸런싱이란?
하나의 서비스에 대한 부하를 여러 서버로 분산하는 것.
일반적인 개인 서버
위의 그림처럼 클라이언트가 한두 명 일 경우 서버는 여유롭게 응답할 수 있지만, 많은 클라이언트가 몰릴수록 요청에 응답하지 못한 상태로 서버가 뻗어버립니다.
이러한 문제를 해결하기 위한 방법
Scale-out - 클라이언트의 요청을 한 서버가 아닌, 여러 서버로 분산하는 경우
여러 서버로 분산하게 될 경우
1. 하나의 서비스에 대해 여러 서버가 가동되므로, 서버 failover가 가능.
2. 부하분산을 통해 서비스가 더 안정적이고 원활하게 유지하기 가능.
가끔 업무 메일에 서버팀에서 web-4 도커 설치 서비스 제외, web-4 서비스 투입 등등 같은 메일을 받습니다.
서비스는 유지하면서 위와 같은 작업이 가능한 이유는 1번처럼 여러 서버가 가동되기 때문입니다.
Switch
L2 (Layer 2 Switch) - OSI Layer 2 계층에 속하는 MAC Address를 참조하여 Switching 하는 장비
L3 (Layer 3 Switch) - OSI Layer 3 계층에 속하는 IP Address를 참조하여 Switching 하는 장비
L4 (Layer 4 Switch)
- OSI Layer 3~4 계층에 속하는 IP Address, TCP, UDP 포트 정보를 참조하여 로드 밸런싱을 제공하는 Switching 하는 장비
- L4는 TCP/UDP 패킷 정보를 분석해서 해당 패킷이 사용하는 서비스 종류별로 처리(HTTP, FTP, SMTP..).
- 세션 관리, 서버/방화벽 로드밸런싱, 네트워크 서비스 품질 보장
- L4 Switch 장비는 서버 그룹의 대표 IP인 VIP(Virtual IP)를 통해 관리, VIP를 가진 L4 Switch로 수신한 후 들어오는 트래픽을 여러 서버에 분배.
L7 (Layer 7 Switch)
- OSI Layer 3~7(Session, Presentation, Application)에 속하는 IP Address, TCP/UDP 포트 및 Packet 내용까지 참조하여 Switching 하는 장비.
- IP 주소, TCP, UDP 포트 및 패킷 내용까지 참조하여 스위칭.
- HTTP의 URL이나 쿠키 정보, 바이러스 패턴 분석해 보안에 더 유리한 로드밸런싱이 가능.
- 페이로드(데이터) 분석을 통해서 DDos 방어, 패킷 필터링 가능.
L4 VS L7
차이점
- L7은 보안 기능 강화, 데이터 분석을 통해 DDos, 감염 패킷 필터링 등 기능 가능.
- L4는 페이로드에 대해서는 신경 쓰지 않지만, L7은 세션을 분리하고 자신을 철저하게 클라이언트 / 서버로 동작.
* LAYER 란?
OSI 7 Layer에서 사용하는 개념
* Switch 란?
네트워크 스위치는 네트워크를 연결하는 일을 하는 특수목적의 컴퓨터 기기.
자신에게 연결된 모든 기기들로부터 들어오는 패킷을 수신하고, 적당한 기기로 보내는 일을함.
* 페이로드(payload) 란?
전송되는 데이터, 보내고자 하는 데이터
HAProxy 란
L4 Switch, L7 Switch가 제공하는 로드 밸런싱 기능을 제공.
HAProxy는 오픈 소스로 소프트웨어 로드밸런싱을 기능을 제공.
HAProxy 설정 추가를 통해 Scale-Out 도 가능.
HAProxy VRRP (Virtual Router Redundancy Protocol) 지원.
이중화(M / S) Master 장애 시 Slave가 Master VIP (Virtual IP)를 가져와 Master로 승격됨.
HAProxy 동작 방식
1. 최초 접근 시 서버에 요청 전달
2. 응답 시 쿠키(Cookie)에 서버 정보 추가 후 반환
3. 재 요청 시 Proxy에서 쿠키 정보 확인 후 최초 요청 서버로 전달
4. 다시 접근 시 쿠키를 추가할 필요 없이 서버에 전달 (클라이언트에 쿠키 정보가 계속 존재하여 재사용)
<참조>
<참조>
<참조>
'n년차 개발자' 카테고리의 다른 글
AWS Lambda, S3, EventBridge, Cloude Watch를 사용하여 EC2 AUTO STOP 적용하기 (JAVA) (0) | 2022.07.14 |
---|---|
AWS EC2 생성 후 SSH 22 포트 접근 Connection timed out (0) | 2022.07.12 |
CDN(Content Delivery Network) 콘텐츠 전송 네트워크 란 (0) | 2021.05.14 |
HMAC (Hash-based Message Authentication Code) 이란 (0) | 2021.01.04 |
IntelliJ IDEA 설치방법 (0) | 2020.10.26 |