-
[ AWS ] ElastiCache 란? (feat. Redis / Memcached)AWS/SAA 2023. 9. 7. 14:21
AWS ElastiCache는 AWS에서 제공하는 관리형 인메모리 캐싱 서비스입니다.
인 메모리 데이터 스토어는 서버의 주기억장치(메모리)에 데이터를 저장해 SSD나 HDD 같은 보조 기억 장치에 데이터를 저장하는 것보다 고속으로 데이터를 읽고 쓸 수 있게 해줍니다. 일반적으로 읽기/쓰기 속도를 올리기 위해 메모리를 활용하는 '캐싱'과 동일하게 사용되기 때문에 '인 메모리 캐싱'이라고도 한다. 메모리에 저장되기 때문에 속도는 매우 빠르지만 시스템이 정지되면 메모리에 저장된 데이터도 모두 삭제된다는 단점이 있다.
여기에서 몇 가지 핵심 개념과 ElastiCache의 장점을 설명하겠습니다.
1. 캐싱(Caching) 이해
캐싱은 데이터나 연산 결과를 임시로 저장하는 것을 의미합니다. 애플리케이션이 자주 사용하는 데이터를 캐시에 저장하여 데이터베이스나 다른 백엔드 서비스에 반복적인 요청을 보내지 않아도 되게 합니다. 이로써 애플리케이션의 응답 속도가 빨라지며, 데이터베이스에 가해지는 부하를 줄일 수 있습니다.2. ElastiCache의 역할
ElastiCache는 메모리에 데이터를 저장하고 검색할 수 있는 분산 캐싱 솔루션을 제공합니다. 주로 Redis 또는 Memcached와 같은 인메모리 데이터 스토어를 사용하여 작동합니다.
3. 장점- 성능 향상
캐싱을 통해 빠른 데이터 검색 및 접근이 가능하므로 애플리케이션의 응답 시간이 향상됩니다.
- 부하 분산데이터베이스에 대한 요청을 분산시키고 부하를 줄여줍니다.
- 고가용성ElastiCache는 다중 가용 영역 및 복제를 지원하여 고가용성을 제공합니다.
- 스케일링요구에 따라 캐시 노드를 확장하거나 축소하여 작업량에 맞게 조절할 수 있습니다.
- 데이터 보존캐시 데이터는 일정 기간 동안 보존되므로 자주 변경되지 않는 데이터에 유용합니다.
4. 사용 사례
- 웹 애플리케이션의 성능 향상
- 데이터베이스 부하 감소
- 빠른 읽기 작업을 필요로 하는 애플리케이션
- 임시 데이터 저장 및 세션 관리
ElastiCache는 완전 관리형 서비스로 응용 프로그램 및 데이터베이스 성능을 가속화할 수 있으며, 세션 스토어, 게임 리더보드, 스트리밍 및 분석과 같이 내구성이 필요하지 않은 서비스에서는 기본 데이터 스토어로 사용할 수 있다.
ElastiCache는 주로 Redis 및 Memcached 두 가지 인메모리 캐싱 엔진을 지원합니다.
이 서비스는 모두 키-값 데이터베이스를 지원한다.
1. Redis (REmote DIctionary Server)
- Redis는 고성능, 오픈 소스 인메모리 데이터 스토어 및 캐시 엔진으로, 다양한 데이터 구조를 지원합니다.이는 주로 키-값 형태의 데이터를 저장하고 검색하는 데 사용됩니다.
- 자동 장애 조치 기능 (Auto-Failover) 기능이 있는 다중 AZ가 있습니다.
- 읽기 복제본이 있습니다. (복제되는 캐시임!! 가용성 내구성 굿)
- Backup 기능과 Restore 기능이 있습니다.
- Redis는 다음과 같은 특징을 가집니다.
- 문자열, 해시, 목록, 집합, 정렬 집합과 같은 다양한 데이터 유형 지원
- Pub/Sub 메시징 패턴 및 데이터 파이프라인 구축 지원
- 트랜잭션 및 지속성을 통한 데이터 보존
- 클러스터 모드 및 데이터 파티셔닝을 통한 확장성
- Redis는 세션 저장, 캐싱, 메시지 큐, 실시간 리더보드 등 다양한 사용 사례에 적합합니다.
2. Memcached (Memory Cache Daemon)
- Memcached는 고성능 분산 메모리 객체 캐싱 시스템으로, 단순한 키-값 캐싱을 위해 사용됩니다.- 데이터 분할을 위해 멀티노드를 사용합니다.
- No high availability → 고 가용성이 없고 복제가 일어나지 않음.
- Multi - threaded architechure! 멀티 스레드 아키텍처 임
- Memcached는 다음과 같은 특징을 가집니다:
- 키-값 캐싱에 최적화된 구조
- 데이터 파티셔닝 및 분산 아키텍처 지원
- 데이터의 유효기간 설정을 통한 캐시 관리
- 주로 웹 애플리케이션의 성능 향상을 위해 데이터베이스 쿼리 결과나 자주 사용되는 데이터를 캐시하는 데 사용됩니다.
Redis는 고가용성, 백업, 읽기 복제본 등을 위해 존재합니다.
반면, Memcached는 분산되어 있는 순수한 캐시이므로 데이터가 손실되어도 괜찮다는 특징이 있습니다. 또한, 고가용성이 없으며 백업 및 복원 기능이 없습니다. 이 두 엔진 중 어떤 엔진을 선택할지는 애플리케이션의 요구 사항과 성능 목표에 따라 다릅니다.
https://www.devopsschool.com/blog/what-is-amazon-elasticache/
https://cloudacademy.com/blog/amazon-elasticache/
'AWS > SAA' 카테고리의 다른 글
[ SAA ] S3 관련 문제 풀이 (0) 2023.09.09 Amazon Route 53 레코드 유형 (0) 2023.09.07 [ AWS ] Elastic Load Balancing (ELB) 란? (2) 2023.09.04 EC2 인스턴스 (0) 2023.08.13 EBS 다중 연결 (0) 2023.08.11