Amazon Keyspaces의 다중 리전 복제가 작동하는 방식 - Amazon Keyspaces(Apache Cassandra용)

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

Amazon Keyspaces의 다중 리전 복제가 작동하는 방식

이 섹션에서는 Amazon Keyspaces 다중 리전 복제의 작동 방식에 대해 간략히 살펴봅니다. 요금에 대한 자세한 내용은 Amazon Keyspaces(Apache Cassandra용) 요금을 참조하세요.

Amazon Keyspaces의 다중 리전 복제가 작동하는 방식

Amazon Keyspaces 다중 리전 복제는 독립적이고 지리적으로 분산된 AWS 리전에 데이터를 분산하는 데이터 복원력 아키텍처를 구현합니다. 액티브-액티브 복제를 사용하므로 각 리전이 개별적으로 읽기 및 쓰기를 수행할 수 있어 로컬 지연 시간이 짧습니다.

Amazon Keyspaces 다중 리전 키스페이스를 생성할 때 데이터를 복제할 리전을 최대 5개까지 추가로 선택할 수 있습니다. 다중 리전 키스페이스에서 생성하는 각 테이블은 Amazon Keyspaces가 이를 단일 단위로 간주하는 여러 개의 복제 테이블(리전당 한 개씩)로 구성됩니다.

모든 복제본은 동일한 테이블 이름과 동일한 프라이머리 키 스키마를 갖습니다. 애플리케이션이 한 리전의 로컬 테이블에 데이터를 쓰면 LOCAL_QUORUM 일관성 수준을 사용하여 데이터가 안정적으로 쓰여집니다. Amazon Keyspaces는 데이터를 다른 복제 리전에 비동기적으로 자동 복제합니다. 리전 간 복제 지연은 일반적으로 1초 미만이며 애플리케이션의 성능이나 처리량에 영향을 미치지 않습니다.

데이터를 쓴 후에는 LOCAL_ONE/LOCAL_QUORUM 일관성 수준이 있는 다른 복제 리전의 다중 리전 테이블에서 데이터를 읽을 수 있습니다. 지원되는 구성 및 기능에 대한 자세한 내용은 Amazon Keyspaces 다중 리전 복제 사용 노트 섹션을 참조하세요.

Amazon Keyspace는 사용 가능한 모든 지역의 테이블 간에 쓰기를 비동기적으로 복제하는 동안 사용자는 각자의 로컬 AWS 리전 Amazon Keyspaces 테이블에 저장된 데이터를 읽고 씁니다.

다중 리전 복제 충돌 해결

Amazon Keyspaces 다중 리전 복제는 완전히 관리되므로 데이터 동기화 문제를 정리하기 위해 정기적으로 복구 작업을 실행하는 것과 같은 복제 작업을 수행할 필요가 없습니다. Amazon Keyspace는 충돌을 감지 및 AWS 리전 수정하여 서로 다른 테이블 간의 데이터 일관성을 모니터링하고 복제본을 자동으로 동기화합니다.

Amazon Keyspaces는 데이터 조정의 최종 쓰기 우선 방법을 사용합니다. 이러한 충돌 해결 메커니즘을 사용하여 다중 리전 키스페이스의 모든 리전은 최종 업데이트에 합의하며 모두 동일한 데이터를 갖는 상태가 됩니다. 조정 프로세스는 애플리케이션 성능에 영향을 미치지 않습니다. 충돌 해결을 지원하기 위해 다중 리전 테이블의 경우 클라이언트 측 타임스탬프가 자동으로 설정되며 해제할 수 없습니다. 자세한 정보는 Amazon Keyspaces에서 클라이언트 측 타임스탬프 사용하기을 참조하세요.

다중 리전 복제 재해 복구

Amazon Keyspaces 다중 지역 복제를 사용하면 쓰기가 각 지역에 비동기적으로 복제됩니다. 드문 경우지만 단일 리전의 성능 저하 또는 장애가 발생하는 경우 다중 리전 복제를 사용하면 애플리케이션에 거의 또는 전혀 영향을 주지 않고 재해를 복구할 수 있습니다. 재해 복구는 일반적으로 Recovery Time Objective(RTO) 및 Recovery Point Objective(RPO)를 사용하여 측정됩니다.

복구 시간 목표 – 재해 발생 후 시스템이 정상 작동 상태로 돌아가는 데 걸리는 시간입니다. RTO는 워크로드가 허용할 수 있는 가동 중지를 시간 단위로 측정합니다. 다중 리전 복제를 사용하여 영향을 받지 않는 리전으로 장애 조치하는 재해 복구 계획의 경우 RTO는 거의 0에 가까울 수 있습니다. RTO는 애플리케이션이 장애 상태를 감지하고 트래픽을 다른 리전으로 리디렉션하는 속도에 따라 제한됩니다.

복구 시점 목표 – 손실될 수 있는 데이터의 양(시간으로 측정)입니다. 다중 리전 복제를 사용하여 영향을 받지 않는 리전으로 장애 조치하는 재해 복구 계획의 경우 RPO는 일반적으로 10초 미만입니다. RPO는 장애 조치 대상 복제본에 대한 복제 지연 시간으로 제한됩니다.

