You are a developer, not a coder.

Amazon ElastiCache 본문

AWS/기본 개념

Amazon ElastiCache

Mattmk 2020. 2. 20. 16:19
SMALL

1. Amazon ElastiCache란?

Amazon ElastiCache를 사용하면 널리 사용되는 오픈 소스 호환 인 메모리 데이터 스토어를 클라우드에서 원활하게 설정, 실행 및 크기 조정을 할 수 있다. 처리량이 많고 지연 시간이 짧은 인 메모리 데이터 스토어에서 데이터를 검색하여 데이터 집약적 앱을 구축하거나 기존 DB 성능을 강화 한다.

Amazon ElastiCache는 캐싱, 세션 스토어, 게이밍, 지리공간 서비스, 실시간 분석 및 대기열과 같은 실시간 사용 사례에 많이 선택 된다. Amazon ElastiCache는 밀리초 미만의 응답 시간을 필요로 하는 가장 까다로운 애플리케이션을 위한 완전관리형 Redis 및 Memcached를 제공한다.

 

2. 이점

탁월한 성능

Amazon ElastiCache는 1밀리초 미만의 응답 시간이 필요한 가장 까다로운 애플리케이션을 지원할 수 있도록 인 메모리 데이터 스토어 및 캐시의 역할을 한다. 또한, 고객 전용 노드에서 실행되는 엔드투엔드 최적화 스택을 활용하여 안전하고 놀라울 정도로 빠른 성능을 제공한다.

 

완전관리형

더이상 하드웨어 프로비저닝, 소프트웨어 패치, 설정, 구성, 모니터링, 장애 복구 및 백업과 같은 관리 작업을 수행할 필요가 없다. 워크로드가 계속 실행될 수 있도록 Amazon ElastiCache에서 클러스터를 지속적으로 모니터링 하므로 사용자는 더 중요한 애플리케이션 개발에 집중할 수 있다.

 

확장성

Amazon ElastiCache는 변동이 심한 애플리케이션 수요에 맞춰 스케일아웃, 스케일인, 스케일업 된다.

쓰기 및 메모리 크기 조정은 샤딩을 통해 지원한다. 읽기 크기 조정은 복제본에서 제공한다.

  • 샤딩(Sharding) 이란?

  샤딩이란, 단일의 데이터를 다수의 데이터 베이스로 쪼개어 나누는 것을 말합니다. 특히, 단일의 데이터 베이스에서

  저 장하기 너무 클 때 사용합니다. 이렇게 데이터를 구간 별로 쪼개어 나눔으로써 노드에 무겁게 가지고 있던

  데이터를 빠르게 검증할 수 있어 빠른 트랜잭션 속도를 가질 수 있게 됩니다. 또한, 샤드란 샤딩을 통해 나누어진

  블록들의 구간 (혹은 Epoch)을 ‘샤드’라고 부릅니다.

3. 서비스 종류

(1) Redis용 Amazon ElastiCache

 

인터넷 규모의 실시간 애플리케이션을 지원할 수 있도록 1밀리초 미만의 지연시간을 제공하는 놀랍도록 빠른 인 메모리 데이터 스토어 이다. 오픈 소스 Redis를 기반으로 구축되고, Redis API와 호환 및 Redis 클라이언트와 연동 되며 개방형 Redis데이터형식을사용하여데이터를저장한다.

자가 관리형 Redis 애플리케이션은 코드 변경 없이 Redis용 ElastiCache과 원활하게 연동될 수 있다.

오픈소스 Redis의 속도, 간편성, 다양성, Amazon의 관리 편의성, 보안, 확장성을 결합하여 게임, 광고 기술, 전자 상거래, 의료 서비스, 금융 서비스 및 IoT분야에서 가장 까다로운 실시간 애플리케이션을 지원한다.

 

(1-1) 이점

 

탁월한 성능

작업을 위해서는 대부분 디스크까지 왕복해야 하는 디스크 기반 데이터베이스와는 대조적으로, 인 메모리 데이터 스토어는 데이터를 인 메모리에서 관리하므로 훨씬 더 많은 작업을 더 빠르게 지원할 수 있다. 따라서 평균 읽기, 쓰기 작업 속도 1밀리초 미만이라는 놀랍도록 빠른 성능으로 초당 수백만 건의 작업을 지원할 수 있다. ElastiCache는 놀랍도록 빠른 성능을 위해 최적화된 엔드 투 엔드 하드웨어 + 소프트웨어 스택을 제공한다.

 

