글로벌 테이블 개요 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

글로벌 테이블 개요

주요 사실

  • 글로벌 테이블에는 버전 2017.11.29(레거시)(때로는 v1)과 버전 2019.11.21(현재)(때로는 v2)의 두 가지 버전이 있습니다. 이 가이드는 현재 버전에만 중점을 둡니다.

  • DynamoDB(글로벌 테이블 제외)는 리전 서비스이므로 가용성이 높고 전체 가용 영역의 장애를 포함한 인프라 장애에 본질적으로 복원력이 뛰어납니다. 단일 리전 DynamoDB 테이블은 99.99% 가용성을 제공하도록 설계되었습니다. 자세한 내용은 DynamoDB 서비스 수준 계약(SLA)을 참조하세요.

  • DynamoDB 글로벌 테이블은 두 개 이상의 리전 간에 데이터를 복제합니다. 다중 리전 DynamoDB 테이블은 99.999% 가용성을 제공하도록 설계되었습니다. 적절한 계획을 통해 글로벌 테이블은 리전별 장애에 복원력이 뛰어난 아키텍처를 만드는 데 도움이 될 수 있습니다.

  • DynamoDB에는 글로벌 엔드포인트가 없습니다. 모든 요청은 해당 리전에 로컬인 글로벌 테이블 인스턴스에 액세스하는 리전 엔드포인트에 이루어집니다.

  • DynamoDB에 대한 호출은 리전 간에 진행되어서는 안 됩니다. 가장 좋은 방법은 한 리전에 있는 애플리케이션이 해당 리전의 로컬 DynamoDB 엔드포인트에만 직접 액세스하는 것입니다. 리전(DynamoDB 계층 또는 주변 스택) 내에서 문제가 감지되면 최종 사용자 트래픽을 다른 리전에서 호스팅되는 다른 애플리케이션 엔드포인트로 라우팅해야 합니다. 글로벌 테이블은 모든 리전에 있는 애플리케이션이 동일한 데이터에 액세스할 수 있도록 합니다.

일관성 모델

글로벌 테이블을 생성할 때 일관성 모드를 구성합니다. 글로벌 테이블은 2025년 6월에 도입된 다중 리전 최종 일관성(MREC)과 다중 리전 강력한 일관성(MRSC)이라는 두 가지 일관성 모드를 지원합니다.

글로벌 테이블을 생성할 때 일관성 모드를 지정하지 않으면 글로벌 테이블의 기본값은 MREC입니다. 글로벌 테이블에는 서로 다른 일관성 모드로 구성된 복제본이 포함될 수 없습니다. 글로벌 테이블을 생성한 후에는 테이블의 일관성 모드를 변경할 수 없습니다.

