오늘은 API 서버의 성능을 높이기 위한 좋은 방법중 하나인 캐싱인 aws의 Redis에 대해 공유하려 한다.
개발할때 필요한 내용만 간추린 내용이기 때문에 더 자세한 내용은 https://docs.aws.amazon.com/elasticache/ 를 참고하길~!
ElasticCache memory
특징
- 인메모리, RAM, 휘발성
- 캐시도 고가용성이 필요 함
- 캐시가 Down되었을 때 고려하여 DB가 버틸 수 있도록 설계하는 것도 중요
- Memory DB, Elastic Cache 가장 큰 차이점은 Elastic Cache는 휘발성이고 Memory DB는 복구가 가능하다는 것임.
- Data Tiering(LRU): 접근 빈도가 높은 Hot 데이터를 더 빠른 저장장치에, 접근 빈도가 낮은 Cold 데이터를 덜 빠른 저장장치에 적재
- ElastiCache Serverless(Amazon ElastiCache 서버리스 정식 출시 – Redis 및 Memcached용 | Amazon Web Services): 서비스 비용은 비싸다는 단점이 있지만, 트래픽 변동이 심한 기업에 응답에 대한 최적화를 유지하고자 할 때 사용기 좋음
MemoryDB
특징
- 트랜잭션 로그로 데이터 복구 가능
- vector search에 주로 계산된 데이터 저장
- 트랜잭션 로그에 기록 후 DB에 저장하는 방식으로 ElastiCache보다 쓰기 속도는 느리지만 읽기 속도는 동일
- 트랙잭션 로그에 기록하기 때문에 데이터 복원 가능하지만 별도의 쓰기 비용이 부과됨.
요약
ElastiCache for Memcached | ElastiCache for Redis | MemoryDB for Redis | |
최대 사이즈 | 20 nodes/13TiB | 500 nodes/340TiB | 500nodes/128TiB |
복제 | No | Yes, But Befor Shutdown | Yes |
Follover | Not Available | Automatic | Automatic |
Data types | 1 | Many | Many |
Commands | 9 | 100+ | 100+ |
Memcached와 Redis 차이
- 최대 사이즈, 복제 유무 와 같은 사소한 차이는 있지만 가장 큰 차이는 Data type
- Memcached는 단순 key-value 데이터 한쌍의 구조이지만 Redis는 String, List, Hash 등 여러 데이터 타입이 존재
- Redis는 싱글 스레드 방식이지만 Memcached는 다중 스레드 방식임.
- Memcached는 다중 스레드 방식이므로 여러 프로세싱 코어를 사용할 수 있음. 즉 컴퓨팅 파워를 스케일 업하면 더 많은 작업을 처리할 수 있음.
- 멀티 스레드여도 CPU에서 작업이 이루어지기 때문에 CPU 성능에 따라 한계가 있음. CPU 성능이 안 좋으면 되려 싱글 스레드가 처리속도가 더 빠를 수 있음
ElastiCache와 MemoryDB 차이
데이터 복구 가능유무차이로 예상치 못한 Down에 ElastiCache는 복구가 불가능 하다.
하지만 Down되기 전 복사를 하면 되기는 함.
반면 MemoryDB는 예상치 못한 Down에도 트랙잭션 로그로 복구 가능하다.
'스터디-ing > Cloud' 카테고리의 다른 글
[S3] Signed URL로 파일 업로드, 트래픽 줄이기 (0) | 2024.05.24 |
---|---|
[Redis] Common In-Memory Use Cases (0) | 2024.05.23 |
[Redis] Redis 데이터 구조 (0) | 2024.05.23 |