Amazon DynamoDB – 엔터프라이즈 지원을 위한 기능 요약
2012년 초에 Amazon DynamoDB를 처음 소개하면서 다음과 같은 말씀을 드린 바 있습니다.
“생각을 크게, 꿈을 크게 가지고 수억 명에 사용자까지 순식간에 확장 가능한 데이터 집약적 애플리케이션을 상상해 보시기 바랍니다. 귀사의 성공에 데이터베이스가 장애물이 되지 않아야 할 것입니다. 앱과 사용자 기반 확보에 주력하시고 이를 위한 기능은 저희에게 맡겨 두시기 바랍니다.”
6년이 지난 지금, 매일 수조 회의 요청을 처리하는 DynamoDB는 10만 곳 이상의 AWS 고객이 선택한 NoSQL 데이터베이스가 되었습니다.
저는 수시로 과거를 돌아보면서, 가장 최근에 출시된 내용들을 요약해 드리곤 합니다. 빠르게 진행되는 혁신 속도로 인해 여러분이 중요한 사항을 놓치지 않을 뿐만 아니라 개별 출시를 큰 그림 안에서 볼 수 있는 기회도 제공해 드리기 위함입니다.
엔터프라이즈를 위한 기능
최근의 DynamoDB 출시 중 많은 부분은 엔터프라이즈 고객의 요구 사항을 충족하기 위한 것이었습니다. 그 예로 다음과 같은 업데이트가 출시되었습니다.
- 전역 테이블 – 작년 11월에 발표된 전역 테이블은 둘 이상의 AWS 리전에서 존재하면서 리전 간의 빠른 자동 복제를 지원합니다.
- 암호화 – 2월에 발표된 이 기능을 사용하면 유휴 상태에서 오버헤드 없이 테이블을 암호화할 수 있습니다.
- 지정 시간 복구 – 3월에 발표된 이 기능에서는 연속 백업이 테이블을 1초 단위로 과거 35일까지의 이전 상태로 테이블을 복원하는 기능을 지원합니다.
- DynamoDB 서비스 수준 계약 – 6월에 발표된 SLA는 DynamoDB 테이블의 가용성 기대치를 정의합니다.
- 적응형 용량 – 새로운 기능은 아니지만 최근의 한 인기 블로그 게시물에서 DynamoDB가 변화하는 액세스 패턴에 자동으로 적응하는 원리에 대해 설명했습니다.
이러한 주요 기능을 하나씩 검토해 보겠습니다. 이러한 기능이 엔터프라이즈에 특히 가치를 지니는 것으로 언급했으나 모든 DynamoDB 사용자에게도 많은 가치가 있을 것입니다.
전역 테이블
저는 서비스나 기능에 대해 편애하는 모습을 보이지 않으려고 노력하지만 솔직히 이 기능은 정말 마음에 듭니다. 이 기능은 사용하면 둘 이상의 AWS 리전에 걸쳐 자동 복제되며 다중 마스터 쓰기를 완전히 지원하는 테이블을 클릭 몇 번으로 생성할 수 있습니다. 테이블은 각 리전 내에서 3곳의 가용 영역에 걸쳐서도 복제되므로 추가적인 수준의 중복성을 제공하며 고속 읽기/쓰기 성능은 글로벌 앱의 까다로운 요구 사항을 충족하도록 확장될 수 있습니다.
전역 테이블은 9곳의 AWS 리전에서 이용 가능하며(최근에 추가 3곳에 대한 지원이 추가되었습니다) 테이블을 생성할 때 설정할 수 있습니다.
자세한 내용은 Amazon DynamoDB 업데이트 – 전역 테이블 및 온디맨드 백업을 참조하십시오.
암호화
AWS 고객은 민감한 데이터를 DynamoDB에 저장하고 있으며 규정 준수 목표를 달성할 수 있도록 이를 보호해야 합니다. 유휴 상태의 암호화 기능은 AES-256을 사용하여 테이블, 로컬 보조 인덱스, 전역 보조 인덱스에 저장된 데이터를 보호합니다. 암호화는 스토리지 오버헤드를 추가하지 않으며 완전히 투명하게 작동하고 고 지연 시간에 영향을 미치지 않습니다. 이 기능은 새 테이블을 생성할 때 클릭 한 번으로 활성화할 수 있습니다.
자세한 내용은 DynamoDB를 위한 유효 상태의 암호화를 참조하십시오.
지정 시간 복구
운영상의 모든 예방 조치를 취하더라도 프로덕션 데이터베이스에 실수로 잘못된 작업을 수행하게 될 수 있습니다. 이는 만약의 문제가 아니라 언제의 문제이며 이 경우 DynamoDB 지정 시간 복구 기능을 사용하여 시간을 되돌리면 최대 35일 전까지의 상태로 데이터를 복원할 수 있습니다. 테이블에 대한 연속 백업이 활성화되어 있다고 가정했을 때 복원 작업을 수행하려면 원하는 시점만 간단히 선택하면 됩니다.
자세한 내용은 Amazon DynamoDB 연속 백업 및 지정 시간 복구(PITR).
서비스 수준 계약
DynamoDB 기반의 애플리케이션을 구축하고 DynamoDB에 미션 크리티컬 데이터를 저장하려는 경우 어떤 가용성을 기대할 수 있는지를 알아야 합니다. DynamoDB 서비스 수준 계약(SLA)은 월간 청구 주기 내에서 단일 리전의 테이블에 대해 99.99% 가용성을, 전역 테이블에 대해 99.999% 가용성을 약속합니다. SLA는 가용성 약속을 지키지 못하는 경우 서비스 크레딧을 제공합니다.
적응형 용량
DynamoDB는 변화하는 워크로드에 적용할 수 있도록 다양한 작업을 백그라운드에서 실행합니다. 예를 들어, 워크로드가 확장 및 진화함에 따라 DynamoDB는 읽기 처리량, 쓰기 처리량 및 스토리지에 대한 변경에 대한 대응으로 샤드를 자동으로 재구성하고 동적으로 여러 스토리지 파티션 간에 데이터를 재분배합니다.
또한 DynamoDB는 적응형 용량 메커니즘을 사용하여 테이블의 스토리지 파티션에 걸친 데이터의 분포가 고르지 않은 상황을 해결합니다. 이 메커니즘은 범위를 벗어나지 않는 한도 내에서 단일 파티션이 얼마든지 필요한 만큼 테이블에 프로비저닝된 전체 용량의 비례분 이상을 소비할 수 있게 해 줍니다. 이 변경 사항부터는 주요 배포와 관련한 이전의 지침이 예전만큼 중요하지 않게 됩니다.
이 기능에 대한 자세한 내용과 DynamoDB 테이블에 대한 예상치 않거나 비정상적인 액세스 패턴을 이 기능을 통해 보상하는 방식에 대한 내용은 Amazon DynamoDB 다양한 데이터 액세스 패턴을 수용하는 방식을 참조하십시오.
마무리
DynamoDB를 위한 엔터프라이즈 스타일의 최근 기능에 대한 간략한 요약을 제공해 드렸습니다. 더 많은 소식을 전해드릴 예정이오니 향후 업데이트를 확인하시기 바랍니다. 더 자세한 것은 제품 페이지 엔터프라이즈 기능 영역을 참고하세요.
— Jeff;
PS – 지난 주에는 컨테이너화된 개발 환경 및 CI 테스팅에 사용할 수 있는 DynamoDB 로컬 Docker 이미지가 출시되었습니다.