컴퓨터 메모리에는 캐시와 램과 디스크 등이 있습니다. 캐시는 CPU에 가장 가까운 메모리로 작고 빠르고 비싸며, 디스크는 CPU와 가장 멀고 느리지만 대용량을 저장할 수 있죠. 램은 중간 정도입니다. 캐시 서버는 컴퓨터의 캐시 메모리처럼 가까우면 빠르다는 장점을 활용한 서버인데요. 더 자세히 알아보겠습니다.
캐시 서버란?
캐시 서버는 사용자와 가까운 곳에 데이터를 임시로 저장해서 빠르게 서비스 할 수 있는 프록시 서버입니다. 실제 서버가 멀리 있다면 매번 큰 데이터를 요청할 때마다 직접 가져오기엔 무리가 있겠죠? 회선 사용료 또한 엄청 올라갈 것입니다. 이러한 문제들을 해결하기 위해서 캐시 서버를 이용하는 것이죠.
한 예로 유튜브를 들 수 있는데요. 유튜브 서버는 미국에 설치되어 있는데요. 우리가 영상을 볼 때마다 미국 서버에서 영상을 가져오게 되면 통신사의 해외 인터넷 회선을 유튜브가 다 사용하게 될 것입니다. 통신사 측에서도 막대한 사용료를 부담하게 되죠. 따라서 구글 글로벌 캐시(GGC)를 한국에 설치해서 사람들이 좋아하고 자주 보는 영상들을 임시로 저장해놓고, 사용자들이 볼 때 버퍼링 없이 영상을 제공할 수 있게 됩니다.
다른 예로는 넷플릭스도 있습니다. 오픈 커넥트라는 이름을 가진 캐시 서버를 활용하면 버퍼링 없이 영상을 가져올 수 있습니다. 이 캐시 서버를 사용하는 통신사들을 이용하면 되는데요. LG U+, KT, LG 헬로비전, 딜라이브 등이 오픈 커넥트 캐시 서버를 이용하고 있습니다.
웹 캐시 서버
꼭 외국 서버가 아니더라도 이러한 캐싱 전략을 사용하는 곳이 있습니다. 바로 웹 캐시 서버인데요. 로딩 속도를 빠르게 하거나 과도한 트래픽이 발생했을 시 병목 현상을 막아주는 역할을 합니다.
웹 캐시 서버는 임시 저장소로 클라이언트와 실제 서버 사이에서 동작하며, 웹 캐시 서버에 있는 내용을 클라이언트가 요청하면 실제 서버까지 요청이 전달되는 게 아니라 가지고 있는 데이터를 직접 반환합니다. 만약 없는 데이터를 요청했다면, 실제 서버에서 데이터를 가져오면서 웹 캐시 서버에도 저장하는 것이죠.
다양한 캐싱 전략
따라서 다양한 캐싱 전략이 존재합니다.
In-Memory Caching의 경우 Java ehcache나 Redis cache에서 사용하는 방식인데요. 메모리 내에 캐시를 저장해두어 데이터베이스를 읽는 부담을 덜고 빠른 속도를 가진 고급 캐싱입니다.
Nginx와 같은 리버스 프록스를 이용한 캐싱과 클라이언트 측에 저장되는 브라우저 캐싱도 있죠. 만약 웹 사이트가 업데이트 되었다면 강력 새로고침(Shift + F5)를 사용해야 업데이트 된 페이지를 볼 수 있습니다.
CDN(Content Distribution Networks)
CDN도 캐싱 전략 중 하나라고 볼 수 있는데요. 데이터 센터를 전세계에 설치해두고 사용자가 접속한 위치에 따라서 가장 가까운 곳의 캐시 서버에서 데이터를 가져오는 전략입니다. 초기 CDN은 땅이 넓은 미국에서 전송 속도를 높이고 에러를 줄이기 위해서 만들어졌습니다. 지금도 마찬가지로 안정성과 속도뿐만 아니라 유지 비용 면에서도 트래픽을 줄일 수 있기 때문에 좋은 전략입니다.
CDN을 서비스하는 기업들도 많습니다. Cloudflare가 가장 유명하고 많이 쓰이며, Akamai, AWS의 CloudFront 등이 있고, 국내에는 SK브로드밴드, KT, LG유플러스, 네이버 클라우드 등이 있습니다.
관심 있을만한 글
'궁금증' 카테고리의 다른 글
코로케이션이란? 서비스 형태와 장단점 (0) | 2024.05.05 |
---|---|
프록시(proxy) 서버란? 무료 프록시 사이트 추천 (0) | 2024.05.04 |
무서운 식중독, 볶음밥 증후군이란? (0) | 2024.05.02 |
선크림이 비타민 D 합성을 방해할까? (0) | 2024.05.01 |
자동차 리스 할부 무슨 차이가 있을까? (0) | 2024.04.30 |
댓글