TIL/AWS
Amazon ElastiCache
초집중
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에 접근하여 실시간 리더보드를 알 수 있다