캐싱 개요

캐싱은 애플리케이션 성능을 대폭 개선하고 비용을 크게 절감해 줍니다.

캐싱이란 무엇입니까?

컴퓨팅에서 캐시는 일반적으로 일시적인 특징이 있는 데이터 하위 집합을 저장하는 고속 데이터 스토리지 계층입니다. 따라서 이후에 해당 데이터에 대한 요청이 있을 경우 데이터의 기본 스토리지 위치에 액세스할 때보다 더 빠르게 요청을 처리할 수 있습니다. 캐싱을 사용하면 이전에 검색하거나 계산한 데이터를 효율적으로 재사용할 수 있습니다.

캐싱은 어떻게 작동합니까?

캐시의 데이터는 일반적으로 RAM(Random Access Memory)과 같이 빠르게 액세스할 수 있는 하드웨어에 저장되며, 소프트웨어 구성 요소와 함께 사용될 수도 있습니다. 캐시의 주요 목적은 더 느린 기본 스토리지 계층에 액세스해야 하는 필요를 줄임으로써 데이터 검색 성능을 향상하는 것입니다.

속도를 위해 용량을 절충하는 캐시는 일반적으로 데이터의 하위 집합을 일시적으로 저장합니다. 보통 완전하고 영구적인 데이터가 있는 데이터베이스와는 대조적입니다.

캐싱 개요

RAM 및 인 메모리 엔진이 지원하는 높은 요청 비율 또는 IOPS(초당 입력/출력 작업) 덕분에 캐싱을 사용하면 대규모로 데이터 검색 성능이 향상되고 비용이 절감됩니다. 기존 데이터베이스 및 디스크 기반 하드웨어로 동일한 규모를 지원하려면 추가 리소스가 필요하게 됩니다. 이러한 추가 리소스는 비용을 상승시키면서도 여전히 인 메모리 캐시에서 제공하는 짧은 지연 시간 성능은 달성할 수 없습니다.

운영 체제, 네트워킹 계층(콘텐츠 전송 네트워크(CDN), DNS 등), 웹 애플리케이션, 데이터베이스를 비롯한 다양한 기술 계층에 걸쳐 캐시를 적용하고 활용할 수 있습니다. 캐싱을 사용하면 Q&A 포털, 게임, 미디어 공유 및 소셜 네트워킹과 같은 읽기 집약적인 여러 애플리케이션 워크로드의 지연 시간을 크게 줄이고 IOPS를 개선할 수 있습니다. 캐싱되는 정보로는 데이터베이스 쿼리 결과, 컴퓨팅 집약적인 계산, API 요청-응답 및 HTML, JavaScript 및 이미지 파일과 같은 웹 아티팩트가 있습니다. 또한 추천 엔진과 고성능 컴퓨팅 시뮬레이션과 같이 데이터 세트를 조작하는 컴퓨팅 집약적 워크로드는 캐시 역할을 하는 인 메모리 데이터 계층의 이점을 활용할 수 있습니다. 이러한 애플리케이션에서는 수백 개의 노드에 걸쳐 있는 시스템 클러스터에서 매우 큰 데이터 세트를 실시간으로 액세스해야 합니다. 기본 하드웨어의 속도 때문에 디스크 기반 스토어에서 이 데이터를 조작하는 것은 이러한 애플리케이션에서 심각한 병목 현상을 초래합니다.

분산 컴퓨팅 환경에서 전용 캐싱 계층을 사용하면 시스템과 애플리케이션이 캐시에 영향을 줄 위험 없이 자체 수명 주기를 통해 캐시와 독립적으로 실행될 수 있습니다. 캐시는 자체적인 수명 주기 및 아키텍처 토폴로지를 사용하여 서로 다른 시스템에서 액세스할 수 있는 중앙 계층 역할을 합니다. 특히 애플리케이션 노드를 동적으로 확장 및 축소할 수 있는 시스템에 적합합니다. 캐시를 사용하는 애플리케이션 또는 시스템과 동일한 노드에 캐시가 상주하는 경우, 이 같은 확장과 축소가 캐시의 무결성에 영향을 줄 수 있습니다. 또한 로컬 캐시를 사용하는 경우 데이터를 소비하는 로컬 애플리케이션에만 도움이 됩니다. 분산 캐싱 환경에서는 여러 캐시 서버에 분산된 데이터가 중앙 위치에 저장되므로 해당 데이터의 모든 소비자가 이익을 얻을 수 있습니다.

