캐시는 컴퓨팅에서 일반적으로 일시적 성격의 데이터 하위 집합을 저장하는 고속의 데이터 스토리지 계층으로서 향후 데이터에 대한 요청을 해당 데이터의 기본 스토리지 위치를 액세스하여 가능한 것보다 더 빨리 처리해 줍니다. 캐싱은 이전에 검색하거나 계산된 데이터를 효과적으로 재사용할 수 있게 해 줍니다. 캐시의 데이터는 일반적으로 RAM(랜덤 액세스 메모리)와 같은 빠른 액세스 하드웨어에 저장되며 소프트웨어 구성요소와 함께 사용될 수도 있습니다. 캐시의 주요 목적은 더 느린 기본 스토리지 계층을 액세스해야 하는 필요를 줄임으로써 데이터 검색 성능을 향상시키는 것입니다. 역량을 속도와 바꾸는 캐시는 보통 완전하고 지속성을 가지는 데이터베이스 내의 데이터와는 대조적으로 일반적으로 데이터의 하위 집합을 일시적으로 저장합니다.
캐시는 운영 체제와 콘텐츠 전송 네트워크(CDN), DNS, 웹 애플리케이션 및 데이터베이스를 비롯한 네트워크 계층을 포함하는 다양한 기술 계층에 걸쳐 적용되고 활용될 수 있습니다.
RAM과 인 메모리 엔진이 지원하는 높은 요청 비율 또는 IOPS(초당 입/출력 작업)로 인하여, 캐싱은 데이터 검색 성능을 향상시키고 규모 비용을 감소시켜 줍니다. 기존의 데이터베이스와 디스크 기반의 하드웨어로 동일한 규모를 지원하려면 추가 리소스가 필요할 것입니다. 이러한 추가 리소스는 비용을 더 높이지만 여전히 인 메모리 캐시가 제공하는 낮은 지연 시간을 달성할 수 없습니다.
캐시를 사용하면 지연 시간을 현격히 줄이고 Q&A 포털, 게임, 미디어 공유 및 소셜 네트워크와 같은 여러 읽기 중심의 애플리케이션 워크로드의 IOPS를 향상시킬 수 있습니다. 캐시된 정보에는 데이터베이스 쿼리 결과, 컴퓨팅 집약 계산, API 요청/응답 및 HTML, JavaScript 및 이미지 파일과 같은 웹 아티팩트가 포함될 수 있습니다. 추천 엔진과 고성능 컴퓨팅 시뮬레이션과 같이 데이터 세트를 조작하는 컴퓨팅 집약 워크로드는 또한 캐시 역할을 하는 인 메모리 데이터 계층으로부터 혜택을 받습니다. 이러한 애플리케이션에서 매우 큰 데이터 세트들을 수백개의 노드에 걸칠 수 있는 머신 클러스터 상으로 실시간 액세스해야 합니다. 기본 하드웨어 속도 때문에, 이 데이터를 디스크 기반 스토어에서 조작하면 이러한 애플리케이션에 대해 심각한 병목 현상이 발생합니다.
분산 컴퓨팅 환경에서, 전용 캐싱 계층가 있으면 시스템과 애플리케이션은 자체 수명 주기로 캐시에 영향을 주는 위험없이 캐시로부터 독립적으로 실행될 수 있습니다. 캐시는 자체 수명 주기 및 아키텍처 토폴로지를 가진 상이한 시스템에서 액세스될 수 있는 중앙 계층의 역할을 합니다. 이는 특히 애플리케이션 노드의 규모가 동적으로 확대 또는 축소될 수 있는 시스템에 적용됩니다. 캐시가 캐시를 사용하는 애플리케이션이나 시스템과 같은 노드에 있다면, 규모조정은 캐시의 무결성에 영향을 줄 수 있습니다. 또한 로컬 캐시가 사용되는 경우, 이는 단지 그 데이터를 소비하는 로컬 애플리케이션에만 혜택을 줍니다. 분산 캐싱 환경에서, 데이터는 해당 데이터의 모든 소비자들에게 혜택이 되도록 복수의 캐시 서버에 걸쳐 있고 중앙 위치에 저장될 수 있습니다.
| 계층 | 클라이언트 측 | DNS | 웹 | 앱 | 데이터베이스 |
| 사용 사례 | 웹 사이트(브라우저 또는 디바이스)에서의 웹 콘텐츠 검색 가속화 | 도메인 IP 해상도 | 웹/앱 서버에서의 웹 콘텐츠 검색 가속화 웹 세션 관리(서버 측) | 애플리케이션 성능 및 데이터 액세스 가속화 | 데이터베이스 쿼리 요청과 연결된 지연 시간 감소 |
| 테크놀로지 | HTTP 캐시 헤더, 브라우저 | DNS 서버 | HTTP 캐시 헤더, CDN, 리버스 프록시(Reverse Proxy), Web Accelerator, 키/값(Key/Value) 스토어 | 키/값(Key/Value) 데이터 스토어, 로컬 캐시 | 데이터베이스 버퍼, 키/값(Key/Value) 데이터 스토어 |
| 솔루션 | 브라우저 별 | Amazon Route 53 | Amazon CloudFront, Redis용 ElastiCache, Memcached용 ElastiCache, 파트너 솔루션 | 애플리케이션 프레임워크, Redis용 ElastiCache, Memcached용 ElastiCache, 파트너 솔루션 | Redis용 ElastiCache, Memcached용 ElastiCache |
캐시 계층을구현할 때 캐시되고 있는 데이터의 유효성을 이해하는 것이 중요합니다. 성공적인 캐시는 가져오기(fetch)할 때 데이터가 존재한다는 것을 의미하는 높은 적중률의 결과를 낳습니다. 캐시에 가져온 데이터가 존재하지 않을 때 캐시 누락이 발생합니다. TTL(Time To Live)과 같은 컨트롤을 적용하여 적절히 데이터를 만료시킬 수 있습니다. 다른 고려 사항은 캐시 환경이 고가용이어야 할 필요가 있는지의 여부인데 이 고가용 필요 요건은 Redis와 같은 인 메모리 엔진에 의해 충족됩니다. 경우에 따라, 인 메모리 계층을 독립형 데이터 스토리지 계층으로 사용할 수 있으며 이는 기본 위치로부터 데이터를 캐싱하는 것과는 대조됩니다. 이 시나리오에서는 인 메모리 엔진에 상주하는 데이터에서 적절한 RTO(복구 시간 목표 – 정전에서 복구하는 데 소요되는 시간)와 RPO(목표 복구 시점 – 복구 시 포착된 최종 시점 또는 거래)를 정의하여 이것이 적합한지를 파악하는 것이 중요합니다. 다른 인 메모리 엔진의 설계 전략과 특성을 적용하여 대부분의 RTO와 RPO 요구 사항을 충족시킬 수 있습니다.
Amazon ElastiCache는 클라우드에서 인 메모리 데이터 스토어 또는 캐시를 손쉽게 배포, 운영 및 확장할 수 있게 해주는 웹 서비스입니다. 이 서비스는 더 느린 디스크 기반 데이터베이스에 전적으로 의존하기보다는, 빠른 관리형의 인 메모리 데이터 스토어에서 정보를 검색할 수 있도록 지원하여 웹 애플리케이션의 성능을 향상시킵니다.
인 메모리 캐싱에 대한 이 기술 백서로 효과적인 캐싱 전략을 구현할 수 있는 방법을 알아 보십시오.
메모리는 디스크(자기 또는 SSD)보다 훨씬 더 빠르기 때문에 인 메모리 캐시에서 데이터를 읽는 속도는 매우 빠릅니다(밀리초 미만). 이렇게 훨씬 더 빠른 데이터 액세스는 애플리케이션의 전체 성능을 향상시킵니다.
단일 캐시 인스턴스는 수십만 개의 IOPS(초당 입/출력 작업)를 제공할 수 있어 여러 개의 데이터베이스 인스턴스를 대체할 능력이 있고 따라서 총 비용을 절감시킬 수 있습니다. 이는 기본 데이터베이스가 처리량 당 요금을 부과하는 경우 특히 중요합니다.. 이 경우 가격 절감 효과는 수십 퍼센트가 될 수 있습니다.
읽기 로드의 중요한 부분을 백엔드 데이터베이스에서 인 메모리 계층으로 리디렉션함으로써 캐싱은 데이터베이스의 로드를 줄이고 부하로 인한 성능 저하와 스파이크 발생시 손상으로부터 보호할 수 있습니다.
현대 애플리케이션에서의 일반적인 문제는 애플리케이션 사용 중 발생하는 스파이크를 처리하는 것입니다. 예를 들어, 슈퍼볼이나 선거 기간 동안의 소셜 앱, 블랙 프라이데이 중 전자 상거래 사이트 등이 있습니다. 데이터베이스의 로드가 증가하면 데이터를 가져오는 데 있어 지연 시간이 늘어나 전반적인 애플리케이션 성능 예측이 어려워집니다. 높은 처리량의 인 메모리 캐시를 사용하면 이 문제가 완화될 수 있습니다.
많은 애플리케이션에서 유명 인사 프로필이나 인기있는 제품과 같은 작은 데이터 하위 집합이 나머지 부분에 비해 더 자주 액세스될 것입니다. 이로 인해 데이터베이스에 핫스팟이 생길 수 있으며 가장 자주 사용되는 데이터의 처리량 요구 사항을 기반으로 데이터베이스 리소스의 오버프로비저닝(Overprovisioning)이 필요할 수 있습니다. 인 메모리 캐시에 공통 키를 저장하면 가장 자주 액세스되는 데이터에 대해 빠르고 예측 가능한 성능을 제공하면서 오브프로비저닝의 필요성을 줄여 줍니다.
인 메모리 시스템은 지연 시간이 짧을 뿐만 아니라 유사한 디스크 기반 데이터베이스에 비해 훨씬 높은 요청 비율(IOPS)을 제공합니다. 분산된 사이드 캐시로 사용되는 단일 인스턴스는 초당 수십만 개의 요청을 처리할 수 있습니다.
Amazon ElastiCache와 같은 완전히 관리되는 서비스로 클라우드에서 캐싱을 시작하는 것은 쉽습니다. 캐시 설정, 관리 및 집행에 있어서의 복잡성을 제거하여 조직에 가치를 더하는 업무에 집중할 수 있습니다. Amazon ElastiCache에 지금 가입하십시오.

