Amazon Web Services 한국 블로그

Amazon DynamoDB 글로벌 테이블, 다중 리전 강력한 일관성 (MRSC) 기능 정식 출시

수만 곳의 고객업체가 최종 일관성을 보장받으면서 Amazon DynamoDB 글로벌 테이블을 사용하고 있지만, 더 강력한 복원력에 대한 필요성이 대두되고 있습니다. 수많은 조직에서 DynamoDB 다중 가용 영역 아키텍처와 최종적으로 일관된 글로벌 테이블이 자사 요구 사항을 충족한다고 보지만, 결제 처리 시스템이나 금융 서비스와 같은 중요한 분야에는 이보다 더 많은 것이 필요합니다.

이러한 분야에서는 간혹 발생하는 리전 전체 이벤트 중에 고객의 목표 복구 시점(RPO)이 0이어야 합니다. 다시 말해, 앱이 어느 리전에서든 최신 데이터를 읽어 오도록 지시할 수 있어야 합니다. 다중 리전 애플리케이션은 위치와 관계없이 항상 같은 데이터에 액세스해야 합니다.

오늘부터 이러한 제로 RPO를 지원하는 다중 리전 강력한 일관성(multi-Region strong consistency, MRSC)을 제공하는 새로운 Amazon DynamoDB 글로벌 테이블 기능을 사용할 수 있습니다. 이 기능은 AWS re:Invent 2024에서 미리 보기로 처음 발표되었으며, 고도로 복원력이 뛰어난 애플리케이션을 빌드하는 과정을 간소화해 줍니다.

기존의 빈 DynamoDB 테이블로 MRSC를 활성화하는 방법은 다음과 같습니다.

이제는 MRSC가 제공되므로 DynamoDB가 애플리케이션에 최고 수준의 복원력을 보장합니다. 한 리전에서 애플리케이션 처리가 중단되는 경우, 트래픽을 MRSC 복제본을 포함한 다른 리전으로 리디렉션하면 최신 데이터 처리를 확신할 수 있습니다.

시작하기
이 새로운 기능의 사용 방법을 자세히 알려드리겠습니다.

MRSC를 사용하려면 우선 아무런 데이터를 포함하지 않은 기존 DynamoDB 테이블에서 글로벌 테이블을 생성해야 합니다. 기존 테이블로 이동하여 글로벌 테이블 탭을 선택하고 복제본 생성을 선택합니다.

MRSC 가용성 아키텍처에는 AWS 리전이 3개 필요합니다. MRSC를 전체 복제본 3개로 구성하거나, 복제본 2개와 감시자 1개로 구성해도 됩니다. 감시자에는 복제된 변경 데이터만 포함되어 테이블 데이터 전체 사본을 유지 관리할 필요 없이 필요한 가용성을 제공합니다.

다음 스크린샷에 복제본 2개와 감시자 1개로 MRSC를 구성하는 방법을 표시했습니다. 전체 복제본 3개로 MRSC를 구성하려면 리전 2를 감시자로 구성하면 됩니다.

기존 테이블을 프로그램 방식으로 업데이트해야 하는 경우, Amazon Q CLI를 사용하여 다음과 같은 프롬프트로 필요한 명령을 생성할 수 있습니다.

> Hey Q! Update my existing DynamoDB table called "demo-mrsc" in us-east-1 with multi-Region strong consistency across us-east-2 with witness in us-west-2 Regions

잠시 후, Q CLI가 다음과 같은 명령으로 응답합니다.

> To update your DynamoDB table with multi-Region strong consistency, you'll need to use the update-table command with the appropriate parameters. Here's how you would do it:

aws dynamodb update-table \ 
    --table-name demo-mrsc \ 
    --replica-updates '[{"Create": {"RegionName": "us-east-2"}}]' \ 
    --global-table-witness-updates '[{"Create": {"RegionName": "us-west-2"}}]' \ 
    --multi-region-consistency STRONG \ 
    --region us-east-1

처리를 마치면 MRSC 글로벌 테이블의 상태를 확인할 수 있습니다. DynamoDB 글로벌 테이블에 감시자가 구성된 것으로 표시됩니다. 감시자는 다중 리전 강력한 일관성의 복원력 이점을 똑같이 제공하면서 비용을 절감해 줍니다.

이제 애플리케이션에서 ConsistentRead를 사용해 강력한 일관성으로 데이터를 읽을 수 있습니다. 다음은 Python 예시입니다.

import boto3

# Configure the DynamoDB client for your region
dynamodb = boto3.resource('dynamodb', region_name='us-east-2')
table = dynamodb.Table('demo-mrsc')

pk_id = "demo#test123"

# Read with strong consistency across regions
response = table.get_item(
    Key={
        'PK': pk_id
    },
    ConsistentRead=True
)

print(response)

가장 강력한 일관성이 필요한 작업의 경우, ConsistentRead=True를 사용할 수 있습니다. 최종 일관성이 허용되는 덜 중요한 작업의 경우, 이 파라미터를 생략하여 성능을 개선하고 비용을 절감할 수 있습니다.

추가 정보
몇 가지 주요 사항을 알려드립니다.

  • 가용성 – Amazon DynamoDB 다중 리전 강력한 일관성 기능은 미국 동부(오하이오, 버지니아 북부), 미국 서부(오리건), 아시아 태평양(오사카, 서울, 도쿄), 유럽(프랑크푸르트, 런던, 파리)의 AWS 리전에서 사용할 수 있습니다.
  • 요금 – 다중 리전 강력한 일관성 요금은 기존의 글로벌 테이블 요금 구조를 따릅니다. DynamoDB에서는 최근 글로벌 테이블 요금을 최고 67% 인하했으므로 지금은 복원력이 뛰어난 이 아키텍처를 어느 때보다 저렴한 가격으로 이용할 수 있습니다. 자세한 정보는 AWS 데이터베이스 블로그의 온디맨드 처리량 및 글로벌 테이블 가격을 인하하는 Amazon DynamoDB를 참조하세요.

최고 수준의 애플리케이션 복원력을 실현하고 애플리케이션의 상시 가용성을 보장하며 리전과 관계없이 최신 데이터를 읽는 방법에 대해 자세히 알아보려면 Amazon DynamoDB 글로벌 테이블을 참조하세요.

즐겁게 빌드해 보세요!

Donnie