캐시 계층을 구현할 때는 캐싱되는 데이터의 유효성을 이해하는 것이 중요합니다. 성공적인 캐시는 높은 적중률로 이어집니다. 즉, 가져온 데이터가 캐시에 존재합니다. 가져온 데이터가 캐시에 존재하지 않을 때 캐시 비적중이 발생합니다. TTL(Time To Live)과 같은 제어 항목을 적용하여 이에 따라 데이터를 만료되도록 할 수 있습니다. 또 다른 고려 사항은 캐시 환경이 고가용성이어야 하는지 여부인데, 고가용성 요구 사항은 Redis 같은 인 메모리 엔진을 사용하여 충족할 수 있습니다. 기본 위치에서 데이터를 캐싱하는 것과는 달리, 경우에 따라 인 메모리 계층을 독립형 데이터 스토리지 계층으로 사용할 수 있습니다. 이 시나리오에서는 인 메모리 엔진에 상주하는 데이터에 대해 적절한 RTO(복구 목표 시간 – 가동 중단으로부터 복구하는 데 걸리는 시간)와 RPO(목표 복구 시점 – 복구 시 캡처된 최종 시점 또는 트랜잭션)를 정의하여 이것이 적합한지를 파악하는 것이 중요합니다. 다른 인 메모리 엔진의 설계 전략과 특성을 적용하면 대부분의 RTO 및 RPO 요구 사항을 충족할 수 있습니다.

계층 클라이언트 측 DNS 데이터베이스
사용 사례

웹 사이트에서 웹 콘텐츠를 검색하는 속도 가속화(브라우저 또는 디바이스)

도메인과 IP 간 확인 웹 또는 앱 서버에서 웹 콘텐츠를 검색하는 속도를 높입니다. 웹 세션 관리(서버 측) 애플리케이션 성능 및 데이터 액세스 가속화 데이터베이스 쿼리 요청과 관련한 지연 시간 단축
기술 HTTP 캐시 헤더, 브라우저 DNS 서버 HTTP 캐시 헤더, CDN, 역방향 프록시, 웹 액셀러레이터, 키-값 스토어 키-값 데이터 스토어, 로컬 캐시 데이터베이스 버퍼, 키-값 데이터 스토어
솔루션 브라우저별 Amazon Route 53 Amazon CloudFrontElastiCache for RedisElastiCache for Memcached파트너 솔루션 애플리케이션 프레임워크, ElastiCache for RedisElastiCache for Memcached파트너 솔루션  ElastiCache for RedisElastiCache for Memcached

Amazon ElastiCache를 사용한 캐싱

Amazon ElastiCache는 클라우드에서 인 메모리 데이터 스토어 또는 캐시를 손쉽게 구축, 운영 및 확장할 수 있도록 지원하는 웹 서비스입니다. 이 서비스는 더 느린 디스크 기반 데이터베이스에 전적으로 의존하기보다는, 빠른 관리형 인 메모리 데이터 스토어에서 정보를 검색할 수 있도록 지원하여 웹 애플리케이션의 성능을 향상합니다. 인 메모리 캐싱에 대한 이 기술 백서를 통해 효과적인 캐싱 전략을 구현할 수 있는 방법을 알아보세요.

다이어그램

캐싱의 이점

메모리는 디스크(마그네틱 또는 SSD)보다 훨씬 속도가 빠르기 때문에 인 메모리 캐시에서 데이터를 읽는 속도가 매우 빠릅니다(밀리초 미만). 이렇게 훨씬 더 빠른 데이터 액세스는 애플리케이션의 전반적인 성능을 개선합니다.

단일 캐시 인스턴스는 수십만 IOPS(초당 입출력 작업)를 제공할 수 있으며, 따라서 수많은 데이터베이스 인스턴스를 대체할 수 있으므로 총 비용이 절감됩니다. 이 같은 비용 절감 이점은 기본 데이터베이스에서 처리량당 요금이 부과되는 경우 특히 큽니다. 이 경우 수십 퍼센트의 비용이 절감될 수 있습니다.

모던 애플리케이션의 일반적인 과제 중 하나는 애플리케이션 사용량이 급증하는 시기에 대응하는 것입니다. 슈퍼볼이나 선거 기간 동안의 소셜 앱, 블랙 프라이데이 기간 동안의 전자 상거래 웹 사이트 등을 예로 들 수 있습니다. 데이터베이스에 대한 로드가 증가하면 데이터를 가져오는 데 있어 지연 시간이 길어지고 전반적인 애플리케이션 성능이 예측 불가능해집니다. 높은 처리량의 인 메모리 캐시를 활용함으로써 이 문제를 완화할 수 있습니다.

