aws elasticache vs Redis [AWS-1]

오늘은 aws elasticache와 Redis를 비교해보겠습니다. 이 두 서비스는 모두 관리형 Redis 인스턴스를 제공하지만, 각각의 특징, 사용 사례 및 고려 사항들이 다릅니다.

Redis

Redis


개발자들을 매료시킨 성능과 단순성, 인 메모리 기능 덕분에 가장 인기있는 키-밸류 스토어로 자리잡고 있다.

놀랍도록 빠른 속도 덕분에 Redis는 캐싱 활용 사례로 사실상 인정받고 있다.

인 메모리 데이터 구조에 대한 많은 지원 덕분에 실시간 분석, 채팅, 메시징 및 스트리밍 등에 활용되고 있다.

그러나, Redis의 배포, 모니터링, 확장에 대한 어려움이 있을 수 있다.

 

aws elasticcache

amazon elastiCache


밀리 초 미만의 대기 시간에 실시간 앱 구동이 가능한 완전 관리형 Redis 서비스인 Amazon Redis ElastiCache.

오픈 소스 Redis와 호환이 가능해, 별도의 변경 없이 기존 Redis 애플리케이션은 원활하게 작동한다.

완전 관리형이기 때문에 하드웨어 프로비저닝, 소프트웨어 패치, 설정, 모니터링, 장애복구 및 백업과 같은 관리 작업을 수행할 필요가 없다.

Redis 클러스트 모드로 인 메모리 용량과 처리량을 확장하면, 여러 가용 영역에 걸쳐 복제본으로 읽기를 확장할 수 있고, 파티셔닝으로 쓰기를 확장할 수 있다.

처음에는 작게 시작해서, 클러스터를 확장 및 축소하며 수요 변화에 대응할 수 있다.

자동 장애의 복수 가용 영역은 자동 노드 장애 감지와 복제본 승격을 통해 가용성을 높인다.

ElastiCache는 Amazon VPC HIPPA를 사용해 네트워크 보안을 지원하고, 보안 및 컴플라이언스를 위해 암호화와 Redis Auth를 지원한다.

특징


  • 쓰기 제한 기능
  • 동기화 및 백업 중 메모리 관리를 최적화
  • 장애를 완하해 Redis의 가용성과 관리 용이성을 향상

오픈 소스 Redis의 속도, 단순성 및 다양성과 아마존의 보안 및 확장성을 결합해

미디어, 게임, 광고, 기술, 전자 상거래, 의료서비스, 금융 서비스 및 IoT 분야에서 가장 까다로운 실시간 애플리케이션을 지원

Amazon MemoryDB for Redis


Redis와 호환되고 내구성이 뛰어난 인 메모리 데이터베이스

기존 Redis를 프로덕션 레벨의 내구성을 확보해 사용하는 방법은 Redis Enterprise밖에 없었다.

Redis Enterprise는 클러스트를 구성한다던지 HA 클러스터 Database 구조를 넣는다던지 해서, 고가용성을 확보한 범용 서비스

MemoryDB를 사용하면 데이터 내구성 및 고가용성을 갖춘 마이크로초 읽기 및 한 자릿수의 밀리초 쓰기 성능이 필요한 애플리케이션을 쉽고 비용 효율적으로 구축할 수 있습니다.

메모리에 저장하는 데이터베이스의 경우, 읽기/쓰기는 매우 빠르지만, SSD/HDD에 저장하는 데이터베이스에 비해 내구성이 떨어진다.

하지만, 그 내구성을 확보한 인 메모리 DB 서비스가 바로 MemoryDB다.

특징


  • Redis의 Managed 서비스
    • 인스턴스를 관리하거나 패치, 백업, 설정 필요 X
  • 고가용성
    • 여러 AZ에 복제 가능
  • 데이터의 내구성
    • Multi-AZ 트랜잭션 로그 방식
    • 빠른 장애 조치, 복구 및 노드 재시작 지원
  • 500node까지 지원 = 100TB 메모리
  • Auto Scaling 지원
    • CloudWatch Metric 을 사용해 Scale Up/Down 결정
    • 타겟 트랙킹 및 정책 사용 가능
      • 메모리 사용량이 오르면 Scale Up, 낮으면 Down.

