🔗 참고자료

  • [성공과 실패를 결정하는 1% 의 네트워크 원리] 책 챕터 05

 

 

✍ 공부하게 된 계기

부트캠프를 진행하면서 WAS의 부하를 분산하기 위해 DB서버, 웹서버, 캐시서버를 나눠서 환경을 구축했었다.

이 부분에서 가장 신기했던 것은 캐시서버 환경을 구축하는 것이였다. 비록 WAS에 캐시를 Redis 환경을 직접 구축하기는 했지만, 클라이언트들이 자주 방문하는  첫 페이지의 데이터를 빠르게 조회 할 수 있었다.

고맙게도 [성공과 실패를 결정하는 1%의 네트워크 원리]에 이 내용에 대해 자세히 나와있었다.

그때의 기억을 살리면서 글로 적고 공부를 하려고 한다.

 

 

 

1. 캐시 서버의 이용

  • 여러 대의 웹 서버를 설치하는, 즉 같은 기능을 가진 여러 대의 서버를 설치하는 것이 아니라
    데이터베이스 서버와 웨베 서버 같은 역할에 따라 나누는 방법이다.
    이러한 역할별 분산 처리 방법 중의 하나가 캐시 서버를 사용하는 방법이다.
  • 캐시 서버는 프록시라는 구조를 사용하여 데이터를 캐시에 저장하는 서버이다.
  • 프록시는 웹 서버와 클라이언트 사이에 들어가서 웹 서버에 대한 액세스 동작을 중개하는 역할을 한다.
  • 액세스 동작을 중개할 때 웹 서버에서 받은 데이터를 디스크에 저장해 두고 웹 서버를 대신하여 데이터를 클라이언트에 반송하는 기능을 가지고 있다. 이것을 캐시라고 부른다.

 

 

캐시(cache) 서버를 사용하는 이유

  • 웹 서버는 URL을 점검, 액세스 권한 점검, 페이지 안에 데이터를 내장하는 등의 처리를 내부에서 실행하기 위해 페이지의 데이터를 클라이언트에 송신할 때 다소 시간이 걸린다.
    한편 캐시 서버쪽은 웹 서버에서 받아 보존해 둔 데이터를 읽어서 클라이언트에 송신만 하므로 웹 서버보다  빨리 데이터를 송신할 수 있다.

 

캐시 서버의 장, 단점

  • 단점
    - 캐시에 데이터를 저장한 후 웹 서버측에서 데이터가 변경되면 캐시의 데이터를 사용할 수 없습니다.
    따라서 언제든지 캐시의 데이터를 이용할 수 있는 것은 아닙니다.
    - CGI 애플리케이션 등이 출력하는 페이지 데이터도 내용이 매번 달라지므로 캐시를 이용할 수 없습니다.
  • 장점
    - 액세스 동작의 일정부분은 웹 서버를 번거롭게 하지 않고 캐시 서버에서 처리할 수 있습니다.
    얼마라도 캐시 서버에서 액세스 동작을 고속화 할 수 있으면 전체 성능이 향상된다고 생각하는 것입니다.
    - 캐시 서버에서 리퀘스트를 처리하면 그만큼 웹 서버의 부하가 줄면서 웹 서버의 처리 시간을 단축할 수 있습니다.

 

 

포워드 프록시

2. 포워드 프록시

  • 클라이언트측에 캐시 서버를 두는 방법.
  • 프록시라는 구조는 원래 클라이언트측에 두는 방법에서 시작되었다.
  • 캐시를 이용한다는 목적 외에도 방화벽을 실현한다는 중요한 목적도 있었다.
    - 프록시에서 리퀘스트 메시지를 일단 받아서 인터넷을 향해 전송하면 필요한 것을 통과시킬 수 있다는 개념이다.
    - 프록시는 리퀘스트의 내용을 조사한 후 전송하므로 리퀘스트의 내용에 따라 액세스가 가능한지 판단할 수 있다.
    즉 위험한 사이트나 작업과 관계 없는 사이트에 대한 액세스는 금지한다는 액세스 제한을 마련할 수 있다.
  • 브라우저에 대한 설정이 꼭 필요합니다.
    - 브라우저의 설정이 번거롭고 잘못 설정할 경우에는 브라우저가 제대로 작동하지 않는 장애의 원인이 되기도 합니다.

 

 

 

리버스 프록시

3. 리버스 프록시

  • 브라우저에 프록시를 설정하지 않아도 사용할 수 있도록 한 것.
    - 즉 리퀘스트 메시지의 URI에 쓰여있는 디렉토리명과 전송 대상의 웹 서버를 대응시켜서 URI 부분에 http://...라고
    쓰여있지 않은 보통의 리퀘스트 메시지를 전송할 수 있도록 했다.
  • 서버측에 설치하는 캐시 서버

 

 

 

 

4. 트랜스페어런트 프록시

  • 캐시 서버에서 전송 대상을 판단하는 방법, 즉 리퀘스트 메시지에서 패킷의 헤더를 조사하는 방법이다.
  • 패킷의 맨 앞에 있는 IP 헤더에는 수신처 IP 주소가 기록되어 있으므로 이것을 조사하면 액세스 대상 웹 서버가 어디에 있는지 알 수 잇다.
  • 보통의 리퀘스트 메시지를 전송할 수 있으므로 포워드 프록시처럼 브라우저에 설정할 필요가 없다.
  • 전송 대상을 캐시 서버에 설정할 필요도 없고, 어느 웹 서버에서나 전송할 수 있다.
  • 포워드 프록시와 리버스 프록시의 좋은 점만 모은 형태의 편리한 구조

 

 

 

 

 

 

 

반응형

'IT > 네트워크' 카테고리의 다른 글

웹 스토리지 & 쿠키  (0) 2022.04.27
웹서버(Web Server)와 WAS의 차이  (0) 2022.03.29
[HTTP] Requset, Response 메시지의 구조  (0) 2022.01.09
네트워크의 기본은 TCP/IP  (0) 2021.12.21
CORS란?  (0) 2021.12.12

+ Recent posts