Computer >> 컴퓨터 >  >> 프로그래밍 >> Redis

성능, 확장성, 비용 문제에 시달리고 계신가요? ElastiCache의 한계를 넘어야 할 신호 3가지

ElastiCache는 아마존(AWS)이 제공하는 대표적인 관리형 Redis 서비스입니다. 지난 10년간 클라우드 컴퓨팅을 위한 AWS와 인메모리 데이터 스토어인 Redis라는 두 가지 혁신 기술의 잠재력을 기업들이 인식하면서 폭넓게 채택되어 왔습니다. AWS와 Redis는 우리가 기술을 활용하는 방식을 완전히 바꾸어 놓았고, 더 빠르고 확장 가능하며 탄력적인 디지털 경험을 업계 표준으로 만들었습니다.

클라우드 전환과 애플리케이션 속도 개선을 동시에 추진하던 조직들은 오픈소스 Redis만으로 감당하기 어려워졌을 때 자연스럽게 AWS의 ElastiCache를 선택했습니다. AWS 환경에서 처음부터 구축하는 소규모 스타트업에게 ElastiCache는 여전히 합리적인 선택지입니다. 직접 관리하는 부담과 비용 없이 Redis의 장점을 누릴 수 있기 때문입니다.

하지만 성공적인 비즈니스는 끊임없이 성장합니다. 지난 10년간의 사례를 보면, 비즈니스가 확장됨에 따라 결국 ElastiCache의 능력 범위를 넘어서게 됩니다. AWS ElastiCache는 오픈소스 Redis를 기반으로 한 관리형 서비스로, 대규모로 운영되는 기업에 필요한 엔터프라이즈급 기능이 많이 부족합니다.

그렇다면 ElastiCache의 한계에 도달했는지 어떻게 알 수 있을까요? 다음은 주요 징후들입니다.

  1. 캐시는 AWS에 한정되어 있지만, 애플리케이션과 기술 스택은 온프레미스와 멀티클라우드에 배포되어 있는 경우
    a) 하이브리드 및 멀티클라우드는 특히 대기업에서 새로운 표준이 되었습니다. 실제로 기업의 92%가 멀티클라우드를, 80%가 하이브리드 클라우드 전략을 채택하고 있습니다. 이는 기업들이 규제 요건을 충족해야 하고 대규모의 복잡한 기술 스택을 보유하고 있으며, 단일 클라우드 공급자에 종속되는 비즈니스·기술 리스크를 감수하기 꺼리기 때문입니다. 캐시는 단일 클라우드에 제한되지 않고 비즈니스 요구에 따라 유연하게 배포할 수 있어야 합니다.

  2. 밀리초 미만의 속도를 위해 AWS ElastiCache를 도입했지만, 글로벌 확장 과정에서 애플리케이션이 느려지는 경우
    a) 비즈니스가 확장되면 새로운 사업부나 전 세계 고객을 지원하기 위해 여러 리전에 데이터를 캐싱해야 합니다. 그러나 ElastiCache는 여러 Redis 인스턴스에 동시에 데이터를 읽고 쓰는 기능이 없어, 모든 사용자 가까이에 활성 캐시 인스턴스를 유지할 수 없습니다. 그 결과 데이터가 이동하면서 지연 시간(latency)이 발생합니다. 지리적으로 확장 중인 비즈니스와 글로벌 사용자 기반을 보유한 대기업에게 이는 심각한 문제입니다.

  3. 데이터가 증가함에 따라 ElastiCache 비용이 급등하는 경우
    a) 데이터를 메모리에 저장하는 것은 매우 빠르지만 비용도 상당히 높습니다. 소규모 기업에서 감당할 만했던 비용이 회사가 성장하고 데이터가 기하급수적으로 늘어나면 천문학적으로 불어날 수 있습니다. ElastiCache는 멀티테넌시(multi-tenancy)를 지원하지 않아 캐싱 인프라를 최대한 활용할 수 없습니다. 또한 ElastiCache의 데이터 티어링(data tiering)은 대규모 핵심 데이터 세트를 캐싱하는 기업에 필요한 복원력과 성능을 제공하지 못합니다.