비교


  1. 관리형 서비스:
    – 엘라스틱 캐싱: AWS 엘라스틱 캐싱 및 인메모리 데이터 저장을 위한 관리형 서비스입니다. Redis 및 Memcached 엔진을 지원합니다. 기본 인프라에 대해 걱정하지 않고 Redis 클러스터를 쉽게 배포하고 관리할 수 있습니다.
    – Amazon MemoryDB for Redis: MemoryDB for Redis는 내구성과 복원력에 특화된 완전히 관리되는 Redis 호환 서비스입니다. Redis 기반으로 구축되지만 데이터 내구성 기능과 자동화된 백업 기능이 추가되었습니다.
  2. 내구성:
    – ElastiCache: ElastiCache의 Redis는 인메모리 캐싱을 제공하므로 기본적으로 데이터를 디스크에 지속적으로 저장하지 않습니다. 하지만 Redis의 RDB 스냅샷 또는 AOF 로그 파일을 사용하여 영속성을 설정할 수 있지만 ElastiCache의 주요 초점은 아닙니다.
    – Amazon MemoryDB for Redis: MemoryDB for Redis는 데이터 내구성이 핵심 기능입니다. 자동 데이터 복제를 통해 여러 가용 영역에 데이터를 지속적으로 저장하여 데이터의 지속성과 고가용성을 보장합니다.
  3. 사용 사례:
    – ElastiCache: ElastiCache는 데이터베이스 부하를 줄이고 응용 프로그램 성능을 향상시키기 위해 자주 액세스되는 데이터를 캐싱하는 데 자주 사용됩니다. 데이터가 손실되더라도 재생성할 수 있는 사용 사례에 적합하며, 데이터 내구성을 기본적으로 보장하지는 않습니다.
    – Amazon MemoryDB for Redis: MemoryDB for Redis는 인메모리 성능과 데이터 지속성이 모두 필요한 사용 사례를 위해 설계되었습니다. 세션 관리, 실시간 분석, 메시징과 같이 중요하고 가치 있는 데이터를 저장해야 하는 응용 프로그램에 적합합니다.
  4. 복제 및 고가용성:
    – ElastiCache: ElastiCache는 다중 노드 복제를 제공하여 읽기 확장성을 향상시킵니다. 하지만 가용 영역 간 자동화된 데이터 복제 기능을 제공하지는 않습니다.
    – Amazon MemoryDB for Redis: MemoryDB for Redis는 자동으로 여러 가용 영역에 데이터를 복제하여 높은 가용성과 오류 허용성을 제공합니다.
  5. 데이터 백업:
    – ElastiCache: ElastiCache는 Redis RDB 스냅샷 및 AOF 로그 파일을 통해 백업을 지원하지만, 백업 프로세스와 보존 정책을 관리해야 합니다.
    – Amazon MemoryDB for Redis: MemoryDB for Redis는 자동으로 백업을 수행하며, 백업 보존 기간을 지정할 수 있습니다.
  6. 가격:
    – ElastiCache: ElastiCache는 캐싱 시나리오에 대해 일반적으로 비용 효율적입니다. 내구성 및 자동화된 백업과 같은 기능을 포함하지 않기 때문입니다.
    – Amazon MemoryDB for Redis: MemoryDB for Redis는 추가 기능과 데이터 내구성을 제공하기 때문에 ElastiCache보다 비용이 높을 수 있습니다. 특히 대규모 데이터셋의 경우 더욱 그렇습니다.

응용 프로그램이 인메모리 캐싱과 고성능을 필요로 하며 장기적인 데이터 지속성이 필요하지 않은 경우 ElastiCache가 적합합니다. 반면, 응용 프로그램의 데이터 내구성과 복원력이 중요하며 자동 백업과 다중 가용 영역 복제가 필요한 경우 Amazon MemoryDB for Redis가 더 적합합니다.

요약


aws elasticcache

메인 데이터베이스의 워크로드를 분산하고 캐싱 기능으로 활용하기 위한 목적

ElastiCache는 읽기 및 쓰기 모두에 대해 마이크로초 단위의 대기 시간을 제공한

그래서 기존 데이터베이스에서 데이터 액세스를 가속화하려는 워크로드를 캐싱하는 데 이상적이다.

ElastiCache는 데이터 손실이 허용되는 사용 사례(예: 다른 소스에서 빠르게 데이터베이스를 재구축할 수 있는 경우)에 대한 기본 데이터 스토어로 사용할 수도 있.

램 캐시, 레디스, (인 메모리 DB)

→ 쿼리 캐싱, 세션 저장, 임시 데이터 저장합니다.

MemoryDB

메인 DB 자체로 사용을 하기 위한 목적

MemoryDB는 데이터 내구성과 마이크로초 단위의 읽기 및 한 자릿수 밀리초 단위의 쓰기 대기 시간을 제공하기 때문에 애플리케이션에 대한 안전한 프라이머리 데이터베이스가 될 수 있다.

MemoryDB를 사용하면 대화형 애플리케이션 및 마이크로서비스 아키텍처에 필요한 짧은 대기 시간을 달성하기 위해 데이터베이스 앞에 캐시를 추가하지 않아도 된다.

→ 타임시리즈 DB, IoT 기기들의 메인 DB를 저장합니다.

AWS 관련된 다른 내용들 …

aws cloudfront – aws amplify

Leave a Comment