본문 바로가기
컴퓨터공학/네트워크

[네트워크] 프록시와 로드밸런싱

by 독서왕뼝아리 2023. 9. 11.

Proxy

Proxy의 사전적인 의미는 위임장, 대리인

클라이언트와 서버 사이에 중계를 하는 역할

패킷 필터링, 캐싱, 보안, 우회 등의 이유로 사용된다.

프록시 서버는 거쳐가는 요청과 응답을 확인할 수 있다

Forward Proxy

  • 클라이언트와 가까운 프록시

클라이언트가 요청을 보내면 직접 요청하는 것이 아니라 프록시 서버를 거쳐 요청을 보내게 됨

대부분 캐싱 기능이 있음

얻다 쓰나요?

  • 정부, 학교 등 접속을 제한해야 하는 곳 (음란물, 도박 사이트 등등)
  • 클라이언트의 정보를 숨겨야 할 때 ip를 우회할 수 있음(클라이언트 익명성)
  • 클라이언트 단의 캐싱

 

Reverse Proxy

  • 서버와 가까운 프록시

반대로 서버에서 직접 반환하는 게 아닌 프록시를 거쳐 응답을 보냄

cloudfare, akamai, CDN도 리버스 프록시로 동작하는 캐시 서버

얻다 쓰나요?

  • 보안 (서버 익명성)
  • ⭐로드밸런싱⭐
  • 캐시
  • 속도와 안정성
  • 하드웨어 가속기
  • 신뢰성 : WAS 유연하게 확장 가능

Load Balancing

멀티 서버 환경에서 필요한 게 로드밸런서

서버의 건강을 체크 하며 workload를 분산

왜 쓰는데요? 그냥 성능 높이면 되잖아요

단일 서버로 운용한다면 요청이 많아질수록 하드웨어 성능을 올립니다 (scale up)

하지만 하드웨어적으로 성능을 높이는 것에도 한계가 있음

무수한 연결 요청에 서버가 터져버리겠죠?

 

종류

L2, L3 로드밸런서도 존재하지만 우리(솦개발자)는 크게 신경쓰지 않아도 됨

  • L2 : MAC주소 기반 로드밸런싱, 라우팅 불가능
  • L3 : IP주소를 바탕으로 로드밸런싱

L4

포트 기반 로드밸런싱 수행

주로 RR방식으로 사용

패킷 레벨에서만 로드를 분산하기 때문에 빠르고 효율이 좋음

데이터를 복호화할 필요가 없어 안전함

저렴

 

상세한 라우팅 불가능

가변 IP라면 연속적인 서비스 제공 어려움

 

L7

유저 리퀘스트 단에서 로드밸런싱 수행

naver.com/blog naver.com/news 같이 uri로 분산 처리

섬세한 라우팅 처리

 

아아아주 비쌈

데이터 내용을 복호화해야 하기 때문에 비용 듦

클라이언트와 인증서를 공유해야 하기 때문에 로드밸런서를 공격해 클라이언트의 데이터를 접근할 수 있음