AWS로 시작하는 인프라 구축의 정석 리뷰6(12장 캐시서버 준비하기)

신창호·2023년 8월 8일
0

aws책리뷰

목록 보기
6/8

💰 캐시서버

처리에 시간이 걸리는 결과 데이터를 저장해두고, 다음에 같은 처리를 수행할 때는 저장된 결과 데이터를 사용해 결과를 빠르게 반환하는 시스템을 말한다.

캐시서버를 사용하는 상황 예시

  • 복잡한 SQL을 이용해 얻은 데이터베이스 검색 할 때
  • 애플리케이션 외부 서비스로의 문의 등을 통해 얻을 수 있는 결과을 활용할 때

캐시 시스템

  • 1 : 서버가 사용자로부터 요청을 받은 상태(아직 캐시되지 않음)
  • 2 : 시간이 걸리는 처리를 호출 하고
  • 3 : 2을 처리하여 데이터를 받아옴
  • 4 : 데이터를 이용자에게 반환
  • 5, 6 : 이때 캐시에 저장하여, 다음 요청에는 시간이 걸리는 처리를 호출하지않고 바로 반환 가능

캐시 사용시 주의점

두가지 포인트에 주의 해야한다.

시간이 걸리는 처리 결과 데이터가 캐시 데이터와 어긋날 가능성

  • 예를 들어 현재 날씨 정보를 반환하는 서비스를 이용하는 경우,
    • 캐시에 저장되는 데이터는 처리 시점의 데이터이다.
    • 즉, 아침날씨 처리한 데이터가 캐시처리되어 버리면 점심날씨 데이터와 어긋날 수 있다.
  • 이 점을 고려하여 주기적으로 갱신하는 처리가 필요하다.

서버에 캐시 데이터 저장 영역이 필요

  • 지나치게 많은 데이터를 캐시에 저장하면 서버자체의 부하가 높아지고, 처리가 지연될 수 있다.
  • 이러한 문제를 해결하기 위해 보통 유효기간을 설정한다. 유효기간이 지나면 새로 데이터를 얻는다.

레디스와 멤캐시드

일래스틱캐시

기존 캐시서버 설치

  • 레디스와 멤케시드는 모두 미들웨어로 제공되기 때문에, 서버상 환경에 같이 설치해야되기 때문에
  • EC2 안에 직접 설치하여 사용해야 작동 시킬수 있다.
    • 데이터베이스를 설치했을때와 마찬가지로 운용이나 비용 측면에서 문제가 발생할 수 있다.

AWS 캐시서버

  • AWS는 일래스틱캐시라는 매니지드 서비스를 제공한다.
  • 일래스틱캐시는 레디스 및 멤케시드를 이미 적용한 환경이다.
  • 덕분에 AWS이용자는 이용할 캐시의 구현을 선택하기만 하면 캐시 서버를 구축할 수 있다.



일래스틱캐시 계층 시스템

  • 기본적으로 임의의 키에 대해 캐시된 데이터를 반환하는 간단한 키/값 시스템을 제공한다.
  • 내부적으론 다루는 데이터양이나 유형에 따라 성능을 높이는 구성을 제공한다.
요소별명설명
노드-최소 단위, 실제 데이터는 노드에 저장
샤드노드 그룹노드를 묶은 그룹, 하나의 프라이머리 노드와 여러 복제 노드로 구성
클러스터복제 그룹샤드를 묶은 그룹, 여러 샤드로 구성

노드

  • 일래스틱캐시의 최소 단위
  • 캐시된 데이터가 실제로 저장되는 영역
  • 노드별로 캐시엔진(레디스/멤케시드), 시스템, 용량 등을 설정할 수 있다.

샤드

  • 1~6개의 노드로 구성
    • 이때 노드는 하나의 프라이머리 노드, 여러 복제 노드로 구성
  • 프라이머리 노드
    • 데이터 갱신과 참조를 수행한다.
  • 복제 노드
    • 프라이머리 노드에 수행한 업데이트 내용이 복제되어 동일한 상태가 유지된다.
    • 또한, 데이터 참조도 수행됨
    • 프라이머리 노드에 장애가 발생했을 때도 복제 노드를 계속 참조할 수 있으므로 내결함성이 향상한다.

클러스터

  • 클러스터는 여러 샤드로 구성된다.
  • 클러스터를 이용해 일래스틱 캐시를 구성하면 샤드의 내용이 공유된다.
  • 멀티 AZ기능을 이용하면 여러 가용 영역으로 분산할 수도 있다.
    • 한 가용 영역에서 장애가 발생했을 때는 짧은 시간 내에 다른 가용 영역으로 페일오버를 수행한다.
    • 페일오버 : 이용 중인 환경이 이용 불가능한 상태가 되었을 때 미리 준비한 대체 환경으로 자동 전환되는 시스템
  • 내결함성 및 읽기 성능을 향상 시킬 수 있다.(단 비용증가할 수 있다.)

업로드중..

profile
한단계씩 올라가는 개발자

0개의 댓글