MREC에 대한 주요 사실

  • MREC를 사용하는 글로벌 테이블은 액티브-액티브 복제 모델을 사용합니다. DynamoDB의 관점에서 볼 때 각 리전의 테이블은 읽기 및 쓰기 요청을 수락할 수 있는 동등한 지위를 갖습니다. 쓰기 요청을 수신한 후 로컬 복제본 테이블은 백그라운드의 다른 참여 원격 리전에 쓰기 작업을 복제합니다.

  • 항목은 개별적으로 복제됩니다. 단일 트랜잭션 내에서 업데이트된 항목은 함께 복제되지 않을 수 있습니다.

  • 소스 리전의 각 테이블 파티션은 다른 모든 파티션과 병렬로 쓰기 작업을 복제합니다. 원격 리전 내의 쓰기 작업 시퀀스가 소스 리전 내에서 발생한 쓰기 작업 시퀀스와 일치하지 않을 수 있습니다. 테이블 파티션에 대한 자세한 내용은 블로그 게시물 Scaling DynamoDB: How partitions, hot keys, and split for heat impact performance를 참조하세요.

  • 글로벌 테이블에 새로 쓰여진 항목은 일반적으로 1초 안에 모든 복제본 테이블에 전파됩니다. 가까운 리전이 대체로 더 빨리 전파됩니다.

  • Amazon CloudWatch는 각 리전 페어의 ReplicationLatency 지표를 제공합니다. 도착 항목을 살펴보고, 도착 시간을 초기 쓰기 시간과 비교하고, 평균을 계산하여 계산합니다. 타이밍은 소스 리전의 CloudWatch 내에 저장됩니다. 평균 및 최대 타이밍을 보는 것은 평균 및 최악의 복제 지연을 결정하는 데 유용할 수 있습니다. 이 지연 시간에는 SLA가 없습니다.

  • 두 리전에서 개별 항목이 거의 동시에(이 ReplicationLatency 기간 내에) 업데이트되고 두 번째 쓰기 작업이 첫 번째 쓰기 작업이 복제되기 전에 발생하는 경우 쓰기 충돌이 발생할 수 있습니다. MREC를 사용하는 글로벌 테이블은 쓰기 작업의 타임스탬프를 기반으로 마지막 라이터 승 메커니즘을 사용하여 이러한 충돌을 해결합니다. 첫 번째 작업은 두 번째 작업에 대해 "loses"됩니다. 이러한 충돌은 CloudWatch 또는에 기록되지 않습니다 AWS CloudTrail.

  • 각 항목에는 비공개 시스템 속성으로 보관되는 마지막 쓰기 타임스탬프가 있습니다. 마지막 라이터 성공 접근 방식은 수신 항목의 타임스탬프가 기존 항목의 타임스탬프보다 커야 하는 조건부 쓰기 작업을 사용하여 구현됩니다.

  • 글로벌 테이블은 모든 항목을 모든 참여 리전에 복제합니다. 복제 범위가 다른 경우 여러 글로벌 테이블을 생성하고 각 테이블에 서로 다른 참여 리전을 할당할 수 있습니다.

  • 로컬 리전은 복제본 리전이 오프라인 상태이거나 ReplicationLatency 커지더라도 쓰기 작업을 허용합니다. 로컬 테이블은 각 항목이 성공할 때까지 원격 테이블에 항목 복제를 계속 시도합니다.

  • 드물지만 리전이 완전히 오프라인 상태가 되는 경우 나중에 다시 온라인 상태가 되면 보류 중인 모든 아웃바운드 및 인바운드 복제가 재시도됩니다. 테이블을 다시 동기화하기 위한 특별한 작업은 필요하지 않습니다. 마지막 라이터 승률 메커니즘은 데이터가 최종적으로 일관되도록 합니다.

  • 언제든지 DynamoDB MREC 테이블에 새 리전을 추가할 수 있습니다. DynamoDB는 초기 동기화 및 지속적 복제를 처리합니다. 리전(원본 리전 포함)을 제거할 수도 있으며, 그러면 해당 리전의 로컬 테이블이 삭제됩니다.

