메인 콘텐츠로 건너뛰기

Amazon DynamoDB

글로벌 테이블이란?

DynamoDB 글로벌 테이블은 완전 관리형 서버리스, 다중 리전, 다중 활성 데이터베이스입니다. 글로벌 테이블은 최대 99.999%의 가용성, 향상된 애플리케이션 복원력 및 향상된 비즈니스 연속성을 제공합니다. 글로벌 테이블은 선택한 AWS 리전에서 테이블을 자동으로 복제하므로 빠른 로컬 읽기 및 쓰기 성능을 얻을 수 있습니다.

고객이 글로벌 테이블의 다중 활성 아키텍처를 통해 모든 복제본 테이블을 읽고 쓸 수 있으므로 애플리케이션 처리가 한 리전에서 중단되더라도 데이터베이스 장애 조치가 필요하지 않습니다. 또한 글로벌 테이블을 사용하면 다중 리전 워크로드에서 발생하는 까다로운 업데이트 충돌 해결 작업을 직접 수행할 필요가 없습니다.

글로벌 테이블은 다중 리전 일관성을 위해 강력한 모드와 최종 모드를 모두 지원합니다. 강력한 다중 리전 일관성은 최고 수준의 애플리케이션 복원력을 제공하며 고객의 애플리케이션을 항상 사용할 수 있고 항상 모든 리전의 최신 데이터를 읽을 수 있도록 합니다. 이제 복구 시점 목표가 0인 애플리케이션을 구축할 수 있습니다. 다중 리전 최종 일관성을 통해 단일 AWS 계정 또는 여러 AWS 계정 전체에 복제본을 생성할 수 있습니다. 

작동 방식

DynamoDB 글로벌 테이블은 여러 복제본 테이블로 구성됩니다. 각 복제본 테이블은 서로 다른 리전에 있지만 모든 복제본은 동일한 프라이머리 키를 공유합니다. 데이터가 복제본 테이블에 기록되면 DynamoDB는 해당 데이터를 글로벌 테이블의 다른 모든 복제본 테이블에 자동으로 복제합니다.

예를 들어 고객의 애플리케이션이 3개의 지역(미국 동부 해안, 캐나다, 서유럽)에 있는 다수의 고객 기반에 서비스를 제공한다고 가정해보겠습니다. 글로벌 테이블이 없으면 각 AWS 리전에 테이블을 만들고 각 리전의 각 테이블에 데이터 변경 사항을 복제하는 코드를 작성해야 합니다.

글로벌 테이블을 사용하면 각 지리적 영역에 가장 가까운 3개의 리전에 복제본 테이블이 있는 글로벌 테이블을 만들 수 있습니다. DynamoDB는 모든 복제본의 변경 사항을 다른 리전의 복제본에 자동으로 복제합니다.

글로벌 테이블을 사용하면 애플리케이션 사용자가 위치에 관계없이 데이터에 대한 액세스 지연 시간을 줄일 수 있습니다. 한 리전에서 애플리케이션 처리가 중단되더라도 고객은 다른 리전의 복제본 테이블에 계속 액세스할 수 있습니다.

글로벌 테이블을 생성할 때 강력한 일관성 또는 최종 일관성을 선택할 수 있습니다. 다중 리전의 강력한 일관성을 위해 구성된 글로벌 테이블은 여러 리전에서 강력하게 일관된 읽기를 수행할 수 있는 기능을 제공합니다. 기본 설정은 다중 리전 최종 일관성입니다.

다중 리전 최종 일관성 모드를 사용하여 구성된 글로벌 테이블의 경우 단일 AWS 계정 또는 여러 AWS 계정 전체에 복제본을 생성할 수 있습니다. 다중 계정 글로벌 테이블은 여러 계정 및 리전에 테이블을 자동으로 복제하여 향상된 복원력, 보안 및 거버넌스를 제공합니다. 다중 계정 전략을 채택하거나 AWS Organizations를 사용하여 보안 격리를 개선하고, 데이터 경계 가드레일을 적용하거나, 재해 복구를 구현하거나, 사업부별로 워크로드를 분리하는 고객에게 적합합니다.

