Elastic Cache
목차
글을 쓴 배경
웹 어플리케이션의 성능 향상을 고민하던 중 elastic cache를 사용하게 되었습니다.
글 요약
시작하기 전
개요
Amazon ElastiCache는 Memcached와 Redis 프로토콜을 지원하는 완전 관리형 인메모리 캐싱 서비스입니다. 이 서비스는 실시간 사용 사례를 지원하며, 읽기가 많은 애플리케이션의 대량 작업 부하를 처리하거나 계산 처리가 방대한 작업 부하를 개선하는 데 사용됩니다.
동작 방식

- Cache - ElasticCache는 애플리케이션과 데이터베이스의 성능을 향상시키기 위해, 데이터를 메모리에 저장하여 빠르게 접근할 수 있습니다.
- Ephemeral data store ( 임시 데이터 저장소 )
- 세션 스토어 : 사용자의 세션 정보를 빠르게 읽고 쓰기 위해 캐시 사용
- 게임 리더보드 : 점수 같은 데이터를 실시간으로 업데이트하고 조회하는데 사용
- 미디어 스트리밍 : 스트리밍 서비스에서 필요한 데이터를 저장하고 전달하는데 사용
- 분석 데이터 스토어 : 분석 처리를 위해 접근해야하는 대량의 데이터를 저장하는데 사용
- Key Service benefits
- Microsecond speed: 매우 빠른 데이터 액세스를 제공
- Fully managed: 하드웨어 프로비저닝, 소프트웨어 패치, 설정, 모니터링 등의 관리 작업을 AWS가 대신 처리합니다.
- High availability: 다중 가용 영역 배포를 지원하여, 한 영역에 장애가 발생해도 서비스가 지속될 수 있도록 합니다.
- Security and compliance: 데이터 전송과 저장 시 보안을 유지하며, 기업의 규정 준수 요구사항을 충족합니다.
- Fully compatible with Redis and Memcached: 오픈 소스 인메모리 데이터 스토어와 호환되어, 익숙한 도구와 프로세스를 사용할 수 있습니다.
- Cost optimization: 사용량에 따른 비용 책정으로, 필요한 만큼만 비용을 지불하며, 예약 인스턴스를 통해 비용을 더 절감할 수 있습니다.
- Integrate with other AWS Services
- ElastiCache는 AWS의 여러 다른 서비스와 통합될 수 있습니다.
적용 사례
읽기 중심의 애플리케이션 부하 감소: 소셜 네트워킹, 게임, 미디어 공유 등 읽기가 많은 작업에 적합합니다. 고도의 데이터 구조 지원: Redis를 이용해 데이터베이스 계층을 효과적으로 확장할 수 있으며, 복잡한 데이터 작업을 더 효율적으로 수행할 수 있습니다.
- 백엔드 데이터베이스 로드 감소: 빠른 데이터 접근으로 백엔드 부하를 줄이고 총 소유 비용을 절감할 수 있습니다.
- 실시간 애플리케이션 데이터 캐싱: 필요할 때 즉각적인 데이터 제공을 통해 사용자 경험을 개선합니다.
- 세션 스토어: 대규모 온라인 애플리케이션에서 세션 정보 관리를 효율적으로 수행합니다.
- 순위표: 게임이나 다른 경쟁적 환경에서 실시간 순위표를 관리합니다.
데이터 캐싱: 사용자가 자주 액세스하는 데이터를 빠르게 제공하기 위해 캐시에 저장합니다. 세션 스토어, 게임 리더보드, 스트리밍 및 분석: 이러한 사용 사례는 내구성을 요구하지 않으므로 ElastiCache를 주 데이터 저장소로 활용할 수 있습니다.
Memcached와 Redis 비교
핵심 개념
노드, 샤드, 클러스터: ElastiCache 배포 시 기본 구성 요소, 샤드(키 공간의 서브셋 및 레플리카 포함), 클러스터(여러 샤드로 구성)에 대한 설명
고려 사항
캐시의 크기 결정, 데이터 일관성 유지, 비용 관리 등이 포함됩니다.
적용 방안
서버리스 환경에서의 자동 스케일링, 캐시 노드의 세밀한 조정, 보안 설정 및 모니터링 방법 등이 포함됩니다.