RDS와 Redis는 어디에 데이터를 저장할까?

송현진·2025년 6월 29일
0

DataBase

목록 보기
4/10

최근 Redis를 본격적으로 사용하면서 문득 이런 의문이 들었다.
“RDS는 결국 어디에 데이터를 저장하는 거지? 하드웨어에? 그렇다면 Redis는 메모리 기반이라고 하는데, 무조건 메모리만 쓰는 걸까?” 이런 궁금증을 해결하기 위해 RDS와 Redis의 저장 위치, 기술적 차이, 그리고 Redis의 가장 강력한 장점까지 정리해보았다.

RDS는 어디에 데이터를 저장할까?

RDS(Relational Database Service)는 AWS, Azure, GCP 같은 클라우드 환경에서 제공하는 관계형 데이터베이스의 관리형 서비스다. 여기서 “RDS가 어디에 데이터를 저장하는가?”라는 질문은 사실상 “RDBMS는 데이터를 어디에 저장하는가”와 동일한 질문이다.

결론부터 말하면 RDS는 데이터를 디스크(스토리지)에 저장한다.

자세히 보면 RDS는 내부적으로 MySQL, PostgreSQL, Oracle 같은 DB엔진을 사용하고 있으며
이들은 데이터를 일반적으로 SSD 기반의 영구 저장 장치(EBS와 같은 블록 스토리지)에 저장한다. 즉, 휘발성인 메모리가 아닌 디스크 기반의 저장소에 데이터를 영구 보존한다.

  • AWS RDS의 경우 사용자가 지정한 EBS 볼륨에 데이터 파일이 저장되고 스냅샷 백업이 관리된다.
  • 데이터를 디스크에 쓰고 필요시 메모리에 올려서 캐싱하거나 쿼리 최적화를 수행한다.

요약하면 RDS는 디스크에 영구 저장되며 안정성과 정합성을 최우선으로 보장하는 구조이다.

Redis는 데이터를 어디에 저장할까?

Redis는 대표적인 In-Memory Data Store(인메모리 데이터 저장소)이다. 즉, Redis는 기본적으로 데이터를 메모리(RAM)에 저장한다. 그래서 읽기/쓰기 속도가 극단적으로 빠르다. 반면 메모리는 휘발성이기 때문에 별도의 영속화 설정이 없으면 서버가 꺼질 경우 데이터도 같이 날아간다.

하지만 Redis도 영속성(Persistence)을 지원한다. 주요 방식은 다음 두 가지다

  • RDB (Snapshotting)
    일정 시간 간격으로 메모리의 상태를 덤프 파일로 저장
  • AOF (Append Only File)
    모든 write 명령을 append log 형태로 저장해 복구 가능

즉, Redis는 기본은 메모리 저장, 필요에 따라 디스크에도 백업을 남길 수 있는 구조다. 하지만 어디까지나 1차 저장소는 메모리이며 디스크는 복구를 위한 보조 역할이다.

Redis의 가장 큰 장점은?

내가 생각하는 Redis의 가장 큰 강점은 단연 속도다.
정확히 말하면 데이터를 메모리에 저장함으로써 가능한 초고속 응답성이 Redis의 핵심 경쟁력이다.

일반적인 RDB는 데이터를 디스크에서 읽기 때문에 응답 속도가 보통 수 밀리초(ms) 단위다. 하지만 Redis는 모든 데이터를 메모리(RAM) 에 상주시키고 직접 읽고 쓰기 때문에 응답 속도가 마이크로초(μs) 단위로 훨씬 빠르다. 이 덕분에 초당 수만~수십만 건의 요청(QPS)을 무리 없이 처리할 수 있다. 이러한 성능 특성 덕분에 Redis는 다음과 같은 실시간 처리 시나리오에서 거의 표준처럼 사용된다.

  • 로그인 세션 저장
  • 캐시 (e.g. 상품 목록, 인기 검색어)
  • 실시간 순위, 점수 계산
  • 선착순 쿠폰 발급 (Lua 스크립트, Redis Queue)
  • Pub/Sub 기반 알림 시스템

게다가 Redis는 단순한 Key-Value 저장소를 넘어서 List, Set, Hash, Sorted Set 같은 다양한 구조를 지원하고 최근엔 StreamBloom Filter까지 지원하며 정말 강력한 범용 실시간 데이터 처리 도구로 진화하고 있다.

📝 배운점

이번에 RDS와 Redis의 “저장 위치”를 비교하면서 단순히 “디스크냐, 메모리냐”를 넘어서 기술 철학과 목적 자체가 다르다는 걸 알게 되었다.

  • RDS는 데이터 정합성과 영속성, 트랜잭션 처리에 강하다.
  • Redis는 속도와 실시간성, 가벼운 상태 저장에 특화되어 있다.

따라서 두 시스템은 서로 대체재가 아니라 역할이 분명히 나뉜 보완재로 함께 사용되어야 한다. 예를 들어, 로그인 정보를 Redis에 저장하고 장기 보존이 필요한 회원 정보는 RDS에 저장하는 식이다. 결국 “무엇을 저장할 것인가”에 따라 속도를 최우선으로 할지, 정합성을 최우선으로 할지를 판단하고 그에 따라 Redis와 RDS를 적절히 병행하는 아키텍처 설계가 중요한 포인트라는 걸 배웠다.

profile
개발자가 되고 싶은 취준생

0개의 댓글