AWS Fundamentals: ElastiCache
이번 장에서는 SAA를 준비하며 ElastiCache에 대해서 알아보도록 한다.
ElastiCache
- RDS가 관리되는 관계형 데이터베이스를 가져오는 방식과 동일하다.
- ElastiCache는 AWS에서 제공하는 완전 관리형 Redis 또는 Memcached다.
- 캐시는 매우 높은 성능과 짧은 대기 시간을 가진 인메모리 데이터베이스다.
- 읽기 집약적인 워크로드에 대한 데이터베이스의 부하를 줄이는 데 도움이 된다.
- 애플리케이션을 stateless 상태로 만드는 데 도움을 준다.
- AWS에서 OS관리/패칭, 최적화, 설정, 구성, 모니터링, 장애 복구 및 백업을 처리한다.
- ElastiCache를 사용하면 애플리케이션 코드가 많이 변경된다.
DB Cache
- 애플리케이션은 ElastiCache를 쿼리하며 사용할 수 없는 경우 RDS에서 가져와 ElastiCache에 저장한다.
- RDS의 부하를 줄이는 데 도움을 준다.
- ElastiCache에서 가장 최신 데이터만 사용할 수 있도록 하는 무효화 전략을 가지고 있어야 한다.
사용자 세션 저장소(User Session Store)
- 사용자가 모든 애플리케이션에 로그인한다.
- 애플리케이션은 ElastiCache에 세션 데이터를 저장한다.
- 애플리케이션은 다른 인스턴스가 저장한 유저 세션 데이터를 조회할 수 있다.
- 인스턴스가 데이터를 검색하고 사용자는 이미 로그인되어 있다.
Redis vs Memcached
- Redis
- 다중 가용 지역 자동 장애 조치를 지원한다.
- 읽기 전용 복제본을 확장하여 높은 고가용성을 유지할 수 있다.
- AOF 퍼시스턴스를 사용하여 데이터 내구성을 높일 수 있다.
- 백업 및 복원 기능을 제공한다.
- Memcached
- 데이터 분할을 위한 다중 노드(샤딩)를 제공한다.
- 복제를 통한 고가용성을 제공하지 않는다.
- 데이터가 비영구적이다.
- 백업 및 복원 기능을 제공하지 않는다.
- 다중-스레드 아키텍처를 제공한다.
Cache Security(캐시 보안)
- ElastiCache의 모든 캐시:
- IAM을 통한 인증을 지원하지 않는다.
- ElastiCache의 IAM 정책은 AWS API 레벨의 보안만 지원한다.
- Redis 보안:
- Redis 클러스터를 생성할 때, “비밀번호/토큰”을 설정할 수 있다.
- 이것은 보안 그룹 상위에서 작동하는 캐시에 대한 추가 보안 수준이다.
- 전송 중 암호화를 지원한다.
- Memcached 보안:
- 강화된 SASL 기반의 인증을 지원한다.
ElastiCache의 패턴
- Lazy Loading: 모든 읽기 데이터가 캐싱되고 데이터가 캐시에서 오래 지속될 수 있다.
- Write Through: DB에 기록할 때 캐시에 데이터를 추가하거나 업데이트한다.
- Session Store: 임시 세션 데이터를 캐시에 저장한다. TTL을 추가로 지원한다.
- 컴퓨터 사이언스 관점에서 캐시 무효화와 네이밍은 여전히 어려운 문제이다.
Redis Use Case
- 게임에서의 순위표는 복잡하게 계산된다.
- Redis Sorted 세트는 고유성과 요소 순서를 모두 보장한다.
- 새로운 요소가 추가될 때마다 실시간으로 순위가 매겨진 다음 정확한 순서에 추가된다.
참고 자료
'Infrastructure > Certificate' 카테고리의 다른 글
[SAA] Discussions - WhatIsTheTime.com (0) | 2022.11.16 |
---|---|
[SAA] Route 53 (0) | 2022.11.16 |
[SAA] AWS Fundamentals - Aurora (0) | 2022.11.02 |
[SAA] AWS Fundamentals - RDS (0) | 2022.11.02 |
[SAA] High Availability and Scalability: ASG (0) | 2022.11.01 |