ElastiCache
인메모리 데이터 저장소 및 캐싱 서비스
- 캐시 > 높은 성능과 낮은 지연 시간을 가진 인메모리 데이터베이스
- 읽기 집중적인 작업 부하를 줄이는데 유용
- 일반적인 쿼리는 캐시에 저장 > DB가 매번 쿼리되지 않도록 하며, 캐시만으로 쿼리의 결과 검색 가능
- 애플리케이션의 상태를 ElastiCache에 저장하여 애플리케이션을 상태 비저장으로 만들 수 있음
- AWS가 운영 체제의 유지 관리, 패치, 최적화, 설정, 구성, 모니터링, 장애 복구 및 백업을 담당
- 단, ElastiCache 사용 시 애플리케이션 코드에 상당한 변경 필요
- 초고속 데이터 액세스가 필요할 때 적합
ElastiCache Solution Architecture 1) DB Cache
예를 들어, ElastiCache와 RDS DB, 애플리케이션이 있다고 가정할 때
1. 애플리케이션은 쿼리가 이미 수행되었는지 확인하기 위해 ElastiCache를 조회
- 이미 수행되어 ElastiCache에 저장되어 있는지 확인
- 만약 저장된 쿼리가 있다면(= 캐시 히트(cache hit)) ElastiCache은 애플리케이션에 바로 응답
- 위의 경우 DB에 쿼리 조회 생략
2. 캐시가 없는 경우(= 캐시 미스(cache miss)) 애플리케이션은 RDS DB에서 직접 데이터를 가져옴
3. 동일한 쿼리가 수행될 다른 애플리케이션이나 인스턴스를 위해 가져온 데이터를 캐시에 저장
하지만, 사용자가 최신 데이터를 사용할 수 있도록 캐시 무효화 전략 필요
ElastiCache Solution Architecture 2) User Session Store
애플리케이션을 상태 비저장으로 만들기 위해 사용자 세션을 저장
1.사용자가 애플리케이션에 로그인하면 애플리케이션이 세션 데이터를 ElastiCache에 기록
2. 사용자가 애플리케이션의 다른 인스턴스로 리다이렉션되면 애플리케이션은 ElastiCache에서 세션을 직접 가져올 수 있음
3. 사용자는 로그인 상태 유지
ElastiCache 엔진 유형
- Redis
- Multi AZ 지원 > 자동 장애 조치 가능
- Read Replica 생성 > 읽기 작업 확장, 고가용성
- 백업 및 복원 기능 제공 (오픈 소스 버전)
- 집합과 정렬된 집학 지원
- 리더 보드 생성에 유용
- Memcached
- 여로 노드를 생성하여 데이터를 분할 > 분산 캐시 구조로 높은 확장성
- 고가용성 X, 복제 X
- 백업 및 복원 기능 X (서버리스 버전에는 있음)
- 멀티스레드 아키텍처
ElastiCache Security
- Redis에서만 IAM 인증 지원
- 그 외에는 사용자 이름과 비밀번호 사용
- IAM 정책을 정의할 경우 AWS API 수준 보안에만 사용됨
- Redis AUTH
- Redis 내 보안을 통해 비밀번호와 토큰 설정 가능
- Redis 클러스터 생성 시 캐시에 추가 보안 수준 제공 > 보안 그룹 추가
- SSL 전송 중 암호화 지원
- Memcached
- SASL 기반 승인 제공
데이터 로드 패턴 in ElastiCache
- Lazy Loading(지연 로딩)
- 모든 데이터가 캐시되고 데이터가 캐시에서 지체될 수 있음
- 캐시히트의 경우 캐시에서 데이터를 가져옴
- 캐시 미스의 경우 DB에서 읽고 씀
- Write Through
- DB에 데이터가 기록될 때마다 캐시에 데이터를 추가 또는 업데이트
- Session Store
- 유지 시간 기능을 사용해 세션 만료 가능
ElastiCache - Redis 사용 사례
- 📌 게이밍 리더보드 만들기
- 정렬된 셋
- 고유성과 요소 순서를 모두 보장
- 요소가 추가될 때마다, 실시간으로 순위를 매긴 다음 올바른 순서로 추가됨
- Redis 클러스가 있는 경우 실시간 리더보드 생성 가능
- 모든 Redis 캐시는 동일한 리더보드를 사용
- 즉, 클라이언트가 ElastiCache와 통신할 때 정렬된 셋과 Redis를 활용하여 실시간 리더 보드에 액세스하여
해당 기능을 프로그래밍할 필요가 없음
- 정렬된 셋
'개발 공부 > AWS' 카테고리의 다른 글
[AWS] SAA 공부 (8)-1 Route 53 - 라우팅 정책 (0) | 2025.03.28 |
---|---|
[AWS] SAA 공부 (8) Route 53 (0) | 2025.03.28 |
[AWS] SAA 공부 (6)-2 RDS & Aurora - Backup (0) | 2025.03.25 |
[AWS] SAA 공부 (6)-1 RDS - Amazon Aurora (0) | 2025.03.25 |
[AWS] SAA 공부 (6) RDS (Relational Database Service) (0) | 2025.03.25 |