article thumbnail image
Published 2023. 5. 24. 22:41

Amazon ElastiCache

  • RDS와 동일한 방식으로 관계형 DB를 관리할 수 있다
  • Redis, Memcached같은 캐시 기술을 관리할 수 있다
  • 읽기 집약적인 워크로드의 부하를 줄이는데 도움이 된다
  • RDS와 유사하기 떄문에 AWS가 RDS와 비슷하게 관리한다
  • 엘라스틱 캐시를 사용할 때 에플리케이션에 관해 몇 가지 어려운 코드 변경을 요청할수도 있다
    • 캐시를 쿼리하도록 변경해야함

 

Amazon ElastiCache를 사용하기 위한 아키텍쳐

DB Cache

  • 애플리케이션은 일래스틱 캐시로 쿼리한다 → 이미 생성되어 저장됐는지 확인하고 저장됐다면 엘라스틱 캐시에 있는 데이터를 가져옴 ( Cache hit ) 없다면 RDS에서 데이터를 가져온다 (Cache miss ) 이후 다시 캐시에 기록
  • RDS의 부담을 줄이지만 캐시 전략과 최근 데이터인지 확인해야 한다

 

User Session Store

  • 세션 데이터를 엘라스틱 캐시에 저장
  • 이후 애플리케이션의 다른 인스턴스로 리디렉션 되면 캐시를 확인
    • 계속 로그인 상태를 유지할 수 있다
  • 애플리케이션을 무상태로 만들 수 있다?

 

ElastiCache - Redis vs Memcached

가용성과 백업, 복원의 차이가 크다

 

Redis → RDS와 비슷

  • 자동 장애 조치로 다중 AZ를 수행하는 기술이다.
  • 읽기 전용 복제본은 나중에 읽기 스케일링에 사용되어 가용성이 높다
  • 지속성 → 데이터 내구성도 좋다
  • 백업과 복원 기능

 

Memcached

  • 데이터 분할에 다중 노드 → sharding이라고 한다
  • 낮은 가용성과 복제도 없음
  • 지속적인 캐시도 없고 백업과 복원도 없다
  • 멀티 스레드 아키텍쳐

 

ElastiCache 실습

그냥 만들어만 봤다. 연결하기엔 작업이 필요해서 강의 자체에서 패스됨

 

ElastiCache - Cache Security

  • 모든 캐시는 IAM 인증을 지원하지 않는다.
  • IAM 정책은 AWS API 수준 보안에서만 가능하다
    • 캐시 내의 모든 작업은 IAM 사용하지 않는다
  • Redis AUTH
    • Redis 클러스터를 만들 떄 비밀번호 등을 설정 가능 → 추가적인 수준의 보안임
    • SSL 보안을 지원
  • Memcached
    • 더 높은 SASL 기반 인증을 지원

 

ElastiCache 패턴

  • Lazy Loading: 모든 읽기 데이터가 캐싱된다. 데이터는 캐시에서 보관될 때 stale한 상태가 될 수 있음 → 이전에 봤던 DB 캐싱 방식이다
  • Write Through: 데이터 write 작업을 할 때마다 캐시에 데이터를 추가하거나 업데이트 하는 것
  • Session Store: 앞서 유저 정보 저장소처럼 쓸 수 있고 TTL을 통해 만료 가능

캐시는 매우 어려운 부분이라 개요만 살펴보면 된다

 

ElastiCache - Redis 사용 사례 ( 시험에 나올 수 있음 )

  • 게임 리더보드 생성
  • Redis Sorted sets라는 고유성과 요소 순서를 모두 보장하는 기능이 있다
  • 요소가 추가 될 때마다 실시간으로 순위가 매겨진 다음 올바른 순서로 추가됨
  • 따라서 리더보드 기능을 프로그래밍 하지 않고도 클라이언트가 ElastiCache - Redis에 접근하여 실시간 리더보드를 알 수 있다

'TIL > AWS' 카테고리의 다른 글

AWS Route 53  (0) 2023.05.25
Route 53을 이해하기 위한 DNS의 개념  (0) 2023.05.25
Amazon RDS Proxy  (0) 2023.05.24
RDS & Aurora Security  (0) 2023.05.24
AWS RDS 백업  (0) 2023.05.24
복사했습니다!