Amazon Web Services 한국 블로그
Amazon DynamoDB 업데이트 – 글로벌 테이블 및 온 디맨드 백업 기능 출시
다양한 산업 분야의 AWS 고객이 Amazon DynamoDB를 이용해 미션 크리티컬 데이터를 저장합니다. 금융 서비스, 상거래, AdTech, IoT 및 게임 애플리케이션 등은 수백 테라바이트 용량의 데이터 및 수조 개의 항목으로 구성된 개별 테이블로 초당 수백만 건의 요청을 처리하고 DynamoDB를 사용해 몇 밀리초 이내에 결과를 반환합니다.
지금부터 여러분이 좋아할 만한 강력한 새 기능 두 가지를 소개하겠습니다.
- 글로벌 테이블 – 이제 몇 번의 클릭만으로 멀티 마스터 쓰기를 완벽하게 지원하면서 두 곳 이상의 AWS 리전에 걸쳐 자동으로 복제되는 테이블을 생성할 수 있습니다. 따라서 복제 프로세스를 관리할 필요 없이 글로벌 사용자 기반을 겨냥해 대규모로 확장되는 애플리케이션을 빠르게 구축할 수 있습니다.
- 온 디맨드 백업 – 이제 한 번의 클릭으로 성능이나 가용성에 전혀 영향을 미치지 않으면서 DynamoDB 테이블의 전체 백업을 만들 수 있습니다. 애플리케이션은 온라인 상태를 유지하고 최고 속도로 실행됩니다. 백업은 장기 보존 및 보관에 적합하며 규정 요구 사항을 준수하는 데 도움이 될 수 있습니다.
글로벌 테이블
DynamoDB는 이미 3개 가용 영역에 걸쳐 테이블을 복제하여 내구성이 뛰어난 고가용성 스토리지를 제공합니다. 이제 글로벌 테이블을 사용하여 두 곳 이상의 AWS 리전에 걸쳐 테이블을 복제하고 몇 번의 클릭만으로 설정할 수 있습니다. 가장 까다로운 글로벌 앱의 필요에 따라 확장 가능한, 빠른 읽기 및 쓰기 성능을 얻을 수 있습니다.
기존 코드를 변경할 필요는 없습니다. 지정된 리전의 DynamoDB 엔드포인트로 쓰기 요청 및 최종적 일관된 읽기 요청을 보내기만 하면 됩니다(강력한 일관된 읽기와 관련된 쓰기는 공통 엔드포인트를 공유해야 함). 보이지는 않지만 DynamoDB가 멀티 마스터 쓰기를 구현하고 특정 항목에 대한 마지막 쓰기가 우선 적용되도록 합니다. 글로벌 테이블을 사용하면 각 항목에는 가장 최근의 쓰기 시간을 나타내는 타임스탬프 속성이 포함됩니다. 업데이트는 DynamoDB Streams를 통해 다른 리전에 비동기식으로 전파되며 일반적으로 1초 이내에 완료됩니다(새로운 ReplicationLatency 및 PendingReplicationCount 측정치를 사용하여 추적 가능).
시작 방법은 간단합니다. 일반적인 방법으로 테이블을 만든 다음, 한 번 클릭으로 추가하여 다른 리전으로의 복제를 예약합니다. 모두 동일한 이름과 키 구성(해시 및 선택적 정렬)의 빈 테이블을 가지고 시작해야 합니다. 모든 테이블은 Auto Scaling, TTL, 로컬 보조 인덱스, 글로벌 보조 인덱스, 프로비저닝된 처리량 설정 및 IAM 정책 집합도 일관되게 공유해야 합니다. 편의를 위해 새로운 글로벌 테이블에서는 Auto Scaling이 자동으로 활성화됩니다.
DynamoDB Auto Scaling을 사용하지 않을 경우 로컬 리전에서 시작되는 각 애플리케이션 쓰기에 대한 추가 시스템 쓰기 및 그룹의 모든 테이블에서의 쓰기를 수용하기에 충분한 쓰기 용량과 로컬 읽기를 처리하기에 충분한 읽기 용량을 프로비저닝해야 합니다. 시스템 쓰기는 최종 쓰기가 우선 적용되는 모델을 지원하는 데 사용됩니다.
세 개 리전에 걸쳐 있는 글로벌 테이블을 생성해보겠습니다. 일반적인 방법으로 테이블을 만든 후 [Global Tables] 탭을 클릭합니다.
DynamoDB는 테이블을 검사하여 요구 사항을 충족하는지 확인하고, 사용자에게 DynamoDB Streams를 활성화할 것을 지시합니다. 이제 [Add region]을 클릭하고 [EU (Frankfurt)]를 선택한 후 [ Continue:]를 클릭합니다.
테이블이 즉시 생성됩니다.
이 작업을 한 번 더 반복하면 세 개 AWS 리전에 걸쳐 있는 글로벌 테이블이 만들어집니다.
[EU (Ireland)]에 항목을 생성합니다.
만드는 즉시 [EU (Frankfurt)]에 표시됩니다.
교차 리전 복제 프로세스에 aws:rep:updateregion 및 aws:rep:updatetime 속성이 추가됩니다. 애플리케이션에서 볼 수 있지만 수정해서는 안 됩니다.
글로벌 테이블은 현재 미국 동부(버지니아 북부), 미국 동부(오하이오), EU(아일랜드), EU(프랑크푸르트) 리전에서 사용할 수 있으며 2018년에 더 많은 리전이 추가될 예정입니다. 교차 리전 복제를 위한 데이터 전송 요금과 함께 읽기 용량 및 스토리지에 대한 통상적인 DynamoDB 요금을 지불하면 됩니다. 쓰기 용량은 복제된 쓰기 용량 단위로 청구됩니다.
온 디맨드 백업
이 기능은 장기 보관 및 데이터 보존에 대한 규정 요구 사항을 준수하도록 만들어졌습니다. 프로비저닝된 처리 용량을 소비하거나 애플리케이션의 응답에 영향을 주지 않고 클릭(또는 API 호출) 한 번으로 백업을 만들 수 있습니다. 백업은 내구성이 뛰어난 형태로 저장되며 새 테이블을 만드는 데 사용할 수 있습니다.
이제 DynamoDB 콘솔에 백업 섹션이 포함됩니다.
[Create backup]을 클릭하고 백업 이름을 지정하기만 하면 됩니다.
백업은 즉시 사용할 수 있습니다! 백업은 Amazon에서 관리하는 키로 암호화되며 모든 테이블 데이터, 프로비저닝된 용량 설정, 로컬 및 글로벌 보조 인덱스 설정 및 스트림이 포함됩니다. Auto Scaling 또는 TTL 설정, 태그, IAM 정책, CloudWatch 측정치 또는 CloudWatch 경보는 포함되지 않습니다.
일부 고객이 0.5페타바이트에 가까운 테이블을 가지고 있는 상황에서 이 작업이 어떻게 즉시 이루어질 수 있는지 궁금할 수 있습니다. 보이지는 않지만 DynamoDB가 전체 스냅샷을 생성하고 모든 변경 로그를 저장합니다. 백업 생성은 테이블의 현재 메타데이터와 함께 타임스탬프를 저장하는 작업만큼 간단합니다.
저의 백업입니다.
새 테이블로 복원하는 방법은 이와 같습니다.
다음은 DynamoDB 백업과 관련하여 몇 가지 유의해야 할 사항입니다.
- 설정 – 새 테이블을 만든 후 DynamoDB가 몇 가지 설정 작업(책상에서 점심 식사를 하는 시간이면 충분)을 수행해야 첫 번째 백업을 생성할 수 있습니다.
- 복원 – 복원 시간은 테이블의 크기에 따라 달라지며, 30분에서 몇 시간(매우 큰 테이블의 경우)에 이릅니다.
- 가용성 – 현재 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오레곤), EU(아일랜드) 리전에 최초로 이 새로운 기능을 선보이고 있으며, 조속한 시일 내에 계정 단위로 제공할 계획입니다.
- 요금 – 기가바이트-월 단위로 백업 스토리지 비용을 지불하고 복원하는 데이터 양에 따라 복원이 진행됩니다.
지금 일부 리전에서 바로 사용 가능하며, 향후 계속 가능 리전이 확대될 것입니다.
– Jeff;
이 글은 AWS re:Invent 2017 신규 서비스 소식으로 Amazon DynamoDB Update – Global Tables and On-Demand Backup의 한국어 번역입니다.