MRSC에 대한 주요 사실

  • MRSC를 사용하는 글로벌 테이블은 액티브-액티브 복제 모델도 사용합니다. DynamoDB의 관점에서 볼 때 각 리전의 테이블은 읽기 및 쓰기 요청을 수락할 수 있는 동등한 지위를 갖습니다. MRSC 글로벌 테이블 복제본의 항목 변경 사항은 쓰기 작업이 성공적인 응답을 반환하기 전에 하나 이상의 다른 리전에 동기식으로 복제됩니다.

  • 모든 MRSC 복제본에서 강력하게 일관된 읽기 작업은 항상 항목의 최신 버전을 반환합니다. 조건부 쓰기 작업은 항상 항목의 최신 버전을 기준으로 조건 표현식을 평가합니다. 업데이트는 항상 항목의 최신 버전에 대해 작동합니다.

  • MRSC 복제본에서 최종적으로 일관된 읽기 작업에는 최근에 다른 리전에서 발생한 변경 사항이 포함되지 않을 수 있으며, 동일한 리전에서 최근에 발생한 변경 사항도 포함되지 않을 수 있습니다.

  • 다른 리전에서 이미 수정 중인 항목을 수정하려고 하면 쓰기 작업이 실패하고 ReplicatedWriteConflictException 예외가 발생합니다. ReplicatedWriteConflictException 예외로 인해 실패한 쓰기 작업은 재시도할 수 있으며 항목이 다른 리전에서 더 이상 수정되지 않는 경우 성공합니다.

  • MRSC를 사용하면 쓰기 작업과 강력히 일관된 읽기 작업의 지연 시간이 길어집니다. 이러한 작업에는 리전 간 통신이 필요합니다. 이 통신은 액세스 중인 리전과 글로벌 테이블에 참여하는 가장 가까운 리전 간의 왕복 지연 시간에 따라 증가하는 지연 시간을 추가하는 경향이 있습니다. (자세한 내용은 AWS re:Invent 2024 프레젠테이션, Amazon DynamoDB 글로벌 테이블과의 다중 리전 강력한 일관성을 참조하세요.) 최종적으로 일관된 읽기 작업은 추가 지연 시간을 경험하지 않습니다. 리전에서 이러한 지연 시간을 실험적으로 계산할 수 있는 오픈 소스 테스터 도구가 있습니다.

  • 항목은 개별적으로 복제됩니다. MRSC를 사용하는 글로벌 테이블은 트랜잭션 APIs를 지원하지 않습니다.

  • MRSC 글로벌 테이블은 정확히 3개의 리전에 배포되어야 합니다. 복제본 3개 또는 복제본 2개와 감시 1개로 MRSC 글로벌 테이블을 구성할 수 있습니다. 감시는 글로벌 테이블 복제본에 기록된 최근 데이터를 포함하는 MRSC 글로벌 테이블의 구성 요소입니다. 감시자는 MRSC의 가용성 아키텍처를 지원하면서 전체 복제본에 대한 선택적 대안을 제공합니다. 감시자에 대한 읽기 또는 쓰기 작업은 수행할 수 없습니다. 감시자는 스토리지 또는 쓰기 비용을 발생시키지 않습니다. 감시는 두 복제본과 다른 리전 내에 있습니다.

  • MRSC 글로벌 테이블을 생성하려면 복제본 하나와 감시를 추가하거나 데이터가 없는 기존 DynamoDB 테이블에 복제본 두 개를 추가합니다. 기존 MRSC 글로벌 테이블에는 복제본을 추가할 수 없습니다. MRSC 글로벌 테이블에서 단일 복제본 또는 감시자를 삭제할 수 없습니다. MRSC 글로벌 테이블에서 복제본 2개를 삭제하거나 복제본 1개와 감시자를 삭제할 수 있습니다. 두 번째 시나리오에서는 나머지 복제본을 단일 리전 DynamoDB 테이블로 변환합니다.

  • DescribeTable API의 출력에서 MRSC 글로벌 테이블에 감시가 구성되어 있는지 여부와 감시가 구성된 리전을 확인할 수 있습니다. 감시는 DynamoDB에서 소유하고 관리하며 구성된 리전의 AWS 계정 에 표시되지 않습니다.

  • MRSC 글로벌 테이블은 다음 리전 세트에서 사용할 수 있습니다.

    • 미국 리전 세트: 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오리건)

    • EU 리전 세트: 유럽(아일랜드), 유럽(런던), 유럽(파리), 유럽(프랑크푸르트)

    • AP 리전 세트: 아시아 태평양(도쿄), 아시아 태평양(서울) 및 아시아 태평양(오사카)

  • MRSC 글로벌 테이블은 리전 세트에 걸쳐 있을 수 없습니다. 예를 들어 MRSC 글로벌 테이블에는 미국 및 EU 리전 세트의 복제본이 포함될 수 없습니다.

  • TTL(Time To Live)은 MRSC 글로벌 테이블에서 지원되지 않습니다.

  • MRSC 글로벌 테이블에는 로컬 보조 인덱스(LSI)가 지원되지 않습니다.

  • CloudWatch Contributor Insights 정보는 작업이 발생한 리전에 대해서만 보고됩니다.

  • 로컬 리전은 복제본 또는 감시를 호스팅하는 두 번째 리전이 쿼럼을 설정할 수 있는 한 모든 읽기 및 쓰기 작업을 허용합니다. 두 번째 리전을 사용할 수 없는 경우 로컬 리전은 최종적으로 일관된 읽기만 처리할 수 있습니다.

  • 드물지만 리전이 완전히 오프라인 상태가 되는 경우 나중에 다시 온라인 상태가 되면 자동으로 따라잡습니다. 해결될 때까지 쓰기 작업과 강력히 일관된 읽기 작업은 오류를 반환합니다. 그러나 최종적으로 일관된 읽기 작업은 지금까지 리전으로 전파된 데이터를 반환하며, 리더 노드와 로컬 복제본 간의 일반적인 로컬 일관성 동작이 포함됩니다. 테이블을 다시 동기화하기 위해 특별한 조치가 필요하지 않습니다.