많은 애플리케이션에서 유명 인사 프로필이나 인기있는 제품과 같은 작은 데이터 하위 집합이 나머지 부분에 비해 더 자주 액세스될 것입니다. 이로 인해 데이터베이스에 핫스팟이 발생할 수 있으며 가장 자주 사용되는 데이터의 처리량 요구 사항에 맞추어 데이터베이스 리소스를 초과 프로비저닝해야 할 수 있습니다. 인 메모리 캐시에 공통 키를 저장하면 가장 자주 액세스하는 데이터에 대해 예측 가능한 빠른 성능을 제공하는 동시에 초과 프로비저닝의 필요성을 줄일 수 있습니다.

인 메모리 시스템은 지연 시간을 줄일 뿐만 아니라 유사한 디스크 기반 데이터베이스에 비해 훨씬 높은 요청 속도(IOPS)를 제공합니다. 분산형 사이드 캐시로 사용되는 단일 인스턴스는 초당 수십만 건의 요청을 처리할 수 있습니다.

사용 사례

모바일 애플리케이션은 소비자용 디바이스의 빠른 보급과 전통적인 컴퓨터 장비의 사용 감소와 함께 놀라울 정도로 빠르게 성장 중인 시장 부문입니다. 게임, 상용 애플리케이션, 의료용 애플리케이션 등 분야를 막론하고 오늘날 거의 모든 시장 부문에서 모바일 친화적인 애플리케이션이 사용되고 있습니다. 애플리케이션 개발의 관점에서 모바일 애플리케이션을 구축하는 것은 다른 형태의 애플리케이션을 구축하는 것과 매우 유사합니다. 프레젠테이션 계층, 비즈니스 계층, 데이터 계층 등 신경을 써야 할 부분도 동일합니다. 화면 면적과 개발 도구는 다르지만, 우수한 사용자 환경을 제공하는 것이 모든 애플리케이션에 공통된 목표입니다. 효과적인 캐싱 전략을 통해 모바일 애플리케이션에서 사용자가 기대하는 성능을 제공하고 대규모로 확장하며 전반적인 비용을 절감할 수 있습니다.

AWS Mobile Hub는 모바일 앱을 구축 및 테스트하고 앱 사용을 모니터링하는 AWS 클라우드 서비스를 검색, 구성, 액세스할 수 있는 통합 환경을 제공하는 콘솔입니다.

웹 트래픽이 지리적으로 분산되어 있는 경우, 전 세계에 걸쳐 전체 인프라를 복제하는 방식이 현실적으로 불가능할 수도 있고 비용상 효율적이지도 않습니다. CDN은 글로벌 엣지 로케이션 네트워크를 활용하여 동영상, 웹 페이지, 이미지 등 웹 콘텐츠의 캐싱된 복사본을 고객에게 전송하는 기능을 제공합니다. 응답 시간을 줄이기 위해 CDN은 고객과 가장 가까운 엣지 로케이션이나 원래 요청 위치를 활용함으로써 응답 시간을 단축합니다. 웹 자산이 캐시에서 제공되므로 처리량이 대폭 늘어납니다. 동적 데이터의 경우 많은 수의 CDN을 구성하여 오리진 서버에서 데이터를 검색할 수 있습니다.

Amazon CloudFront는 웹 사이트, API, 동영상 콘텐츠 또는 기타 웹 자산의 전송을 가속화하는 글로벌 CDN 서비스입니다. 다른 Amazon Web Services 제품과 통합하여 사용하면 개발자와 기업이 최소 사용 약정 없이도 콘텐츠를 최종 사용자에게 전송하는 속도를 손쉽게 가속화할 수 있습니다. CDN에 대해 자세히 알아보려면 여기를 클릭하세요.

인터넷에서 이루어지는 모든 도메인 요청은 도메인 이름과 연결된 IP 주소를 확인하기 위해 DNS 캐시 서버를 쿼리합니다. DNS 캐싱은 OS를 비롯한 여러 수준에서 ISP 및 DNS 서버를 통해 실행될 수 있습니다.