배포 유연성

Amazon ElastiCacheRedis Enterprise
성능, 확장성, 비용 문제에 시달리고 계신가요? ElastiCache의 한계를 넘어야 할 신호 3가지성능, 확장성, 비용 문제에 시달리고 계신가요? ElastiCache의 한계를 넘어야 할 신호 3가지

AWS에서만 완전 관리형 캐시로 제공됩니다.
AWS, Azure, Google Cloud에서 완전 관리형 데이터베이스 및 캐시로 제공됩니다.

온프레미스, 하이브리드, 멀티클라우드 애플리케이션에 실시간 성능을 제공하는 캐시를 배포할 수 있어 현대적인 기술 스택을 지원합니다.

글로벌 확장성과 고가용성

ElastiCacheRedis Enterprise
Active-Passive(능동-수동)Active-Active Geo Distribution(지역 분산형 능동-능동)
ElastiCache는 active-passive(replica-of) 복제를 통해 소스 캐시 클러스터에서 다른 리전의 대상 클러스터로 단방향 데이터 복제를 제공합니다(AWS 내에서만 가능).Redis Enterprise는 Active-Passive 복제에 더해, Active-Active Geo Distribution을 통한 양방향 복제로 고복원력·고확장성 분산 캐시를 구축할 수 있습니다. Active-Active를 활용하면 리전, 클라우드, 온프레미스 인프라 전반에 걸쳐 통합 캐시를 배포할 수 있습니다.
성능, 확장성, 비용 문제에 시달리고 계신가요? ElastiCache의 한계를 넘어야 할 신호 3가지성능, 확장성, 비용 문제에 시달리고 계신가요? ElastiCache의 한계를 넘어야 할 신호 3가지
이 방식의 한계는 읽기 볼륨만 확장할 수 있고, 쓰기는 여전히 프라이머리 클러스터에서 수행해야 한다는 점입니다. 쓰기 요청이 소스 클러스터로 이동하는 동안 쓰기 지연이 누적될 수 있으며, 쓰기 집약적인 애플리케이션은 확장에 어려움을 겪습니다.

또한 ElastiCache의 복제 방식은 여러 클라우드와 온프레미스에 걸친 데이터 복제를 통한 추가 복원력을 제공하지 않습니다. ElastiCache의 복제 방식은 99.9% 가용성 SLA를 제공합니다.
Active-Active는 지역 복제된 리전의 수(또는 거리)에 관계없이 로컬 수준의 지연 시간을 제공하며, 여러 캐시 노드에 동시에 읽기·쓰기를 수행할 수 있는 원활한 충돌 해결 기능을 갖추고 있습니다.

Redis Enterprise의 Active-Active Geo Distribution은 업계 최고 수준의 99.999% 가용성 SLA를 제공하여, ElastiCache 대비 월 40분 이상의 다운타임을 방지합니다.

비용 효율성

ElastiCacheRedis Enterprise
Data Tiering(데이터 티어링)Redis on Flash
ElastiCache는 최근 계층화 스토리지 서비스를 도입하여 자주 액세스하는 데이터는 RAM에 유지하고, 덜 자주 액세스하는 데이터는 SSD로 이동합니다.

데이터 티어링은 일반적으로 대규모이고 비용이 많이 드는 데이터 세트에 필요합니다. 그런데 이러한 데이터 세트는 비즈니스에 핵심적이며 데이터 영속성(persistence)이 필수적인데, ElastiCache의 데이터 티어링은 이를 지원하지 못합니다.
ElastiCache의 데이터 티어링은 모든 사용 사례를 지원하지 않으며, volatile-lru, allkeys-lru, noeviction 최대 메모리 정책에 대한 축출(eviction) 정책만 지원합니다.
Redis Enterprise는 5년 이상 가장 까다로운 프로덕션 환경에서 검증된 성숙한 티어링 제품을 제공합니다. Redis on Flash는 덜 자주 액세스하는 데이터를 저렴한 SSD로 이동시키면서도 애플리케이션 성능을 유지하는 최초의 Redis 데이터 티어링 서비스입니다.

