AWS ElastiCache 이해
AWS에서 제공하는 Amazon ElastiCache를 이해해보자.
Amazon ElastiCache 개요
AWS에서의 Amazon ElastiCache에 대한 설명을 보면
Amazon ElastiCache는
클라우드에서
분산된 인-메모리 데이터 스토어 또는 캐시 환경을 손쉽게설정, 관리 및 확장
할 수 있는 웹 서비스입니다.
확장 가능
하고비용 효율적인 고성능 캐싱 솔루션
을 제공합니다. 또한 분산된 캐시 환경의배포 및 관리와 관련된 복잡성을 해소
할 수 있습니다.
인-메모리 캐시는 모든 데이터를 메모리(RAM)에만 올려놓고 사용하는 데이터베이스의 일종입니다. 즉 Amazon ElastiCache는 클라우드 환경에서
느린 디스크 기반 데이터베이스에 의존하는 것보다 더 빠른 인-메모리 데이터 스토어를 사용해 데이터 집약적 앱을 구축
하거나 기존 데이터베이스 성능을 강화
할 수 있게 해줍니다.
하지만 응답 시간은 마이크로초 대기 시간을 일관되게 유지할 수 없습니다.
Amazon ElastiCache 엔진
Amazon ElastiCache는 다음과 같은 두 가지
오픈 소스 인-메모리 엔진을 지원합니다.
- Memcached
- 널리 채택된 메모리 객체 캐싱 시스템
- ElastiCache는
Memcached와 프로토콜이 호환
되므로 기존 Memcached 환경에서 사용하는 주요 도구가 ElastiCache에서 거의 수정되지 않고 작동함 - Memcached 클러스터는 리전의 가용 영역 별로 생성 가능
클러스터 내에
노드를 추가할 수록 데이터 저장 공간이 늘어남- 스냅샷과 Read Replica를 지원하지 않음
MultiThreaded architecture
- Redis
- 빠른 오픈 소스 인-메모리 데이터 스토어 및 캐시
다양한 데이터 형식을 제공
하는 키-값(Key-Value) 데이터 저장소- 스냅샷과 Read Replica를 지원함
- 마스터 노드에 장애가 발생할 경우 자동으로 Read Replica를 마스터로 승격시키는 Failover 기능 지원
- 클러스터 구성 불가, 따라서
노드를 추가해도
전체 메모리 용량이 늘어나지 않으므로 데이터 저장 용량은 각 캐시 노드의 메모리 용량에 한함 - 캐시 노드의
메모리 용량을 넘어서는
데이터를 저장하기 위해서는 애플리케이션 레벨에서의 샤딩 구현 필요 - 한 리전 안의 여러 가용 영역에 생성 가능
- Redis용 ElastiCache는
확장 가능하고 안전한 완전관리형
서비스로서, 웹, 모바일 앱, 게임, 광고 기술 및 IoT와 같은고성능 사용 사례에 지원
하는 데 적합한 서비스 MultiThreaded architecture
가 아님
Amazon ElastiCache 기능
ElastiCache Redis/Memcached와 같은 In-Memory Key/Value 저장소
를 활용하여 세션 데이터를 관리하고 저장
할 수 있습니다.
세션 데이터는 애플리케이션 계층에서 관리
되기 때문에, 분산 캐시(distribued cache)가 사용
되어야 합니다.