티스토리 뷰

ASAC/정리용

[03-01] Proxy

hee-ya07 2024. 12. 18. 16:09

1. Proxy

: 클라이언트와 서버 사이에서 중계 역할을 하는 서버나 장비

: 사용자와 인터넷 간의 연결을 중개하며, 주로 보안, 성능 향상, 네트워크 관리 등을 목적으로 사용

  • 목적
    - 보안 : IP 숨기기 or 프록시 서버를 방화벽으로 사용(프록시 방화벽)
    - 속도(캐시) : 동일 요청 시, 저장된 Cache 반환
            => 전송 시간 절약, 외부 트래픽을 줄여 네트워크 병목 현상도 방지
    - ACL : 사이트 접근 범위 정책 정의 (Proxy Server 에 접속할 수 있는 범위를 설정하는 옵션)
    - Log / Audit : 리포트, 모니터링 (회사 내 직원의 인터넷/인트라넷 사용을 레포팅)

  • 분류: Forward Proxy | Reverse Proxy
    1. Forward Proxy
      : Client 측에 위치
      1) 클라이언트 은닉 : IP 변환을 통해 원 요청자 은닉/우회
      2) 클라이언트 접근 제어 : 특정 IP 혹은 웹 페이지에 대한 접근 금지
      3) 캐싱 : 클라이언트가 받을 응답을 중간에 임시 저장 (개인이 소비하는 입장에서)
      • 예시: ISP(Internet Service Provider)
    2. Reverse Proxy
      : Server 측에 위치, 요청에 대한 세부적 추가작업
      1) 요청 전달: URL/I Mapping (URI 기반 Routing), 로드 밸런싱 (요청 분산)
          =>웹 서버의 부하를 완화 및 고가용성 보장에 도움
      2) 요청 변환: Header 세팅( X-FORWARDED-BY)
          => 은닉된 클라이언트의 IP를 서버에게 전달
      3) 서버 은닉: 리버스 프록시 뒷단의 서버의IP는 가려짐
      4) 서버 접근제어(요청 필터): 트래픽 제어를 통해 DDoS방지
기술 설명
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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
29 30 31
글 보관함