ElastiCache – Cache Security
- ElasticCache의 모든 캐시는 IAM 인증을 지원하지 않으므로 IAM 정책은 AWS API-수준의 보안에서만 사용하므로
캐시 생성, 캐시 제거 등에만 가능 - Redis AUTH를 사용해 Redis 클러스터 생성 시 비밀번호와 토큰을 설정할 수 있어 캐시에 들어갈 때 비밀번호를 입력하도록 함
이는 캐시를 대상으로 하는 보안 그룹 이상 수준의 보안 기능이며 또한 in-flight 암호화를 통해 SSL 보안을 지원 - Memcached는 좀 더 높은 수준의 SASL 기반 인증을 지원
- 캐시 보안은 경우 EC2 인스턴스는 자신의 자체 보안 그룹을 가지고 있고
자체 보안 그룹을 통해 Redis에 접근할 수 있어 ElastiCache를 사용해 보안 그룹 수준을 높일 수 있음
in-flight 암호화는 SSL 암호화를 가지며 인증으로 ElastiCache에서 Redis 종류의 캐시를 사용한다면 Redis AUTH 이용 가능
Patterns for ElastiCache
- ElastiCache로 데이터를 로드하는 것에는 세 가지 패턴이 존재
- Lazy Loading
모든 read 데이터가 캐시되고 데이터가 캐시 안에서 오래 있을 수 있음
ElastiCache에 캐시 히트가 있다면 애플리케이션은 캐시로부터 데이터를 가져오며
캐시 미스가 있다면 데이터베이스로부터 read하며 캐시로 write
Lazy Loading이라고 불리는 이유는 캐시 히트가 없는 경우에만 ElasticCache로 데이터를 로드하기 때문 - Write Through
DB에 write될 때마다 캐시에 데이터를 추가하거나 업데이트하여 오래된 데이터가 없도록 함 - Session Store
TTL (Time-To Live) 기능을 사용해 임시 세션 데이터를 캐시에 저장하고 세션을 만료할 수 있음
+) 컴퓨터 과학에는 캐시 무효화와 이름을 짓는 것이 아주 어려운 일이므로 캐싱은 아주 복잡한 주제
ElastiCache – Redis Use Case
- 예) 게임 순위표는 계산적으로 복잡 (게임 리더 보드 생성은 아주 복잡) 하며 어떤 게임의 1, 2, 3등이 누구인지를 알아내야 함
- Redis Sorted 세트라는 속성은 고유성과 요소 순서를 모두 보장
- 새로운 요소가 추가될 때마다 실시간으로 순위가 매겨진 다음 올바른 순서로 추가
- 그러므로 Redis 클러스터가 있다면 실시간으로 1, 2, 3등의 플레이어를 보여주는 실시간 리더 보드를 생성할 수 있으며
모든 Redis 캐시는 동일한 리더 보드를 사용할 수 있어
클라이언트가 Redis를 통해 ElastiCache와 소통할 때 레버리지, Redis, Sorted Sets를 통해 실시간 리더 보드에 접근 가능
'Cloud > AWS' 카테고리의 다른 글
[SAA] DNS란? (0) | 2022.03.09 |
---|---|
[SAA] 친숙한 포트 목록 (0) | 2022.03.09 |
[SAA] ElastiCache (0) | 2022.03.08 |
[SAA] Aurora 고급 개념 (0) | 2022.03.08 |
[SAA] Aurora 개요 (0) | 2022.03.08 |