Amazon Route 53는 가용성과 확장성이 우수한 클라우드 도메인 이름 시스템(DNS) 웹 서비스입니다.

HTTP 세션에는 로그인 정보, 쇼핑 카트 목록, 이전에 본 항목 등, 사이트 사용자와 웹 애플리케이션 간에 교환된 사용자 데이터가 포함됩니다. 웹 사이트에서 우수한 사용자 환경을 제공하는 데 있어서는 사용자의 기본 설정을 기억하고 풍부한 사용자 컨텍스트를 제공함으로써 HTTP 세션을 효과적으로 관리하는 것이 중요합니다. 중앙 집중식 세션 관리 데이터 스토어를 활용하는 것이 모든 웹 서버에서 일관된 사용자 환경을 제공하고, 탄력적인 웹 서버 플릿에서 더 나은 세션 내구성을 제공하며, 세션 데이터가 여러 캐시에 복제되는 경우에 더 높은 가용성을 제공하는 등 여러 가지 이유로 모던 애플리케이션 아키텍처에 이상적인 솔루션이라고 할 수 있습니다.

자세한 내용을 보려면 여기를 클릭하세요.

오늘날 대부분의 웹 애플리케이션은 API를 기반으로 구축됩니다. API는 일반적으로 HTTP를 통해 액세스할 수 있으며 사용자가 애플리케이션과 상호 작용할 수 있도록 리소스를 노출하는 RESTful 웹 서비스입니다. API를 설계할 때 API의 예상 로드, 권한 부여, 버전 변경이 API 소비자에게 미치는 영향, 그리고 무엇보다 API의 사용 편의성 등을 고려하는 것이 중요합니다. API가 비즈니스 로직을 인스턴스화하고 모든 요청에서 데이터베이스로 백엔드 요청을 보내야 하는 것은 아닙니다. 경우에 따라서는 API의 캐싱된 결과를 제공하는 것이 비용 효율적인 최적의 응답 방식이 될 수 있습니다. 기반 데이터의 변경 속도에 맞춰 API 응답을 캐싱할 수 있는 경우 특히 그렇습니다. 예를 들어 제품 리스팅 API를 사용자에게 노출했으며 제품 범주는 하루에 한 번만 변경된다고 가정해보겠습니다. 제품 범주 요청에 대한 응답은 하루 종일 API에 대한 호출이 있을 때마다 동일하므로, 하루 동안 API 응답을 캐싱하는 것으로 충분합니다. API 응답을 캐싱함으로써 애플리케이션 서버 및 데이터베이스를 비롯한 인프라에 가해지는 부담을 줄일 수 있습니다. 또한 응답 시간이 빨라져 더 높은 성능의 API를 제공할 수 있습니다.

Amazon API Gateway는 어떤 규모에서도 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링, 보호할 수 있도록 지원하는 완전관리형 서비스입니다.

하이브리드 클라우드 환경에는 클라우드에 상주하면서 온프레미스 데이터베이스에 자주 액세스해야 하는 애플리케이션이 있을 수 있습니다. VPN 및 Direct Connect를 비롯하여, 클라우드와 온프레미스 환경 간의 연결을 구현하기 위해 사용할 수 있는 다양한 네트워크 토폴로지가 있습니다. 또한 VPC에서 온프레미스 데이터 센터까지의 지연 시간이 짧더라도, 전체 데이터 검색 성능을 가속화하기 위해 클라우드 환경에서 온프레미스 데이터를 캐싱하는 것이 가장 바람직할 수도 있습니다.

최종 사용자에게 웹 콘텐츠를 제공할 때, 아티팩트를 캐싱하여 디스크 읽기와 서버 로드를 배제하면 이미지, html 문서, 동영상 등의 웹 자산 검색과 관련된 대부분의 지연 시간을 크게 줄일 수 있습니다. 서버와 클라이언트 양쪽 모두에서 다양한 웹 캐싱 기술을 활용할 수 있습니다. 서버 측 웹 캐싱은 일반적으로 프런트에 위치한 웹 서버의 웹 응답을 보존하는 웹 프록시를 활용하여 로드 및 대기 시간을 효과적으로 줄입니다. 클라이언트 측 웹 캐싱에는 이전에 방문한 웹 콘텐츠의 캐싱된 버전을 유지하는 브라우저 기반 캐싱이 포함될 수 있습니다. 웹 캐싱에 대해 자세히 알아보려면 여기를 클릭하세요.