완전관리형 및 강화형

ElastiCache에서 Redis가 계속 실행될 수 있도록 클러스터를 지속적으로 모니터링하므로 사용자는 더 가치가 높은 애플리케이션 개발에 집중할 수 있다. 또한, 노드와 관련된 세부 모니터링 지표를 제공하므로 사용자가 문제를 빠르게 진단하고 대응할 수 있다. ElastiCache는 오픈 소스 Redis의 가용성과 관리 편의성을 개선할 수 있도록 자동 쓰기 조절, 지능형 스왑 메모리 관리 및 향상된 장애 조치 기능을 추가로 제공한다.

 

Redis와 호환 가능

Redis는 데이터베이스, 캐시, 메시지 브로커 및 대기열로 널리 사용되는 인 메모리 데이터 스토어 이다. Redis용 Amazon ElastiCache는 오픈 소스 Redis 데이터 형식 및 Redis API와 호환성을 유지하며, Redis 클라이언트와 연동된다. 코드 변경 전혀 없이 자가 관리형 Redis 워크로드를 Redis용 ElastiCache로 마이그레이션할 수 있다.

 

높은 가용성과 안정성

Redis 클러스터 모드를 지원하며, 자동 장애 조치에 대한 지원을 통해 고가용성을 제공한다. 자동 장애 조치에서는 기본 노드 장애를 탐지하고 미치는 영향을 최소화하여 복제본이 기본 노드가 되도록 승격한다. 이 서비스에서는 가용 영역 전체에서 읽기 전용 복제본을 지원함으로써 애플리케이션의 읽기 가용성을 지원하므로, 증가된 워크로드로 인해 기본 노드를 사용할 수 없을 때 읽기 전용 복제본이 제공될 수 있다.

 

간편하게 확장 가능

Amazon ElastiCache for Redis에서는 작게 시작하여 애플리케이션이 성장함에 따라 손쉽게 Redis 데이터를 확장할 수 있다. 라인 클러스터 크기 조정 기능을 지원하므로 가동 중단 없이 Redis 클러스터를 확장 및 축소하고 수요 변화에 대응할 수 있다. 읽기 용량을 조정하기 위해 ElastiCache에서는 여러 가용 영역에 걸쳐 최대 5개의 읽기 전용 복제본을 추가할 수 있도록 허용한다. 쓰기 용량을 조정하기 위해 ElastiCache에서는 Redis 클러스터를 지원한다. 따라서 여러 기본 노드에 걸쳐 쓰기 트래픽을 파티셔닝할 수 있다.

 

보안 및 규정 준수

Redis용 Amazon ElastiCache는 Amazon VPC를 지원하므로, 노드용으로 선택한 IP 범위로 클러스터를 분리할 수 있다. 또한, 보안 관련 패치를 즉시 적용하여 Redis 환경을 안전하게 유지합니다. PCI를 준수하고 HIPAA 적격 서비스이며 FedRAMP 인증을 받았고, 안전한 노드 간 통신을 위해 전송 중 암호화, 저장 중 암호화(AWS KMS에 저장된 고객 관리형 CMK 포함) 및 Redis AUTH를 제공하므로 PII(개인 식별 정보)와 같은 민감한 데이터를 안전하게 유지하는 데 도움이 된다.

 

 

Amazon ElastiCache for Redis 작동 방식

 

(1-2) 사용 사례

Redis용 Amazon ElastiCache는 캐싱, 채팅/메시징, 게임 순위표, 지리 공간, 기계 학습, 미디어 스트리밍, 대기열, 실시간 분석 및 세션 스토어와 같은 실시간 트랜잭션 및 분석 처리 사용 사례에 매우 적합하다.

 

 

(2) Memcached용 Amazon ElastiCache

 

Memcached용 Amazon ElastiCache는 캐시 또는 데이터 스토어로 사용할 수 있는 Memcached 호환 인 메모리 키-값 스토어 서비스이다. Memcached의 성능, 사용 편의성 및 단순성을 제공한다. Memcached용 ElastiCache는 확장 가능하고 안전한 완전관리형 서비스로서 자주 액세스하는 데이터가 인 메모리에 상주해야 하는 사용 사례에 적합하다. 웹, 모바일 앱, 게임, 광고 기술 및 전자 상거래와 같은 사용 사례에 주로 사용된다.

 

