AWS ElastiCache

조민철·2025년 3월 28일

AWS

목록 보기
13/21
post-thumbnail

AWS ElastiCache

AWS ElastiCache는 aws에서 사용할 수 있는 분산 인 메모리 데이터 스토어 또는 캐시 환경을 설정하고 관리 확장할 수 있는 서비스이다. 완전관리형이며 간편하게 캐시를 확장할 수 있고 복잡한 작업이 생략되어 처음 사용하는 사용자도 사용할 수 있다.

그래서 ElastiCache의 장점을 한번 알아보자..

  • AWS 네이티브
    • 당연히 AWS의 서비스 들과 굉장히 통합이 잘된다.
    • RDS, DynamoDB, EC2 등등
    • KMS, IAM, VPC 등 보안적인 부분도 좋다.
  • 완전 관리형
    • 사용자가 서버를 직접 운영할 필요 없다.
    • Auto Scaling, Monitoring, Auto Patch 지원
  • 고성능 & 확장성
    • 밀리 초 미만의 반응으로 응답하므로 굉장히 빠름
    • 쉬운 확장 가능
  • Cluster Mode 지원
    • Redis 를 사용하여 Sharding(수평 확장)이 가능
  • Multi-AZ
    • 자동으로 장애를 Faliover 가능
  • Global Datastore
    • 여러 리전에 복제 가능
      등등..

캐싱 아키텍처

먼저 ElastiCache를 알아보기 전에 캐싱에 대해 조금 알아보겠다.
캐시는 주로 데이터베이스에 있는 데이터 중 자주 사용하는 데이터를 캐시에 저장해놓고 쓴다. 데이터베이스에 많은 부하를 그마나 분산시킬수 있고 캐시 자체가 고성능이기 때문에 빠른 속도를 기대할 수 있다.
만약 캐시가 없을 경우에는 EC2 인스턴스는 당연히 데이터베이스에서 데이터를 읽고 쓰기를 진행한다. 하지만 캐시를 사용하게되면 EC2는 캐시에서 먼저 읽기를 시도하게 된다. 이러한 점은 DB의 부하를 줄일수 있어 효율적이다.

캐싱 전략 - Lazy Loding (레이지 로딩)


Lazy Loding 즉, 지연 로딩은 캐시를 업데이트하지 않고 DB를 업데이트한다. 하지만 캐시에 없는 데이터(캐시 미스)의 경우 나중에 캐시에 기록된다. 레이지 로딩시에는 애플리케이션에 필요한 데이터가 캐시에 로드된다. 이러한 전략은 때때로 캐시 미스 비율이 높아질 수 있다.

캐싱 전략 - Write Through (라이트 스루)

Write Through 라이트 스루는 캐시미스가 줄어드는 대신에 애플리케이션에 필요하지 않을 수 있는 데이터용 추가 스토리지가 필요할 수 있다.
두개의 캐싱 전략에는 장단점이 있기때문에 환경을 고려하여 선택해야할거같다.

캐시 관리

그래서 레이지 로딩은 캐시 미스 일어날때마다 DB에 부하가 발생하며 캐시의 의미? 가 없어지게 된다. 또한 데이터가 없으니 캐시가 비어있는 상태가 유지될 수 있다.
하지만 라이트 스루는 불필요한 데이터가 캐시에 점유하여 비용적인 문제가 있다.
그래서 이러한 단점들을 TTL 값을 추가하여 데이터를 최신 상태로 유지할 수 있으며 여분의 데이터로 인해 캐시가 가득 차는 현상을 막을 수 있다.

TTL은 키가 만료할 때까지 시간을 지정하는 정수 값이다. 이러한 TTL을 사용하여 다음과 같은 이점이 있다.

  • 데이터 일관성 유지
  • 메모리 관리 최적화
  • 캐시 미스 최적화
  • 캐시 교체 정책과 시너지 효과

캐시 데이터를 최신 상태로 유지하고 DB 부하를 줄이는 등 많은 이점이 존재한다.

ElastiCache for Memcached vs Redis

그래서 다시 AWS으로 돌아오면 ElastiCache는 총 2가지의 엔진은 지원한다.

  • Redis
  • Memcached

Memcached를 사용하면 데이터 집약적 앱에 대해 확장 가능한 캐싱 티어를 구축할 수 있다. 주로 빠른 응답 시간을 필요한 애플리케이션을 지원한다.또한 다중 스레딩을 사용할 수 있다.

Redis는 밀리초 미만 단위로 지연 시간을 제공하는 고성능 캐시이다.

profile
기록의 힘은 대단하다

0개의 댓글