메모리에서 데이터에 액세스하면 디스크나 SSD에서 데이터에 액세스하는 것보다 훨씬 빠르기 때문에 캐시의 데이터를 활용하면 많은 이점이 있습니다. 트랜잭션 데이터 지원이나 디스크 기반의 내구성이 필요하지 않은 여러 사용 사례에서 인 메모리 키-값 스토어를 독립 실행형 데이터베이스로 사용하는 방법은 고성능 애플리케이션을 구축하는 데 효과적입니다. 애플리케이션 속도는 물론, 경제적인 가격으로 제공되는 높은 처리량을 통해 이점을 얻을 수 있습니다. 제품 그룹, 범주 목록, 프로파일 정보 등의 참조 가능한 데이터는 일반 캐시의 좋은 사용 사례입니다. 일반 캐시에 대해 자세히 알아보려면 여기를 클릭하세요.

통합 캐시는 오리진 데이터베이스에서 자주 액세스하는 데이터를 자동으로 캐싱하는 인 메모리 계층입니다. 가장 일반적으로, 기반 데이터베이스는 데이터가 캐시에 상주하는 경우 캐시를 사용하여 인바운드 데이터베이스 요청에 대한 응답을 제공합니다. 이 경우 요청 지연 시간이 단축되고 데이터베이스 엔진의 CPU 및 메모리 사용률이 감소하여 데이터베이스의 성능이 크게 향상됩니다. 통합 캐시의 중요한 특성 중 하나는 캐싱된 데이터가 데이터베이스 엔진이 디스크에 저장한 데이터와 일치한다는 것입니다.

산업군

모바일 애플리케이션은 소비자용 디바이스의 빠른 보급과 전통적인 컴퓨터 장비의 사용 감소와 함께 놀라울 정도로 빠르게 성장 중인 시장 부문입니다. 게임, 상용 애플리케이션, 의료용 애플리케이션 등 분야를 막론하고 오늘날 거의 모든 시장 부문에서 모바일 친화적인 애플리케이션이 사용되고 있습니다. 애플리케이션 개발의 관점에서 모바일 애플리케이션을 구축하는 것은 다른 형태의 애플리케이션을 구축하는 것과 매우 유사합니다. 프레젠테이션 계층, 비즈니스 계층, 데이터 계층 등 신경을 써야 할 부분도 동일합니다. 화면 면적과 개발 도구는 다르지만, 우수한 사용자 환경을 제공하는 것이 모든 애플리케이션에 공통된 목표입니다. 효과적인 캐싱 전략을 통해 모바일 애플리케이션에서 사용자가 기대하는 성능을 제공하고 대규모로 확장하며 전반적인 비용을 절감할 수 있습니다.

AWS Mobile Hub는 모바일 앱을 구축 및 테스트하고 앱 사용을 모니터링하는 AWS 클라우드 서비스를 검색, 구성, 액세스할 수 있는 통합 환경을 제공하는 콘솔입니다.

사물 인터넷(Internet of Things)은 디바이스 센서를 통해 디바이스와 물리적 세계에서 정보를 수집하여 데이터를 소비하는 인터넷 또는 애플리케이션에 제공하는 개념입니다. IoT의 가치는 거의 실시간에 가까운 간격으로 캡처된 데이터를 파악할 수 있기 때문에 궁극적으로 데이터를 소비하는 소비 시스템과 애플리케이션이 해당 데이터에 신속하게 반응할 수 있게 됩니다. GPS 좌표를 전송하는 디바이스를 예로 들 수 있습니다. 이 경우 IoT 애플리케이션은 해당 좌표와 인접한 관심 지점을 추천하는 식으로 반응할 수 있습니다. 또한 디바이스 사용자와 관련한 기본 설정을 저장한 경우 해당 개인에 맞게 추천 항목을 세부적으로 조정할 수 있습니다. 이 예에서는 특히, 애플리케이션이 좌표에 반응할 수 있을 정도의 빠른 속도가 우수한 사용자 경험을 달성하는 데 있어 매우 중요하다. 여기서 캐싱이 중요한 역할을 할 수 있습니다. 예를 들어 관심 지점과 지리적 좌표를 Redis와 같은 키-값 저장소에 저장하여 빠른 검색을 지원할 수 있습니다. 애플리케이션 개발 관점에서 볼 때, 프로그래밍 방식으로 그렇게 할 수 있는 상황인 경우, 기본적으로 IoT 애플리케이션을 코드화하여 모든 이벤트에 응답할 수 있습니다. IoT 아키텍처를 구축할 때 고려해야 할 중요한 사항 중 하나는 수집된 데이터를 분석하고, N개의 디바이스로 확장할 수 있는 솔루션을 설계하고, 비용 효율적인 아키텍처를 제공하는 데 필요한 응답 시간입니다.