단일 리전 테이블과 동일한 DynamoDB API를 사용하므로 글로벌 테이블을 쉽게 시작할 수 있습니다. 글로벌 테이블 사용에 대한 선결제 비용이나 약정이 없으며 사용한 리소스에 대해서만 비용을 지불하면 됩니다. AWS CLIAWS CloudFormation을 사용하여 AWS Management Console에서 글로벌 테이블을 구성할 수 있습니다. 또한, 기존의 단일 리전 테이블을 글로벌 테이블로 간편하게 전환할 수 있습니다.

Missing alt text value

글로벌 테이블의 이점

    글로벌 테이블은 99.999%의 가용성을 제공하도록 설계되었습니다. 단일 리전이 격리되거나 성능이 저하되면 애플리케이션은 트래픽을 다른 리전으로 이동하고 다른 복제본 테이블에 대해 읽기 및 쓰기를 수행할 수 있습니다. 사용자 지정 비즈니스 로직을 적용하여 다른 리전으로 요청을 리디렉션하는 시점을 결정할 수 있습니다. 또한 다중 리전의 강력한 일관성 모드를 사용하면 애플리케이션은 항상 모든 리전의 최신 데이터를 읽습니다.

    글로벌 테이블을 사용하면 DynamoDB에서 다중 활성, 다중 리전 복제를 배포하고 관리하는 데 따르는 복잡성과 운영 부담이 없어집니다. 데이터 복제가 필요한 리전을 선택하면 DynamoDB가 나머지를 처리합니다. 리전 간 테이블 복제본 사이의 복제를 위해 최종 일관성 또는 강력한 일관성 중 하나를 선택할 수 있습니다 강력한 다중 리전 일관성 덕분에 장애 조치 작업 중에 데이터 일관성이나 데이터 복구에 대해 생각할 필요가 없습니다.

    단일 AWS 계정 내에서 또는 여러 AWS 계정에 복제본을 생성하도록 선택할 수도 있습니다. 다중 계정 글로벌 테이블을 사용하면 AWS Well-Architected Framework와 연계하여 더 강력한 격리, 더 나은 보안 및 거버넌스, 개선된 운영 복원력을 위해 계정 전체에 애플리케이션을 구축할 수 있습니다. 애플리케이션은 기존 DynamoDB API 및 엔드포인트를 사용하여 글로벌 테이블에 액세스합니다.

    이제 강력한 일관성과 최종 일관성 모두를 위해 글로벌 테이블을 구성할 수 있습니다. 강력한 일관성은 강력하게 일관된 읽기를 보장하여 가장 최근의 쓰기를 반영하는 반면, 최종 일관성은 로컬 읽기 및 쓰기 지연 시간을 줄이는 대신 모든 복제본에 최신 업데이트가 반영되기까지 짧은 시간이 걸립니다.

    다중 리전 강력한 일관성 모드에서 DynamoDB는 특정 리전의 복제본에 성공적으로 기록된 데이터가 다른 모든 리전의 복제본에서도 즉시 읽기 가능한 상태가 되도록 보장합니다. 쓰기 작업이 다른 리전에서 이미 수정 중인 항목을 수정하려는 경우 재시도가 가능한 예외와 함께 해당 쓰기 작업이 실패합니다.

    다중 리전 최종 일관성 모드에서 DynamoDB는 특정 리전의 모든 복제본에 기록된 데이터를 다른 모든 복제본으로 복제하며, 이 과정은 보통 1~2초 이내에 완료됩니다 동일한 항목이 여러 리전에서 수정되는 경우 DynamoDB는 최종 쓰기 승리 방법을 사용하여 충돌을 해결합니다.

    글로벌 테이블을 사용하면 데이터를 로컬에서 읽고 쓸 수 있으므로 전 세계에 분산된 애플리케이션에 대해 한 자리 수의 밀리초 지연 시간을 제공할 수 있습니다. 이를 통해 대규모로 확장되는 글로벌 애플리케이션의 성능을 높일 수 있습니다.