Amazon Keyspaces에서의 복제는 액티브-액티브 방식이므로 리전 장애 또는 성능 저하가 발생하는 경우 보조 리전을 승격하거나 데이터베이스 장애 조치 절차를 수행할 필요가 없습니다. 대신 Amazon Route 53을 사용하여 가장 가까운 정상 리전으로 애플리케이션을 라우팅할 수 있습니다. Route 53에 대해 자세히 알아보려면 Amazon Route 53은 무엇인가요?를 참조하세요.

단일 AWS 리전 객체가 격리되거나 성능이 저하되는 경우 애플리케이션은 Route 53을 사용하여 트래픽을 다른 지역으로 리디렉션하여 다른 복제 테이블에 대해 읽기 및 쓰기를 수행할 수 있습니다. 또한 요청을 언제 다른 리전으로 리디랙션할지를 결정하는 사용자 지정 비즈니스 로직을 적용할 수 있습니다. 예를 들어 애플리케이션이 사용 가능한 여러 엔드포인트를 인식하도록 하는 경우를 들 수 있습니다.

리전이 다시 온라인 상태로 되면 Amazon Keyspaces는 해당 리전에서 보류 중인 쓰기 전파를 재개하여 다른 리전의 복제본 테이블로 전파합니다. 다시 온라인 상태로 된 리전에 대한 다른 복제본 테이블의 쓰기 전파도 재개됩니다.

다중 리전 키스페이스 및 테이블을 만드는 데 필요한 IAM 권한

다중 리전 키스페이스 및 테이블을 성공적으로 생성하려면 IAM 보안 주체가 서비스 연결 역할을 생성할 수 있어야 합니다. 이 서비스 연결 역할은 Amazon Keyspaces에서 사전 정의하는 고유한 유형의 IAM 역할입니다. 여기에는 Amazon Keyspaces가 사용자를 대신하여 작업을 수행하는 데 필요한 모든 권한이 포함되어 있습니다. 서비스 링크 역할에 대한 자세한 내용은 Amazon Keyspaces 다중 리전 복제에 역할 사용을(를) 참조하세요.

다중 리전 복제에 필요한 서비스 연결 역할을 생성하려면 IAM 보안 주체에 대한 정책에 다음 요소가 필요합니다.

  • iam:CreateServiceLinkedRole - 보안 주체가 수행할 수 있는 작업입니다.

  • arn:aws:iam::*:role/aws-service-role/replication.cassandra.amazonaws.com/AWSServiceRoleForKeyspacesReplication - 작업을 수행할 수 있는 리소스입니다.

  • iam:AWSServiceName": "replication.cassandra.amazonaws.com— 이 역할을 연결할 수 있는 유일한 AWS 서비스는 Amazon Keyspaces입니다.

다음은 다중 리전 키스페이스 및 테이블을 생성하는 데 필요한 최소 권한을 보안 주체에게 부여하는 정책의 예입니다.

{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/replication.cassandra.amazonaws.com/AWSServiceRoleForKeyspacesReplication", "Condition": {"StringLike": {"iam:AWSServiceName": "replication.cassandra.amazonaws.com"}} }

다중 리전 키스페이스 및 테이블에 대한 추가 IAM 권한은 서비스 인증 참조Amazon Keyspaces(Apache Cassandra용)의 작업, 리소스 및 조건 키를 참조하세요.

다중 지역 복제 및 point-in-time 복구와 통합 (PITR)

IP oint-in-time 복구는 다중 지역 테이블에서 지원됩니다. PITR을 사용하여 다중 리전 테이블을 성공적으로 복원하려면 다음 조건을 충족해야 합니다.

  • 소스 및 대상 테이블을 다중 리전 테이블로 구성해야 합니다.

  • 소스 테이블의 키스페이스와 대상 테이블의 키스페이스에 대한 복제 리전은 동일해야 합니다.

소스 테이블을 사용할 수 있는 모든 리전에서 복원 문을 실행할 수 있습니다. Amazon Keyspaces는 각 리전의 대상 테이블을 자동으로 복원합니다. PITR에 대한 자세한 내용은 Amazon Keyspaces에서 point-in-time 복구가 작동하는 방식 섹션을 참조하세요.

다중 리전 복제 및 AWS 서비스와의 통합

Amazon CloudWatch 지표를 사용하여 서로 다른 AWS 리전 테이블 간의 복제 성능을 모니터링할 수 있습니다. 다음 지표는 다중 리전 키스페이스에 대한 지속적인 모니터링을 제공합니다.

  • ReplicationLatency - 이 지표는 다중 리전 키스페이스의 한 복제 테이블에서 다른 복제 테이블로 updates, inserts 또는 deletes를 복제하는 데 걸린 시간을 측정합니다.

CloudWatch 지표 모니터링 방법에 대한 자세한 내용은 을 참조하십시오아마존을 통한 아마존 키스페이스 모니터링 CloudWatch.