You are a developer, not a coder.

Amazon DynamoDB Accelerator(DAX) 본문

AWS/기본 개념

Amazon DynamoDB Accelerator(DAX)

Mattmk 2020. 2. 20. 18:21
SMALL

1. Amazon DynamoDB Accelerator(DAX) 란?

DAX는 DynamoDB를 위한 가용성이 뛰어난 완전관리형 인 메모리 cache로서, 초당 요청 수가 몇 백만 개인 경우에도 몇 밀리초에서 몇 마이크로초까지 최대 10배의 성능을 제공한다.

개발자가 캐시 무효화, 클러스터 관리 또는 데이터 집단을 관리할 필요 없이 DAX가 DynamoDB 테이블에 인 메모리 가속화를 추가하는 데 필요한 모든 작업을 수행한다.

이제 대규모 성능에 대한 걱정 없이 고객을 위해 우수한 애플리케이션을 개발하는 데 집중할 수 있다.

DAX가 기존 DynamoDB API 호출과 호환되므로 애플리케이션 로직을 변경할 필요가 없다는 장점이 존재한다.

AWS Management Console에서 클릭 몇 번 또는 AWS SDK를 사용하여 DAX를 활성화할 수 있다.

DynamoDB에서와 마찬가지로 프로비저닝한 용량에 대해서만 비용을 지불하면 된다.

 

2. 이점

탁월한 성능

DynamoDB에서 일관되게 10밀리초 미만의 지연 시간을 제공하지만, DynamoDB와 DAX가 결합되면 성능을 한 단계 업그레이드하여 읽기 중심의 워크로드에서 초당 수백만 개의 요청에도 마이크로초의 응답 시간을 지원한다. DAX를 사용하면 인기 있는 이벤트 또는 뉴스로 요청 볼륨이 전례 없이 증가하더라도 애플리케이션이 빠른 응답 속도를 유지할 수 있다. 또한, 튜닝작업이 별도로 필요하지 않다.

 

뛰어난 확장성

DynamoDB와 DAX가 결합되면 성능과 규모를 절충할 필요가 없다. DAX에서는 온디맨드로 확장할 수 있다. 노드 3개의 DAX 클러스터로 시작하여 노드를 추가함으로써 용량을 확장할 수 있다. DAX에서는 노드 10개의 클러스터로 확장할 수 있으므로 초당 수백만 개의 요청을 처리할 수 있다.

 

완전관리형

DynamoDB와 마찬가지로 DAX는 완전관리형이다. 따라서 하드웨어나 소프트웨어 프로비저닝, 설정 및 구성, 소프트웨어 패치, 신뢰할 수 있는 분산 캐시 클러스터 운영 또는 확장 시 여러 인스턴스에 데이터 복제 등과 같은 관리 작업에 대해 더 이상 걱정할 필요가 없다. DAX는 장애 탐지, 장애 복구, 소프트웨어 패치와 같은 일반적인 관리 작업 상당 부분을 자동화를 진행한다.

 

사용 편의성

DAX는 Amazon DynamoDB와 긴밀하게 통합되어 있기 때문에 DAX 클러스터를 프로비저닝하고 DAX 클라이언트 SDK를 사용하여 DAX 클러스터에서 기존 DynamoDB API를 가리키기만 하면 DAX에서 나머지를 알아서 처리한다.

DAX는 DynamoDB API와 호환되므로 작동하는 애플리케이션 코드를 변경할 필요가 없다.

DAX는 개선된 성능을 제공하기 위해 백그라운드에서 필요한 모든 작업을 수행한다.

또한, 캐시된 데이터를 검색하면 기존 DynamoDB 테이블에서 읽기 로드가 줄어들기 때문에 프로비저닝된 읽기 용량을 줄이고 전체 운영 비용을 낮출 수도 있는 장점이 존재한다.

 

유연성

DAX에서는 여러 DynamoDB 테이블에 대해 1개의 DAX 클러스터, 1개의 DynamoDB 테이블에 대해 여러 개의 DAX 클러스터 또는 가장 큰 유연성을 제공하는 비율로 이를 프로비저닝할 수 있다.

 

보안

DAX는 IAM을 사용하여 각 사용자에게 고유한 보안 자격 증명을 할당하고 각 사용자의 서비스 및 리소스에 대한 액세스를 제어할 수 있다.  Amazon CloudWatch를 사용하면 시스템 전체의 리소스 사용률, 애플리케이션 성능 및 운영 상태를 파악할 수 있다. 또한, AWS CloudTrail과 통합하면 클러스터 구성의 변경 사항을 손쉽게 기록하고 검사할 수 있다.

VPC도 지원하므로 기존 애플리케이션에서 안전하고 간편하게 액세스할 수 있다. 태깅은 DAX 클러스터를 관리하는 데 도움이 되는 가시성을 추가로 제공한다.

 

3. 정리

DAX를 ElastiCache와 혼합해서 접근해서 생각을 해 보았다.

ElastiCache는 DB(RDS, NOSQL 모두 포함)의 인메모리 구조의 Cache로 사용자가 쿼리를 날리기 전에 In Memory로 저장해서 Search를 해오는 장점이 있다는걸 알고 있다.

DAX는 ElastiCache와 Caching하는 방식이 동일해, DynamoDB에 특화된 ElastiCache가 아닐까 생각이 든다.

 

내가 이해한 DAX는 인메모리구조의 Caching방식을 사용해 데이터를 미리 프로비저닝해서 읽기용량을 줄이고, 프로비저닝한 값에 대해 과금을 하므로 요금을 줄일 수 있는 장점이 있으며, 기존 쿼리(코드라하겠다)를 수정할 필요 없이 AWS SDK를 이용해 연동해서 사용하므로 유연한 장점이 있는 녀석이라 생각이 든다.

 

  • 정리한 ElastiCache 자료 정보

      https://mattmk.tistory.com/13

LIST

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

Amazon CloudWatch  (0) 2020.02.21
Amazon CloudFront  (0) 2020.02.20
Amazon ElastiCache  (0) 2020.02.20
AWS CloudFormation  (0) 2020.02.20
AWS Step Functions  (0) 2020.02.18
Comments