AWS IoT는 커넥티드 디바이스가 쉽고 안전하게 클라우드 애플리케이션 및 다른 디바이스와 상호 작용할 수 있게 해 주는 관리형 클라우드 플랫폼입니다.

참고 자료: Managing IoT and Time Series Data with Amazon ElastiCache for Redis

모던 애드테크 애플리케이션은 성능 면에서 특히 까다롭습니다. 애드테크에서 빠르게 성장하고 있는 분야 중 하나로 실시간 입찰(RTB)이 있는데, 이는 광고의 노출 수준을 세분화하여 디지털 디스플레이 광고를 실시간으로 거래하기 위한 경매 기반 접근 방식입니다. 2015년에 RTB는 미국에서만 프로그래밍 방식으로 구매한 광고의 74.0%를 차지했으며, 이는 금액으로 110억 USD(eMarketer Analysis 기준)에 해당하는 수치입니다. 실시간 입찰 앱을 만들 때, 밀리초 차이는 입찰을 제때 제출하지 못하게 될 수도 있는 문제입니다. 즉, 데이터베이스에서 입찰 정보를 매우 빠른 속도로 얻을 수 있어야 한다는 의미입니다. 입찰 세부 정보에 1밀리초 이내에 액세스할 수 있는 데이터베이스 캐싱은 이러한 고성능을 실현하기 위한 훌륭한 솔루션입니다.

인터랙티브 기능은 거의 모든 최신 게임의 기본 요건입니다. 속도가 느린 게임이나 반응이 없는 게임만큼 플레이어에게 실망을 주는 것은 없으며, 이러한 게임은 좀처럼 성공하지 못합니다. 성능에 대한 요구 사항은 한 명의 플레이어가 수행하는 작업을 실시간으로 다른 플레이어와 공유해야 하는 모바일 멀티플레이어 게임의 경우 더욱 까다롭습니다. 캐싱은 자주 액세스하는 데이터에 대해 밀리초 미만의 쿼리 응답 속도를 제공하여 게임을 원활하게 유지하는 데 중요한 역할을 합니다. "점수 기준으로 현재 상위 10위권 선수가 누구인가"와 같은 동일한 데이터를 여러 번 쿼리할 때 발생하는 핫키 문제를 해결하는 데에도 도움이 됩니다.

AWS 기반 게임 개발에 대해 자세히 알아보려면 여기를 클릭하세요.

미디어 회사들은 수시로 그 수가 바뀌는 독자 또는 시청자로 이루어진 고객에게 대량의 정적 컨텐츠를 전송하는 문제를 해결해야 합니다. 시청자들에게 대량의 비디오 컨텐츠를 스트리밍하는 Netflix나 Amazon Video 같은 비디오 스트리밍 서비스가 대표적인 예입니다. 전 세계에 분산된 캐싱 서버 집합에 데이터가 저장되는 콘텐츠 전송 네트워크가 이러한 사용 사례에 적합합니다. 미디어 애플리케이션의 또 다른 특징은 로드가 급증하고 예측 불가능한 경향이 있다는 것입니다. 유명인이 방금 트위터에 올린 블로그나 슈퍼볼 기간 동안의 축구 팀 웹 사이트를 떠올려 보세요. 대부분의 데이터베이스는 키당 처리량이 제한되어 있기 때문에, 이와 같이 일부 콘텐츠에서 수요가 급증하는 현상은 문제가 될 수 있습니다. 메모리는 디스크보다 처리량이 훨씬 더 높기 때문에 데이터베이스 캐시는 읽기를 메모리 캐시로 리디렉션하여 문제를 해결합니다.

