
💰 캐시서버
처리에 시간이 걸리는 결과 데이터를 저장해두고, 다음에 같은 처리를 수행할 때는 저장된 결과 데이터를 사용해 결과를 빠르게 반환하는 시스템을 말한다.
캐시서버를 사용하는 상황 예시
- 복잡한 SQL을 이용해 얻은 데이터베이스 검색 할 때
- 애플리케이션 외부 서비스로의 문의 등을 통해 얻을 수 있는 결과을 활용할 때
캐시 시스템

1
: 서버가 사용자로부터 요청을 받은 상태(아직 캐시되지 않음)
2
: 시간이 걸리는 처리를 호출 하고
3
: 2
을 처리하여 데이터를 받아옴
4
: 데이터를 이용자에게 반환
5
, 6
: 이때 캐시에 저장하여, 다음 요청에는 시간이 걸리는 처리를 호출하지않고 바로 반환 가능
캐시 사용시 주의점
두가지 포인트에 주의 해야한다.
시간이 걸리는 처리 결과 데이터가 캐시 데이터와 어긋날 가능성
- 예를 들어 현재 날씨 정보를 반환하는 서비스를 이용하는 경우,
- 캐시에 저장되는 데이터는 처리 시점의 데이터이다.
- 즉, 아침날씨 처리한 데이터가 캐시처리되어 버리면 점심날씨 데이터와 어긋날 수 있다.
- 이 점을 고려하여 주기적으로 갱신하는 처리가 필요하다.
서버에 캐시 데이터 저장 영역이 필요
- 지나치게 많은 데이터를 캐시에 저장하면 서버자체의 부하가 높아지고, 처리가 지연될 수 있다.
- 이러한 문제를 해결하기 위해 보통 유효기간을 설정한다. 유효기간이 지나면 새로 데이터를 얻는다.
레디스와 멤캐시드
일래스틱캐시
기존 캐시서버 설치
- 레디스와 멤케시드는 모두 미들웨어로 제공되기 때문에, 서버상 환경에 같이 설치해야되기 때문에
- EC2 안에 직접 설치하여 사용해야 작동 시킬수 있다.
- 데이터베이스를 설치했을때와 마찬가지로 운용이나 비용 측면에서 문제가 발생할 수 있다.
AWS 캐시서버
- AWS는 일래스틱캐시라는 매니지드 서비스를 제공한다.
- 일래스틱캐시는 레디스 및 멤케시드를 이미 적용한 환경이다.
- 덕분에 AWS이용자는 이용할 캐시의 구현을 선택하기만 하면 캐시 서버를 구축할 수 있다.
일래스틱캐시 계층 시스템

- 기본적으로 임의의 키에 대해 캐시된 데이터를 반환하는 간단한 키/값 시스템을 제공한다.
- 내부적으론 다루는 데이터양이나 유형에 따라 성능을 높이는 구성을 제공한다.
요소 | 별명 | 설명 |
---|
노드 | - | 최소 단위, 실제 데이터는 노드에 저장 |
샤드 | 노드 그룹 | 노드를 묶은 그룹, 하나의 프라이머리 노드와 여러 복제 노드로 구성 |
클러스터 | 복제 그룹 | 샤드를 묶은 그룹, 여러 샤드로 구성 |
노드
- 일래스틱캐시의 최소 단위
- 캐시된 데이터가 실제로 저장되는 영역
- 노드별로 캐시엔진(레디스/멤케시드), 시스템, 용량 등을 설정할 수 있다.
샤드
- 1~6개의 노드로 구성
- 이때 노드는 하나의 프라이머리 노드, 여러 복제 노드로 구성
- 프라이머리 노드
- 복제 노드
- 프라이머리 노드에 수행한 업데이트 내용이 복제되어 동일한 상태가 유지된다.
- 또한, 데이터 참조도 수행됨
- 프라이머리 노드에 장애가 발생했을 때도 복제 노드를 계속 참조할 수 있으므로 내결함성이 향상한다.
클러스터
- 클러스터는 여러 샤드로 구성된다.
- 클러스터를 이용해 일래스틱 캐시를 구성하면 샤드의 내용이 공유된다.
- 멀티 AZ기능을 이용하면 여러 가용 영역으로 분산할 수도 있다.
- 한 가용 영역에서 장애가 발생했을 때는 짧은 시간 내에 다른 가용 영역으로 페일오버를 수행한다.
- 페일오버 : 이용 중인 환경이 이용 불가능한 상태가 되었을 때 미리 준비한 대체 환경으로 자동 전환되는 시스템
- 내결함성 및 읽기 성능을 향상 시킬 수 있다.(단 비용증가할 수 있다.)
![업로드중..]()