티스토리 뷰
1. Proxy
: 클라이언트와 서버 사이에서 중계 역할을 하는 서버나 장비
: 사용자와 인터넷 간의 연결을 중개하며, 주로 보안, 성능 향상, 네트워크 관리 등을 목적으로 사용
- 목적
- 보안 : IP 숨기기 or 프록시 서버를 방화벽으로 사용(프록시 방화벽)
- 속도(캐시) : 동일 요청 시, 저장된 Cache 반환
=> 전송 시간 절약, 외부 트래픽을 줄여 네트워크 병목 현상도 방지
- ACL : 사이트 접근 범위 정책 정의 (Proxy Server 에 접속할 수 있는 범위를 설정하는 옵션)
- Log / Audit : 리포트, 모니터링 (회사 내 직원의 인터넷/인트라넷 사용을 레포팅) - 분류: Forward Proxy | Reverse Proxy
- Forward Proxy
: Client 측에 위치
1) 클라이언트 은닉 : IP 변환을 통해 원 요청자 은닉/우회
2) 클라이언트 접근 제어 : 특정 IP 혹은 웹 페이지에 대한 접근 금지
3) 캐싱 : 클라이언트가 받을 응답을 중간에 임시 저장 (개인이 소비하는 입장에서)- 예시: ISP(Internet Service Provider)
- Reverse Proxy
: Server 측에 위치, 요청에 대한 세부적 추가작업
1) 요청 전달: URL/I Mapping (URI 기반 Routing), 로드 밸런싱 (요청 분산)
=>웹 서버의 부하를 완화 및 고가용성 보장에 도움
2) 요청 변환: Header 세팅( X-FORWARDED-BY)
=> 은닉된 클라이언트의 IP를 서버에게 전달
3) 서버 은닉: 리버스 프록시 뒷단의 서버의IP는 가려짐
4) 서버 접근제어(요청 필터): 트래픽 제어를 통해 DDoS방지
- Forward Proxy
기술 | 설명 |
Rate Limiting | - 짧은 시간 내 과도한 요청을 방지 =>DDoS 공격을 완화 |
WAF (Web Application Firewall) | - 웹 애플리케이션 방화벽 => 악성 트래픽을 필터링 - Honeypot을 이용해 악성 IP 리스트 생성/관리 - Custom IP 추가 -> 특정 공격을 차단 |
Response Max Size | - 너무 큰 파일 응답을 제한 - 자원 낭비 방지, 서버 성능 최적화 |
Timeout | - 서버가 일정 시간 내에 요청을 처리하지 않으면 타임아웃 -> 리소스 소모를 줄임 |
5) 캐싱: 클라이언트가 자주하는 요청에 대한 응답을 중간에 임시 저장
6) 보안: HTTPS
- 다중 서버 환경에서는 모든 서버가 보안을 위해 private Key를 가져야 함
- 키 관리가 힘들어서 reverse proxy에게 위임
=> 이를 SSL Offloading or SSL Termination
=> SSL Offloading : 웹 서버가 HTTPS 암복호화 처리에 대한 시스템 자원 사용 부담 완화/위임 의미
=> SSL Termination : 리버스 프록시에서 알아서 SSL/TLS 처리를 대신 마친다라는 의미
2024.12.18 - [분류 전체보기] - 서버 보안 및 성능 최적화
2. Reverse Proxy
2.1 L1 Reverse Proxy : CDN (Contents Delivery Network)
- 캐싱 + 지역성 해결 목적
1) 캐싱: 분산 서버인 CDN에 저장 -> 준실시간성 데이터의 빠른 응답 보장 및 WS의 장애에도 대신 응답
2) 클라이언트-서버 사이의 물리적 거리가 멀 경우 CDN을 통해 일부 해소 - CDN : 고가용성을 보장해주는 버퍼의 역할
2.2 L2 Reverse Proxy : Load Balancer
- 대량의 트래픽 분산 및 대표 IP 고정을 통한 유연성 확보 목적
- 고가용성 제공
: 트래픽 분산뿐만 아니라, 트래픽이 급증하거나 급감하는 경우 서버의 수를 동적으로 제어하여 고가용성 제공
: 로드밸런서는 앞단의 모든 웹 클라이언트의 요청을 받아, 뒷단의 모든 웹 서버에게 요청을 분산- 배포 이슈 해결 : 클라이언트는 고정된 IP 의 로드밸런서만 호출하기에 웹 서버가 몇개든 죽든말든 노상관
- 트래픽 이슈 해결 : 아무리 많은 요청이 들어와도 로드밸런서 뒷단에 서버 수만 늘리면된다 (수평적 확장)
'ASAC > 정리용' 카테고리의 다른 글
[04-01] Stateful VS Stateless (0) | 2024.12.20 |
---|---|
[04-01] Cookie (1) | 2024.12.20 |
[03-01] HTTP Cache 동작 (0) | 2024.12.18 |
[03-01] HTTP Cache (1) | 2024.12.18 |
[02-02] 서버의 구성과 트래픽 (1) | 2024.12.18 |