22.12.02./캐시(Cache)란 무엇인가?
1. 캐시란 무엇인가?
- 일반적으로 일시적인 특징이 있는 데이터 하위 집합을 저장하는 고속 데이터 스토리지 계층
- 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소
- 캐시는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공함
- 캐시를 사용하면 좋은 경우
- 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우(서버의 균일한 API 데이터)
- 반복적으로 동일한 결과를 돌려주는 경우(이미지나 썸네일)
2. 캐싱의 작동방법
- RAM(Random Access Memory)과 같이 빠르게 액세스할 수 있는 하드웨어에 저장
- 소프트웨어 구성 요소와 함께 사용될 수도 있음
- 더 느린 기본 스토리지 계층에 액세스해야 하는 필요를 줄임으로써 데이터 검색 성능을 높이는 것
- 속도를 위해 용량을 절충하는 캐시는 일반적으로 데이터의 하위 집합을 일시적으로 저장
- 보통 완전하고 영구적인 데이터가 있는 데이터베이스와는 대조적
3. 캐싱의 이점
애플리케이션 성능 개선
메모리는 디스크(마그네틱 또는 SSD)보다 훨씬 속도가 빠르기 때문에 인 메모리 캐시에서 데이터를 읽는 속도가 매우 빠릅니다(밀리초 미만). 이렇게 훨씬 더 빠른 데이터 액세스는 애플리케이션의 전반적인 성능을 개선합니다.
데이터베이스 비용 절감
단일 캐시 인스턴스는 수십만 IOPS(초당 입출력 작업)를 제공할 수 있으며, 따라서 수많은 데이터베이스 인스턴스를 대체할 수 있으므로 총 비용이 절감됩니다. 이 같은 비용 절감 이점은 기본 데이터베이스에서 처리량당 요금이 부과되는 경우 특히 큽니다. 이 경우 수십 퍼센트의 비용이 절감될 수 있습니다.
백엔드의 로드 감소
캐싱은 읽기 로드의 상당 부분을 백엔드 데이터베이스에서 인 메모리 계층으로 리디렉션함으로써 데이터베이스의 로드를 줄이고 로드 시에 성능이 저하되거나 작업 급증 시에 작동이 중단되지 않도록 보호할 수 있습니다.
예측 가능한 성능
모던 애플리케이션의 일반적인 과제 중 하나는 애플리케이션 사용량이 급증하는 시기에 대응하는 것입니다. 슈퍼볼이나 선거 기간 동안의 소셜 앱, 블랙 프라이데이 기간 동안의 전자 상거래 웹 사이트 등을 예로 들 수 있습니다. 데이터베이스에 대한 로드가 증가하면 데이터를 가져오는 데 있어 지연 시간이 길어지고 전반적인 애플리케이션 성능이 예측 불가능해집니다. 높은 처리량의 인 메모리 캐시를 활용함으로써 이 문제를 완화할 수 있습니다.
데이터베이스 핫스팟 제거
많은 애플리케이션에서 유명 인사 프로필이나 인기있는 제품과 같은 작은 데이터 하위 집합이 나머지 부분에 비해 더 자주 액세스될 것입니다. 이로 인해 데이터베이스에 핫스팟이 발생할 수 있으며 가장 자주 사용되는 데이터의 처리량 요구 사항에 맞추어 데이터베이스 리소스를 초과 프로비저닝해야 할 수 있습니다. 인 메모리 캐시에 공통 키를 저장하면 가장 자주 액세스하는 데이터에 대해 예측 가능한 빠른 성능을 제공하는 동시에 초과 프로비저닝의 필요성을 줄일 수 있습니다.
읽기 처리량(IOPS) 증가
인 메모리 시스템은 지연 시간을 줄일 뿐만 아니라 유사한 디스크 기반 데이터베이스에 비해 훨씬 높은 요청 속도(IOPS)를 제공합니다. 분산형 사이드 캐시로 사용되는 단일 인스턴스는 초당 수십만 건의 요청을 처리할 수 있습니다.
출처 :
https://aws.amazon.com/ko/caching/
캐싱이란 무엇이고 어떻게 작동합니까 | AWS
다양한 캐싱 사용 사례 알아보기 데이터베이스 캐싱 속도와 처리량 면에서, 데이터베이스가 제공하는 성능은 애플리케이션 전체 성능에 무엇보다 크게 영향을 미칠 수 있습니다. 또한 오늘날
aws.amazon.com