본문 바로가기
Amazon Web Serivce 자격증 쉽게 공부하기/AWS Solutions Architect Associate 핵심

SAA-C03 핵심 #26, ElastiCache

by 네트워크 엔지니어 환영 2024. 1. 15.
반응형

Cache란 무엇이며 왜 써야 하는가?

  • Cache란 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소
  • 프로세서가 필요한 데이터가 있을 때마다 메인 메모리에 일일이 접근하여 속도가 지연되는 것을 막기 위해 자주 사용하는 데이터를 담아두는 곳
  • 처리 속도 향상을 위해 존재하는 작은 칩 혹은 메모리(임시 공간)을 의미
  • Cache는 CPU와 메모리 사이 뿐만 아니라, 메모리와 디스크 사이에서도 발생함
  • 후술할 In-Memory Cache는 메모리와 디스크 사이의 Caching을 의미

 

In-Memory Cache(In-Memory DataBase)

  • 데이터 처리 속도를 향상시키기 위한 메모리 기반의 DBMS(낮은 지연 시간을 가진 인메모리 데이터베이스)
  • 메모리 위에 모든 데이터를 올려두고 사용하는 데이터베이스의 일종(ElastiCache가 AWS 카테고리에서 DB 부분에 있는 이유)
  • 디스크에 최적화된 Database(RDS 등)에서 저장된 쿼리 결과나 자주 사용하는 데이터를 메모리에 적재하여 사용하는 것은 비효율적
  • 모든 데이터를 메모리 위에 올려두어 굳이 디스크 기반의 데이터베이스에까지 이동하여 데이터를 가져와 속도가 저하되는 것을 막음
  • 데이터베이스의 데이터뿐만 아니라 디스크, 세션, 기타 동적으로 생성된 데이터를 저장할 수 있음
  • 다만 메모리 기반의 데이터베이스이기 때문에, 휘발성 메모리라는 단점이 존재하며 전원 공급 차단시 모든 데이터가 유실되고 할당된 메모리에 한해 저장 가능

 

ElastiCache

  • AWS의 In Memory Cache Service
  • 첫 번째 용도는 애플리케이션과 RDS 사이에서 자주 쿼리되는 데이터를 미리 ElastiCache에 저장하고 애플리케이션이 빠르게 캐시할 수 있도록 하는 것
    • ElastiCache에 캐시를 실패할 경우, RDS에서 쿼리를 실시하며 ElastiCahce가 이를 적재
    • 읽기 집약적인 워크로드의 부하를 줄이는데 도움이 됨
  • 두 번째 용도는 애플리케이션의 세션을 애플리케이션이 아닌 ElastiCache에 저장하여 사용자가 다른 애플리케이션으로 리디렉션되어도 다시 로그인하지 않도록 하는 것
  • ElastiCache는 Node로 구성되어 서비스를 제공하며, Node는 EC2처럼 다양한 Type을 가지고 유형에 따라 다양한 메모리 크기를 가짐
  • 다양한 Type을 갖는 이유는 적은 양의 메모리가 필요할 경우, 작은 Type의 Node를 사용하여 비용을 적게 들게 하기 위함
  • 유형이 결정된 Node들은 '고정된' 메모리 크기를 가지며, 각자의 DNS로 이루어진 엔드포인트를 보유함
  • AWS가 OS 유지보수와 패치, 최적화, 설정, 모니터링, 장애 회복, 백업 등을 수행함
  • Memcached와 Redis로 나뉨
    • 2개 모두 비관계데이터베이스형(NosQL) 서비스이며, Key-Value 기반임
    • 이미 존재하는 서비스이며 AWS에서 사용가능하도록 구현한 것

 

Memcached의 특징

  • Cluster로 구성되어 있으며, Cluster 내에 Node들이 존재하여 인 메모리 캐시로서의 역할을 담당함
  • 각 Node는 Type별로 메모리를 보유하며 서비스를 제공하며, 필요시 Node를 늘려 서비스 용량을 향상시킬 수 있음
  • 각 Node별로 AZ를 따로 둘 수 있지만, 장애 조치(Failover)가 불가능하고 복제본을 둘 수 없음

 

Redis의 특징

  • 기본적으로 Cluster로 구성되지는 않지만, Cluster로 구성이 가능하며 Shard와 Node를 가지고 있음
  • Shard는 여러 Node로 구성되며, 하나의 Node가 읽기/쓰기를 담당하고 나머지 Node는 복제본 역할을 함
  • Cluster로 구성되지 않은 Redis는 하나의 Shard만을 가지지만, Cluster로 구성될 경우 다수의 Shard를 갖게 됨
  • 복제본을 가지므로 장애조치(복제본을 기본 Node로 승격)가 가능하며 Multi-AZ 기능을 지원함

 

** 참고링크

 

반응형

댓글