Aurora DB, Redis, Cache 이해하기Software Development/Infra2024. 1. 8. 14:26
Table of Contents
Aurora DB 이해하기
Amazon Aurora
- Amazon RDS(관계형 DB)의 일부이다.
- 기본적으로 MySQL, PostgreSQL과 호환되는 RDBMS 엔진.
- MySQL, PostgreSQL 데이터베이스에 사용되는 코드, 도구 모두 그대로 사용 가능.
- MySQL 기준으로 5배의 속도를 제공한다.
Redis
- Remote Dictionary(key-value) Server
- 기본적으로 캐시에 대해 이해할 필요가 있다.
- 데이터베이스, 캐시, 메시지 브로커 및 스트리밍 엔진으로 사용되는 인메모리 데이터 구조 저장소
Redis는 데이터베이스,캐시, 메시지 브로커 및 스트리밍 엔진으로 사용되는 오픈 소스(BSD 라이선스), 인메모리 데이터 구조 저장소 입니다.
Redis는 문자열 , 해시 , 목록 , 집합 , 범위 쿼리가 있는 정렬된 집합 , 비트맵 , 하이퍼로그 로그 , 지리 공간 인덱스 및 스트림 과 같은 컬렉션을 제공합니다 .
Redis에는 복제 , Lua 스크립팅 , LRU 축출 , 트랜잭션 및 다양한 수준의 디스크 지속성 이 내장되어 있으며 다음을 통해 고가용성을 제공합니다.
Redis Sentinel 및 Redis 클러스터를 통한 자동 파티셔닝을 제공합니다.
Cache?
- DP 알고리즘과 비슷하게, 나중에 요청 올 결과를 미리 저장해두고 빠르게 서비스
- 미리 결과를 저장하고, 나중에 요청이 오면 DB나 API를 참조하지 않고 캐시에 접근하여 요청을 처리한다.
- 보통, 서비스 할 때 많이 사용되는 20%를 캐싱하면 가장 효율적인 구조이다.
Cache 사용 구조
- look aside cache
- Cache에 접근하여 데이터 존재여부 판단
- Cache에 데이터가 존재하면 거기서 가져옴
- Cache에 데이터가 없다면 DB에서 읽어옴.
- DB에서 읽어온 데이터를 Cache에 다시 저장한다.
- Write back
- 만약 디스크 기반 DB가 존재하고, 데이터를 쓰는 동작이 일어난다면?
- 동작이 일어날 때 마다 DB에 접근하게 되면, 굉장히 비효율적일 것이다.
- DB에 저장할 데이터를 캐시에 임시저장 한 후, 특정 시점마다 DB에 전송한다.
- 하지만 Cache에 먼저 저장하기 때문에 데이터가 날아갈 위험이 있다.
인메모리란?
- RAM에 데이터를 올려서 사용하는 방법.
- HDD 같은 저장공간에서 데이터를 가져오는 것 보다 수백배 이상 빠르다.
- 서버 메모리 용량을 초과하는 데이터를 Redis에서 처리할 경우, 용량으로 인해 데이터 유실이 발생할 수 있다.
Redis와 Cache의 차이점?
- Redis는 List, Set, Sorted Set, Hash 같은 Collection을 지원한다.
- Redis는 Single Thread이기 때문에, Atomic을 보장한다.
- Transaction을 지원한다.
- 하지만, Rollback을 지원하지 않는다. (그럼 이게 왜 Transaction?)
Redis의 사용처
- 캐시 데이터베이스 서버로 사용한다.
- 여러 서버에서 같은 데이터를 공유하고 싶을 때 사용한다
- 인증 토큰 등을 저장
- Ranking 보드로 사용(Sorted Set)
- 유저 API Limit
- Job Queue
'Software Development > Infra' 카테고리의 다른 글
컨테이너, 도커, ECS(오케스트레이션 툴) 이해하기 (1) | 2024.01.08 |
---|
@찐빵1 :: 위기주도학습
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!