본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] Amazon ElastiCache와 MemoryDB for Redis

by BTC_남요정 2023. 6. 25.

베하~! 안녕하세요!!

BTC의 블랙아웃입니다 🙂

 

오늘은 AWS에서 제공하는 Redis와 관련된 서비스에 대해 알아보겠습니다!

 

AWS에는 Amazon ElastiCache for Redis Clusters와 Amazon MemoryDB for Redis가 있습니다.

저는 이 두 서비스를 봤을 때 무슨 차이가 있지?! 라는 생각이 들었었는데요!

 

두 서비스 모두 Amazon Web Services에서 제공하는 관리형 인메모리 데이터 스토어 서비스는 맞지만, 완전히 같은 서비스는 아닙니다! 오늘은 이 두 서비스에 대한 특징을 살펴보겠습니다!

 


 

1. Amazon ElastiCache 의 Redis Clusters

: Amazon ElastiCache는 클라우드에서 분산된 인 메모리 데이터 스토어 또는 캐시 환경을 손쉽게 설정, 관리 및 확장할 수 있는 웹 서비스로, 캐싱에 주로 사용되는 In-memory 데이터 저장소인 Redis의 관리형 버전입니다.

 

ElastiCache는 Redis 데이터베이스 엔진이 기반이기 때문에 key-value 형식의 데이터 모델을 사용하며,

데이터를 메모리에 저장하고 조회할 수 있습니다. 확장 가능한 고가용성과 고성능 캐싱 솔루션을 제공하고, 분산된 캐시 환경의 관리와 읽기 작업 속도를 높이기 위해 DynamoDB 또는 RDS와 같은 데이터베이스 앞에 배치시키는 방식으로 주로 사용합니다.

 

또한 Redis를 사용하는 기존 애플리케이션을 거의 수정하지 않고 ElastiCache를 사용할 수 있다는 것도 큰 장점 중에 하나입니다. 애플리케이션에서는 사용자가 배포한 ElastiCache 노드의 호스트 이름과 포트 번호에 관한 정보만 있으면 되기 때문이죠!!!

 

하지만, 캐시와 데이터베이스를 모두 실행하는 데 비용이 발생하므로 어떤 아키텍처를 가지고 가야 하는지 신중히 선택할 필요가 있습니다!

 


 

2. Amazon MemoryDB for Redis

: Redis용 MemoryDB는 기존 ElastiCache의 캐시와 데이터베이스를 하나의 구성 요소로 대체하여 아키텍처를 단순화할 수 있도록 AWS에서 21년 8월 신규 런칭한 서비스입니다.

 

ElastiCache와 마찬가지로 Redis 프로토콜 호환성을 가지고 있지만, Amazon의 내부 기술로 구축된 데이터베이스 엔진이므로, Redis와 마찬가지로 key-value 형식의 데이터 모델을 사용합니다. 즉, MemoryDB는 Redis 호환 기능을 제공하면서도 데이터의 내구성과 확장성을 강화한 서비스라고 보시면 됩니다.

하지만, 일부 고급 Redis 기능이나 특정 데이터 타입에 대한 지원이 부족할 수 있기 때문에 기존 Redis 애플리케이션을 MemoryDB로 마이그레이션할 때 이러한 호환성 제한을 고려해야 합니다!

 

MemoryDB의 또다른 특징 중에 하나는, 데이터베이스 앞에 캐시를 추가하지 않아도 됩니다는 점입니다.

MemoryDB를 사용하면 데이터 내구성 및 고가용성을 갖춘 Application을 효율적으로 구축할 수 있기 때문에 비용 효율적으로 구축할 수 있습니다.  (하지만!!! 추가적인 기능과 내구성에 따라 비용은 달라질 수 있습니다)

 

또한 과거에는 미국 동부(버지니아 북부), EU(아일랜드), 아시아 태평양(뭄바이) 및 남아메리카(상파울루)에서만 지원되고 있어, 타 리전 서비스에 연동 시 VPC Peering 작업이 필요했지만, 현재는 홍콩, 뭄바이, 도쿄, 서울 리전 등 다양한 리전으로 서비스가 확대되었으니 확인 후 사용해보세요~!

 

 

리전 및 가용 영역 선택 - Amazon MemoryDB for Redis

각 리전은 완전히 독립적입니다. 시작하는 모든 MemoryDB 활동 (예: 클러스터 생성) 은 현재 기본 리전에서만 실행됩니다.

docs.aws.amazon.com

 


 

3. 요약

1) ElastiCache (Redis)

   - 동작 방식: DB 앞 배치시켜 캐싱 저장소로 사용

   - 장점: 기존 구성 Reference 많음, Region 제약 없이 지원

   - 단점: ElastiCache와 DB 별도 비용 발생

 

2) MemoryDB (Redis)

   - 동작 방식: Cache + DB 단일화 구성

   - 장점: ElastiCache 대비 빠른 쓰기 성능, Cache + DB 단일 구성으로 비용 효율화, 손쉽게 기존 Redis 애플리케이션을 마이그레이션

   - 단점: 기존 Redis와의 호환성 및 마이그레이션에 제약

 


어떤가요?

쪼~끔은 어떤 차이가 있는지 알 것 같으신가요?!ㅎㅎㅎ

 

AWS에서는 제공하는 서비스의 종류가 워낙 많다 보니 겉보기엔 비슷비슷해 보이는 서비스들이 많다고 느낄 수 있습니다!

하지만 서비스들의 특징과 장단점, 비용적인 부분을 확실히 구분할 수 있다면 

그에 따른 다양한 아키텍처에 맞춰서 서비스를 사용할 수 있을 것 같아요!

 

오늘도 여러분들에게 조금이나마 도움이 되었길 바라며~! 

다음에 만나요~!

베빠!!

댓글