(2-1) 이점

 

탁월한 성능

1밀리초 미만의 응답 시간이 필요한 가장 까다로운 애플리케이션을 지원할 수 있도록 인 메모리 데이터 스토어 및 캐시의 역할을 한다. Amazon Elasticache는 고객 전용 노드에서 실행되는 포괄적으로 최적화된 스택을 활용하여 안전하고 놀라울 정도로 빠른 성능을 제공한다.

 

간편하게 확장 가능

Memcached용 Amazon ElastiCache에는 샤딩이 포함되어 있으므로 인 메모리 캐시를 클러스터당 최대 20개의 노드와 12.7TiB까지 확장할 수 있다.

 

보안 강화

Amazon VPC를 지원하므로, 노드용으로 선택한 IP 범위로 클러스터를 분리하고 이를 사용하여 애플리케이션에 연결할 수 있다. ElastiCache는 지속적으로 노드를 모니터링하고 환경을 안전하게 유지하는 데 필요한 패치를 적용한다.

 

완전관리형

더 이상 하드웨어 프로비저닝, 소프트웨어 패치, 설정, 구성, 모니터링 및 장애 복구와 같은 관리 작업을 수행할 필요가 없다. 워크로드가 계속 실행될 수 있도록 ElastiCache에서 클러스터를 지속적으로 모니터링하므로 사용자는 더 중요한 애플리케이션 개발에 집중할 수 있다.

 

MEMCACHED 호환

Memcached는 널리 채택된 메모리 객체 캐싱 시스템이다. ElastiCache는 Memcached와 호환되므로 기존 Memcached 환경에서 사용하는 주요 도구가 ElastiCache에서 원활하게 작동한다.

 

자동 검색

자동 검색이 있는 Memcached용 ElastiCache 클러스터 클라이언트는 애플리케이션이 Memcached 클러스터에 연결하는 방법을 간소화하여 시간을 절약한다. 이 클라이언트는 단일 클러스터 엔드포인트에 연결하고 다른 노드에 대한 구성 정보를 가져온다. 노드가 추가되거나 제거되면 클라이언트가 가장 최신 노드 세트를 사용하도록 자체적으로 재구성한다.

 

 

Memcached용 Amazon ElastiCache 작동 방식

 

(2-2) 사용 사례

 

캐싱

Memcached용 Amazon ElastiCache는 액세스 지연 시간을 줄이고, 처리량을 늘리며, 관계형 또는 NoSQL 데이터베이스의 부담을 덜도록 인 메모리 캐시를 구현하기에 매우 적합한 구조이다. Amazon ElastiCache를 사용하면 빈번하게 요청되는 항목을 1밀리초 미만의 응답 시간으로 지원할 수 있고 고가의 백엔드 데이터베이스 계층을 추가하지 않고도 손쉽게 확장하여 더 많은 로드를 처리할 수 있다. 데이터베이스 쿼리 결과 캐싱, 영구 세션 캐싱 및 전체 페이지 캐싱은 Memcached용 ElastiCache에서 널리 사용되는 캐싱의 예 이다.

 

세션 스토어

Memcached용 Amazon ElastiCache에서는 세션 스토어를 손쉽게 생성할 수 있다. 여러 노드에 분산될 수 있는 Memcached 해시 테이블을 사용하면 된다. 세션 스토어 확장은 새로운 노드를 활용하도록 노드를 추가하고 클라이언트를 업데이트하는 것만큼 쉽다.

 

4. Caching Design Patterns

Lazy caching

게으른 채우기(lazy population) 또는 cache-aside는 가장 널리 사용되는 캐싱 형식입니다. 게으름(Laziness)은 좋은 캐싱 전략(strategy)의 기초가되어야합니다. 기본 아이디어는 객체가 실제로 응용 프로그램에서 요청한 경우에만 캐시를 채우는 것입니다.

 

https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/Strategies.html

 

docs.aws.amazon.com

 

LIST

'AWS > 기본 개념' 카테고리의 다른 글

Amazon CloudFront  (0) 2020.02.20
Amazon DynamoDB Accelerator(DAX)  (0) 2020.02.20
AWS CloudFormation  (0) 2020.02.20
AWS Step Functions  (0) 2020.02.18
Amazon Simple Queue Service  (0) 2020.02.18
Comments