Redis on Flash는 데이터 티어링의 비용 절감 효과를 제공하는 동시에, 내장된 데이터 영속성으로 고객 데이터를 보호합니다. 또한 데이터 세트를 여러 개의 작은 샤드로 분할해 병렬로 처리함으로써 복제 시간을 단축하고 데이터 손실 위험을 줄입니다. 반면 ElastiCache는 데이터를 하나의 큰 샤드에 유지합니다.

Redis on Flash는 더 다양한 축출 정책을 지원하여 추가적인 사용 사례도 가능합니다.
성능, 확장성, 비용 문제에 시달리고 계신가요? ElastiCache의 한계를 넘어야 할 신호 3가지
ElastiCache는 순수한 단일 테넌트(single-tenant) 시스템입니다. Redis를 컨테이너 또는 가상 어플라이언스로 배포하고, 기반 관리 솔루션이 새로운 Redis 인스턴스를 생성하는 방식을 따릅니다. 멀티테넌시는 서버/인프라 계층에서 구현됩니다. 이러한 솔루션은 Redis 인스턴스당 가격이 책정되며, 규모와 범위의 경제성은 서비스 제공업체에게 고객보다 더 큰 이점을 가져다줍니다.

성능, 확장성, 비용 문제에 시달리고 계신가요? ElastiCache의 한계를 넘어야 할 신호 3가지
Redis Enterprise Cloud는 단일 구독으로 수백 개의 테넌트를 지원하는 멀티테넌시를 제공합니다. 각 테넌트는 다른 Redis 데이터베이스와 완전히 격리된 자체 데이터베이스 엔드포인트를 갖습니다. 하나의 플랜에서 여러 전용 데이터베이스를 호스팅할 수 있으며, 각 데이터베이스는 전용 프로세스에서 논블로킹(non-blocking) 방식으로 실행됩니다. 데이터 센터, 프라이빗 클라우드 또는 가상 프라이빗 클라우드에 Redis Enterprise를 배포하면 멀티테넌트 아키텍처의 범위 경제성 혜택을 그대로 누릴 수 있습니다.

추가 비용 절감

Redis는 우리 비즈니스의 핵심이자, 우리가 하는 모든 일의 중심입니다. 성능과 복원력을 유지하면서 비용을 낮게 관리하는 혁신적인 방법을 제공하는 데 있어 다른 Redis 서비스보다 앞서 있는 것은 당연한 결과입니다. 그 대표적인 예가 쿼럼(quorum) 개념입니다. 대부분의 NoSQL 데이터베이스는 고가용성을 위해 3개의 복제본을 사용합니다. 첫 번째는 데이터 저장용, 두 번째는 장애 조치(failover)용, 세 번째는 프라이머리와 복제본의 데이터가 불일치할 때 올바른 데이터를 판별하는 타이브레이커(tiebreaker) 역할입니다. 하지만 DRAM은 비용이 높고, 하나의 데이터 세트에 대해 복제본 3개를 유지하는 것은 매우 비쌉니다. Redis Enterprise는 단 2개의 복제본만으로 고가용성 시스템을 제공합니다. 클러스터에 홀수 개의 캐시 노드를 배치해 타이브레이커를 노드 수준에서 결정하기 때문에, 기본 설정만으로 약 33%의 비용을 절감할 수 있습니다.

더 알아보기

기능별 전체 기술 비교가 담긴 Redis Enterprise vs. ElastiCache 데이터시트를 확인하고, Redis Enterprise로 업그레이드할 적절한 시점인지 판단해 보시기 바랍니다.