2023 AWS re: Invent — Amazon Memory DB For Redis

Andy Park
Spoonlabs
Published in
5 min readJan 8, 2024

안녕하세요.

스푼라디오 Service Platform Team의 Backend 개발자 Andy(박준혁) 입니다. AWS re:Invent 2023 에 좋은 기회가 생겨 참석하게 되었고 다양한 경험을 할 수 있는 뜻깊은 행사였습니다. 행사 기간 동안 다양한 세션들을 살펴보았는데 그 중 관심이 있던 Amazon Memory DB for Redis 에 대해 소개 하려고 합니다.

우리를 반겨주는 전광판

Amazon Memory DB for Redis?

다중 AZ의 내구성을 갖춘 Redis를 호환 하는 In-Memory Database

Amazon Memory DB for Redis 특징

초고속 성능

낮은 지연 시간 (MicroSecond 단위에 읽기, MilliSecond 단위에 쓰기)을 통한 수백만개의 RPS 를 처리하는 초고속 성능을 제공

Redis 호환

Redis API 와 Data Structure 를 완벽히 지원하여 손쉽게 사용 가능하며 50여개 이상의 언어로 제공 되는 Redis 클라이언트 라이브러리 및 풍부한 생태계 활용 가능

내구성 및 가용성

Multi Transaction Log를 활용해 Multi-AZ에 데이터를 저장하여 데이터 내구성 보장 및 손실을 방지하며 고가용성 구성 가능

완전 관리형

AWS에서 완전히 관리되는 서비스

높은 확장성

단일 클러스터에서 최대 500개 노드로 확장을 통해 100TB 이상의 데이터를 저장 가능 하며 데이터 티어링을 통해 최대 250TB 까지 저장 가능

보안

암호화, 권한 및 인증을 위한 역할 기반 액세스 제어, IAM과의 통합, FedRAMP, PCI DSS, SOC과의 규정 준수 등을 제공

Amazon Memory DB for Redis 구조

Redis Cluster 구성

  • Memory DB는 Redis Cluster 구조를 기반으로 한다. 클러스터는 여러개의 샤드로 나뉘며, 각 샤드에는 하나의 Primary Node와 여러 Replica Node가 존재

Multi Transaction Log

  • Memory DB에 가장 큰 강점인 데이터 내구성 보장은 Multi Transaction Log를 이용하는 점인데, Primary Node는 먼저 메모리 상태에 업데이트 하고 동시에 Multi Transaction Log에도 동기적으로 기록 하며 해당 로그가 두개의 가용영역에 기록이 되어야 쓰기 작업이 완료
  • 이때, Replica Node 들은 Multi Transaction Log를 비동기적으로 자신의 메모리에 유지.
  • 이러한 비동기 처리는 읽기 요청에 대한 처리 성능을 향상 시키는데 도움.

장애 대응

  • Primary Node 가 장애가 발생하면 다른 AZ에 존재하는 Replica Node를 Primary Node로 승격 시켜 장애에 대한 피해를 최소화 하며 Failover 과정에서 Multi Transaction Log를 활용하여 데이터 손실 없이 진행이 가능
  • 하나의 AZ에서 장애가 발생하더라도 Multi-AZ에서 작동하여 시스템 운영이 지속적으로 가능

AWS Memory DB 사용 기업

  • 현재 스푼라디오 In-Memory DB는 AWS Elasticache를 사용하고 있는데, AWS Memory DB를 사용하는 기업들은 어떻게 사용하고 있는지 알아보겠습니다.

Twilio Segment

  • 약 25,000개 비즈니스에서 사용 되는 고객 데이터 플랫폼 기업
  • GDPR(일반 개인정보 보호법) Deletion Orchestration을 위하여 사용

HUD

  • 수백만명의 플레이어가 참여하는 최대 규모의 오픈 메타버스 플랫폼
  • 게임 세션, 사용자 프로필, 좋아요 등 수백만 건의 대용량 트랜잭션 처리에 사용

Mediaset Infinity

  • 영상 스트리밍 플랫폼
  • 수백만명의 유저에 대한 실시간 투표 시스템에 사용

만약 스푼라디오에서 Memory DB를 사용한다면 아래와 같은 작업들에 사용이 가능해 보입니다.

  • Web Socket Session 관리
  • 방송 중인 실시간 Live 데이터 관리
  • 청취자들의 대용량 트랜잭션 처리 등

점차 트래픽이 늘어남에 따라 더 많은 데이터와 증가하는 요청수를 지원하기 위해선 Amazon Memory DB를 사용하는 것도 방법이라고 생각이 들었습니다.

여기까지 Amazon Memory DB For Redis에 대한 소개를 마무리 하려고 합니다. 위에 설명을 토대로 In-Memory DB 적용 시 필요에 따라 Amazon Memory DB 적용도 고려 해 볼 수 있을 것 같습니다.

감사합니다.

SpoonRadio in 2023 AWS re:Invent

--

--