사용 사례

MREC 글로벌 테이블은 다음과 같은 이점을 제공합니다.

  • 지연 시간이 짧은 읽기 작업. 데이터 사본을 최종 사용자에게 더 가깝게 배치하여 읽기 작업 중에 네트워크 지연 시간을 줄일 수 있습니다. 데이터는 ReplicationLatency 값만큼 최신 상태로 유지됩니다.

  • 지연 시간이 짧은 쓰기 작업. 최종 사용자는 네트워크 지연 시간과 쓰기 작업을 완료하는 시간을 줄이기 위해 가까운 리전에 쓸 수 있습니다. 충돌이 없도록 쓰기 트래픽을 신중하게 라우팅해야 합니다. 라우팅 기법은 이후 단원에서 설명합니다.

  • 원활한 리전 마이그레이션. 새 리전을 추가한 다음 이전 리전을 삭제하여 데이터 계층의 가동 중지 없이 한 리전에서 다른 리전으로 배포를 마이그레이션할 수 있습니다.

MREC 및 MRSC 글로벌 테이블 모두 다음과 같은 이점을 제공합니다.

  • 복원력 및 재해 복구 향상. 리전의 성능이 저하되거나 완전히 중단된 경우 해당 리전을 대피시킬 수 있습니다(즉, 해당 리전으로 이동하는 일부 또는 모든 요청을 다른 곳으로 이동). 글로벌 테이블을 사용하면 월간 가동 시간 비율에 대한 DynamoDB SLA가 99.99%에서 99.999%로 증가합니다. MREC 사용은 초 단위로 측정되는 Recovery Point Objective(RPO) 및 Recovery Time Objective(RTO)를 지원합니다. MRSC 사용은 0의 RPO를 지원합니다.

    예를 들어, Fidelity 투자는 주문 관리 시스템에 DynamoDB 글로벌 테이블을 사용하는 방법에 대해 re:Invent 2022에 발표되었습니다. 목표는 온프레미스 처리로는 달성할 수 없는 규모로 지연 시간을 안정적으로 단축하는 동시에 가용 영역 및 리전 장애에 대한 복원력을 유지하는 것이었습니다.

복원력 및 재해 복구를 목표로 하는 경우 MRSC 테이블은 쓰기 지연 시간이 더 길고 강력히 일관된 읽기 지연 시간이 더 높지만 RPO는 0을 지원합니다. MREC 글로벌 테이블은 복제본 간의 복제 지연과 동일한 RPO를 지원합니다. 일반적으로 복제본 리전에 따라 몇 초 정도 걸립니다. 자세한 내용은 DynamoDB 설명서의 일관성 모드를 참조하세요.