본문 바로가기
AWS

AWS 알아보기 6 - DynamoDB & Elasticache

by codeyaki 2023. 6. 11.
반응형

DynamoDB & Elasticache

AWS DynamoDB

  • 완전관리형 NoSQL 데이터베이스 서비스로서 원활한 확장성과 함께 빠르고 예측 가능한 성능을 제공
  • 서버리스이므로, 따로 유지비용 없이 사용한 만큼한 지불
  • 보조 인덱스를 통한 빠른 조회를 지원
    • NoSQL 특성상 관계가 없기 때문에 일반적으로 데이터를 찾기에는 인덱싱이 없으면 속도가 느려지지만 그 부분을 해결해 줍니다.
  • 서버리스(람다) 서버와의 궁합이 매우 잘 맞는다.
    • 람다에는 RDS를 사용하는 것은 기피해야 하고 다이나모 DB를 만들어야 한다.
      람다는 서버리스이기 때문에 오토스케일링이 자유롭다. 따라서 DBMS의 connection pool을 넘어갈 수 있기 때문에 위험하다.
    • 혹은 planetscale라는 서버리스 서비스를 사용한다.
  • 파티션키를 primary키로 사용
  • scan(조회)는 모두 가능
    • 원하는 파티션키를 생성하는 글로벌 보조 인덱스 기능을 사용하면 된다. (복제해서 새로운 테이블이 생성되는 방식)
  • 유닛(데이터양) 별로 요금 청구. JOIN을 하는 데이터량이 많으면 다이나모가 적합하지 않다
  • 보통 유저의 인증 정보 (토큰)를 저장하기 위한 장소로 많이 사용한다.

Amazon Elasticache

  • 클라우드에서 분산된 인 메모리 데이터 스토어 또는 캐시 환경을 손쉽게 설정, 관리 및 확장할 수 있는 웹 서비스
  • Redis와 Memcached을 지원
  • 캐시 노드 실패에서 자동 감지 및 복구
  • 클러스터를 만들어서 구성
  • 사용 예시: 캐싱 / 세션 스토어 / AI ML 모델 / 실시간성이 높은 작업
  • 다이나모 DB에 비해서 다양한 명령어를 제공한다. ( 다이나모 DB는 기본적인 CRUD정도만 제공)

동작 원리

  1. 유저가 최초 조회 시 엘라스티캐시에 접근하여 데이터가 있는지 확인
    • 없다면 RDS 조회해서 데이터 읽기, 엘라스티캐시에 저장.
  2. 캐싱된 데이터를 유저 제공
    • 이때 캐싱 시간을 설정하여 최신데이터 유지
    • 혹은 수정이 있다면 RDS에 수정하고 이 부분 된 데이터를 엘라스티캐시에 제공
반응형