모던 전자 상거래 애플리케이션은 사용자의 데이터와 쇼핑 기록을 기반으로 하는 실시간 제품 추천을 비롯하여 개인화된 쇼핑 환경을 제공하는 등 갈수록 정교해지고 있습니다. 또한 사용자의 소셜 네트워크를 살펴보고 친구들이 좋아하거나 구입한 제품을 기준으로 추천을 제공하는 경우도 있습니다. 처리해야 할 데이터의 양은 증가하고 있지만, 고객의 인내심은 그렇지 않습니다. 따라서 실시간으로 애플리케이션 성능을 유지하는 것은 사치가 아니라 필수입니다. 캐싱 전략은 애플리케이션 성능의 중요한 측면이며, 애플리케이션의 성공과 실패, 제품 판매와 고객 손실을 판가름하는 중요한 차이가 될 수 있습니다.

소셜 미디어 앱이 세계를 강타했습니다. Facebook, Twitter, Instagram, Snapchat 등 소셜 네트워크의 방대한 사용자들이 갈수록 많은 양의 콘텐츠를 소비하고 있습니다. 사용자는 피드를 열었을 때 개인화된 최신 콘텐츠를 거의 실시간으로 볼 수 있을 것으로 여깁니다. 게다가 정적 콘텐츠가 아니라, 사용자마다 친구, 이미지, 관심사 등이 다르기 때문에 이는 기본 플랫폼의 엔지니어링 복잡성을 가중시킵니다. 또한 소셜 미디어 앱은 주요 엔터테인먼트, 스포츠 및 정치 이벤트가 있을 때 사용량이 급증하는 경향이 있습니다. 이러한 급증 복원력과 실시간 성능은 백그라운드 이미지 같은 정적 콘텐츠를 위한 콘텐츠 전송 네트워크, 사용자의 현재 세션 데이터를 추적하는 세션 캐시, 친한 친구로부터의 최신 뉴스와 최신 이미지 등 자주 액세스하는 데이터를 간편하게 유지하는 데이터베이스 캐시를 비롯한 여러 캐싱 계층을 통해 달성됩니다.

의료 산업은 디지털 혁명을 거치면서 점점 더 전 세계의 더 많은 환자들이 진료를 이용하고 의료 서비스에 접근할 수 있게 되었습니다. 일부 애플리케이션은 환자가 화상으로 의사의 진료를 받을 수 있도록 하며, 대부분의 주요 의료 서비스 제공자는 환자가 검사 결과를 확인하고 의료진과 상호 작용할 수 있도록 하는 앱을 제공하고 있습니다. 건강 관리 측면에서는 사용자의 특정 센서 활동(예: FitBit 및 Jawbone) 추적부터 포괄적인 건강 관리 코칭 및 데이터에 이르기까지 다양한 애플리케이션이 있습니다. 이러한 애플리케이션의 대화형 특성을 감안할 때 빠른 성능의 애플리케이션, 비즈니스 및 데이터 계층에 대한 필요성을 해결해야 합니다. 효과적인 캐싱 전략을 통해 빠른 성능을 제공하고, 전반적인 인프라 비용을 절감하며, 사용량의 증가에 따라 확장할 수 있습니다.

AWS 기반 의료 서비스 앱을 구축하는 방법에 대해 자세히 알아보려면 여기를 클릭하세요.

사람들이 금융 서비스를 소비하는 방식은 최근 몇 년간 극적으로 발전해 왔습니다. 그 과정에서 은행 및 보험 서비스 액세스, 부정 행위 탐지, 투자 서비스, 실시간 알고리즘을 통한 자본 시장 최적화 등의 애플리케이션이 등장했습니다. 고객의 금융 데이터에 실시간으로 액세스하여 송금 또는 결제와 같은 거래를 할 수 있도록 하는 것은 쉬운 일이 아닙니다. 첫째, 사용자가 거의 실시간으로 앱과 상호 작용하기를 원하는 여타의 애플리케이션과 유사한 제약 조건이 적용됩니다. 또한 금융 애플리케이션에는 보안 강화 및 부정 행위 탐지와 같은 추가 요구 사항이 적용될 수 있습니다. 그런 만큼 다중 계층 캐싱 전략을 비롯한 효율적인 아키텍처는 사용자가 기대하는 성능을 실현하는 데 있어 매우 중요합니다. 애플리케이션 요구 사항에 따라 캐싱 계층에는 사용자의 세션 데이터를 저장하는 세션 캐시, 정적 콘텐츠를 제공하기 위한 콘텐츠 전송 네트워크, 고객이 가장 최근에 구매한 10가지 품목 같이 자주 액세스하는 데이터를 위한 데이터베이스 캐시가 포함됩니다.

AWS 기반 금융 서비스 앱에 대해 자세히 알아보려면 여기를 클릭하세요.