프록시 서버(Proxy Server)
클라이언트와 서버 사이에서 데이터를 전달해주는 서버
데이터 캐싱을 목적으로 많이 사용된다
클라이언트는 빠른 응답을, 서버는 부하 감소를 얻을 수 있다.
하지만 캐시 히트가 적은 경우 거쳐야할 단계가 더 늘어나서 오히려 느려질 수 있다
포워드 프록시 서버(Forward Proxy Server)
내부 클라이언트들의 요청을 받아서 외부 서버에서 데이터를 받아와서 클라이언트에게 응답해주는 서버
- 외부에 요청을 보내는 주체는 프록시 서버이기 때문에 클라이언트의 IP와 같은 정보가 숨겨진다
- 내부에서 보내는 요청들을 프록시 서버에서 관리할 수 있다
리버스 프록시 서버(Reverse Proxy Server)
클라이언트는 서버에 요청하는 것이 아닌 프록시로 요청하게 되고, 프록시가 서버로부터 데이터를 가져오는 방식이다.
- 외부의 요청을 받는 주체는 프록시 서버이기 때문에 서버의 IP와 같은 정보가 숨겨진다
- 여러 개의 서버를 뒤에 두고 부하가 적은 서버에게 요청을 전달할 수 있다. -> 로드 밸런싱
- 들어오는 요청을 복호화하고 나가는 응답을 암호화하는 할 수 있기 때문에 서버의 부담을 줄이면서 보안성을 높일 수 있다 -> SSL
CDN(Content Delivery Network)
콘텐츠를 효율적으로 전달하기 위해 여러 노드(캐시 서버)를 가진 네트워크에 데이터를 저장하여 제공하는 시스템
마치 캐싱을 위한 여러개의 리버스 프록시 서버를 두는 것과 유사함
콘텐츠
- 디지털화 될 수 있는 모든 데이터
- 텍스트, 이미지, 오디오, 동영상, 소프트웨어, 데이터 레코드 등
장점
- 여러 캐시 서버를 여러 지역에 분산시켜서 클라이언트와 본 서버 사이의 물리적인 거리가 멀어도 빠르게 전달할 수 있다
- 본 서버에게 가해지는 부하를 분산시킬 수 있다
- 일종의 리버스 프록시이므로 본 서버의 주요 정보가 숨겨지므로 보안상에 이점이 있다
- 캐싱 및 기타 최적화를 통해 CDN은 본 서버가 제공해야 하는 데이터의 양을 줄여 호스팅 비용을 절감할 수 있다.
'기본' 카테고리의 다른 글
싱글톤 패턴(Singleton Pattern) (0) | 2023.02.16 |
---|---|
프로그래밍 언어 및 패러다임 (0) | 2023.02.12 |
의존성 주입(Dependency Injection) (0) | 2023.02.12 |
HTTP (0) | 2023.02.04 |
서버리스 아키텍쳐 (0) | 2023.02.03 |