연장챙겨

캐시 서버 본문

세미

캐시 서버

계속까먹어 2022. 6. 29. 19:29

캐시란 데이터의 임시 저장소라는 의미이다

임시라는 뜻을 보면 알겠지만 휘발성인 저장소이다

클립보드라는 느낌? 아님말고

 

이걸 갑자기 사용하려는 이유가 무엇이냐

만약 변화가 많이 없는 데이터를 미리 가져다놓고 그것으로 바로 대응한다면

빠른 응답속도와 더불어 WAS든 DB든 과부화가 덜 가는 장점이 있다

실시간성(정합성)을 포기하고 성능을 챙긴다는 면에서 적당히 사용하면 너무 좋다라는 의견이다

당장에 내가 할 일을 뻐꾸기 친구가 대신해준다는데 누가 싫어하겠나

 

그래서 캐시의 종류가 다양하지만 가장 많이 알아본 두가지를 알아보자 물론 내가 사용할거라서

 

DB데이터를 미리 가져다놓고 사용하는 In-Memory

이미지, 동영상 등을 미리 가져다놓고 응답해주는 CDN서버

 

CDN서버를 간단하게 말하자면 이번엔 친구가 옷이 잘팔려 글로벌하게 서비스를 하고싶다고 한다 하지만 쇼핑몰이라서

고화질 이미지가 잔뜩 들어가있다 그렇다면 데이터가 커서 제때 화면에 그려주지 못하는 상황이 발생하여

외국친구들이 화가 잔뜩날거 같다 거긴 원래 인터넷이 느려서 상관없을 수도 있는데 난 아니다

그래서 일정 거리 마다 혹은 특정 지점에 CDN을 구축하여 보다 빠르게 응답을 해줄 수 있는 역할을 해준다

보통 캐시기능이 있는 nginX에 내가 서비스하는 이미지를 가지고 있는 SFTP(파일서버)를 연결해줘서 캐싱한다

서버 만드는거야 그냥 만들지만 CDN을 제대로 활용하려면 GSLB을 통해서 요청지에서 가장 최적의 서버가 어디인지

판별하여 로드밸런싱을 할 수 있다고 하는데  DNS도 모르는 상황에서 설명하기엔 서로 민망한 부분이라

여기까지만 하고 추후 이해하게되면 그에 맞도록 글 수정을 하겠다

 

심플하게 설명하자면 이걸 직접 구축하려고 한다면 서버가 한대 더 필요하다

메인서버가 바쁘니까 쉬게하려고 만드는건데 도커에 올린다고 무슨 이점이 있냐는 거다 같은 IP인데

나는 기존에 구매한 데스크탑 하나만 가지고 사용할 예정이라서 AWS에 내가 CDN을 구축한다고 하여도

바로 내옆에 서버가 있는데 이게 의미가 있나 싶기도 하고 정확한 테스트도 불가능하다

캐시기능정도는 하겠지 그리고 아마존 유료라서 좀 그래

 

세션스토리지에 관련해서 

In-Memory는 내일 정리하고 

 

이런 이유로 CDN은 구축불가능이라고 말하고 싶고

대신 nginX에 캐시기능을 사용할 예정이니 신경안써도 된다

기존에 마리아DB를 선택한 이유도 memoryDB사용이 가능해서이다

이것으로 In-Memory 기능도 Redis나 H2대신 사용 가능하니 기존것만 가지고

좀더 디테일하게 컨트롤한다는 컨셉으로 잡자

 

 

결론 : 이미지캐시는 nginX 인메모리는 MariaDB