AWS(Amazon Web Service) 입문자들의 스터디 [sect.4] - RDS(2)

박규민·2024년 9월 29일

AWS 스터디

목록 보기
5/6

ElastiCache

: 구축 및 유지보수 작업 없이 인 메모리 캐시 기능을 이용가능한 서비스
-> ElastiCahce를 사용시 RDS에 더욱 효율적인 어플리케이션 퍼포먼스를 보여줄 수 있다.

ElastiCache란?

  • Cloud 내에서 In-memory 캐시를 만들어줌
  • DB에서 데이터를 읽어오는 것이 아니라 캐시에서 빠른 속도로 데이터를 읽어옴
  • Read-Heavy 어플리케이션에서 상당한 Latency 감소 효과를 누림
    -> 데이터의 양이 방대할 때 사용하는 것이 가장 좋다
    -> 초반 Application 개발에는 효율성이 떨어진다

그러나 On-Premise나 EC2에 구축했을 때는 사용할 수 있었던 기능이나 설정의 일부에 제한이 있을 수 있다

ElastiCache의 Type

1) Memcached

  • 멀티 스레드로 실행되고 간단한 데이터 구조만 취급 가능하다
  • 휘발성 데이터를 보관하는 용도로 사용되어 백업 기능 등은 없다
  • Object Cache System으로 알려져있음
  • ElastiCache는 Memcached의 프로토콜을 디폴트로 따른다
  • EC2 Auto Scaling처럼 크기가 커졌다 작아졌다한다
  • Open Source

Memcached의 사용 상황

  • 가장 단순한 캐싱 모델이 필요한 경우
  • Object Caching이 주된 목적인 경우
  • 캐시 크기를 마음대로 scaling하려는 경우

2) Redis

  • 싱글 스레드로 실행된다
  • Object와 달리 Key-Value와 같은 데이터를 In-Memory에 저장 가능함
  • Multi-AZ지원 (Disaster Recovery)
  • Open Source

Redis의 사용 상황

  • List,Set과 같은 데이터셋을 사용하는 경우
  • 리더보드처럼 데이터셋의 랭킹을 정렬하는 용도가 필요한 경우
  • Multi AZ기능이 필요한 경우

인 메모리 캐시 패턴

: ElastiCache를 사용해 데이터베이스의 부하를 줄인다

1) DB 액세스에 대한 안티 패턴
: 웹 서버에서 데이터 취득 요청을 항상 DB에서 처리하는 패턴
: AWS 리소스에 여유가 있는 경우에는 문제가 안되나 부하가 올라갈 경우 문제
-> 웹서버(EC2 인스턴스)에서는 서버의 대수를 늘려 대응 가능하나
-> DB 층은 스케일 아웃이 어려워 스케일 업에 의존하게 되고 이는 한계가 있다

  • 스케일 아웃 : 서버 대수를 늘려 확장하는 방식
  • 스케일 업 : 서버의 사양을 올려 확장하는 방식

2) 인 메모리 캐시 패턴
: 웹서버와 DB 서버(RDS 인스턴스) 사이에 ElastiCache를 세우고 자주 변경 되지 않는 데이터를 캐시해 위와 같은 문제를 해소할 수 있다.

도입 시의 포인트

  • 캐시할 데이터를 선정
    : 자주 업데이트되진 않지만 자주 요청되는 데이터 캐시 -> 적중률 상승
  • 애플리케이션을 수정
    : ElastiCache에 해당 데이터가 있는지 여부 확인 후
    : 있다면 그대로 이용
    : 없다면 DB에 요청을 보낸 후 응답을 저장해 데이터를 이용
  • 복원력을 높이는 설계 수행
    : 인 메모리 캐시가 단일 장애점이 되지 않게 한다
  • 부하 테스트 -> 적절한 인스턴스 유형 설정
profile
말도 할 줄 아는 Potato임니다

0개의 댓글