본문 바로가기

스터디-ing/Cloud

[Redis] AWS Redis에 대해

오늘은 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에도 트랙잭션 로그로 복구 가능하다.