기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다중 리전 기본 2: 데이터 이해
다중 리전 아키텍처를 채택할 때 데이터 관리는 사소한 문제가 아닙니다. 리전 간 지리적 거리는 리전 간에 데이터를 복제하는 데 걸리는 시간으로 나타나는 피할 수 없는 지연 시간을 부과합니다. 가용성, 데이터 일관성, 다중 리전 아키텍처를 사용하는 워크로드에 더 긴 지연 시간 도입 간의 절충이 필요합니다. 비동기식 복제를 사용하든 동기식 복제를 사용하든 관계없이 복제 기술이 부과하는 동작 변경을 처리하도록 애플리케이션을 수정해야 합니다. 데이터 일관성 및 지연 시간에 대한 문제로 인해 단일 리전용으로 설계된 기존 애플리케이션을 가져와 다중 리전으로 만드는 것이 매우 어렵습니다. 특정 워크로드에 대한 데이터 일관성 요구 사항 및 데이터 액세스 패턴을 이해하는 것은 장단점을 고려하는 데 매우 중요합니다.
2.a: 데이터 일관성 요구 사항 이해
CAP 이론은 데이터 일관성, 가용성 및 네트워크 파티션 간의 장단점을 추론하기 위한 참조를 제공합니다. 워크로드에 대해 이러한 요구 사항 중 두 가지만 동시에 충족할 수 있습니다. 기본적으로 다중 리전 아키텍처에는 리전 간 네트워크 파티션이 포함되므로 가용성과 일관성 중에서 선택해야 합니다.
리전 간 데이터 가용성을 선택하면 트랜잭션 쓰기 작업 중에 상당한 지연 시간이 발생하지 않습니다. 리전 간 커밋된 데이터의 비동기 복제에 의존하면 복제가 완료될 때까지 리전 간 일관성이 저하되기 때문입니다. 비동기식 복제를 사용하면 기본 리전에 장애가 있는 경우 쓰기 작업이 기본 리전에서 복제 보류 중일 가능성이 높습니다. 이로 인해 복제가 재개될 때까지 최신 데이터를 사용할 수 없고 중단이 발생한 리전에서 복제되지 않은 진행 중인 트랜잭션을 처리하기 위해 조정 프로세스가 필요한 시나리오가 발생합니다. 이 시나리오에서는 비즈니스 로직을 이해하고 특정 프로세스를 생성하여 트랜잭션을 재생하거나 리전 간 데이터 스토어를 비교해야 합니다.
비동기식 복제가 선호되는 워크로드의 경우 비동기식 리전 간 복제에 Amazon Aurora
이벤트 기반 아키텍처를 활용하도록 워크로드를 엔지니어링하는 것은 다중 리전 전략의 이점입니다. 즉, 워크로드가 비동기식 데이터 복제를 수용하고 이벤트를 재생하여 상태를 재구성할 수 있기 때문입니다. 스트리밍 및 메시징 서비스는 단일 리전에서 메시지 페이로드 데이터를 버퍼링하기 때문에 리전 장애 조치 또는 장애 복구 프로세스에는 클라이언트 입력 데이터 흐름을 리디렉션하는 메커니즘이 포함되어야 합니다. 또한 프로세스는 중단이 발생한 리전에 저장된 진행 중이거나 전송되지 않은 페이로드를 조정해야 합니다.
CAP 일관성 요구 사항을 선택하고 리전 간에 동기식으로 복제된 데이터베이스를 사용하여 여러 리전에서 동시에 실행되는 애플리케이션을 지원하는 경우 데이터 손실 위험을 제거하고 리전 간에 데이터를 동기화된 상태로 유지합니다. 그러나 쓰기는 둘 이상의 리전에 커밋해야 하고 리전은 서로 수백 또는 수천 마일 떨어져 있을 수 있으므로 지연 시간 특성이 더 높습니다. 애플리케이션 설계에서이 지연 시간 특성을 고려해야 합니다. 또한 동기식 복제는 성공하려면 둘 이상의 리전에 쓰기를 커밋해야 하므로 상관관계가 있는 오류가 발생할 수 있습니다. 한 리전 내에 장애가 있는 경우 쓰기에 성공하려면 쿼럼을 구성해야 합니다. 여기에는 일반적으로 세 리전에 데이터베이스를 설정하고 세 리전 중 두 리전의 쿼럼을 설정하는 작업이 포함됩니다. Paxos
강력한 일관성 요구 사항을 충족하기 위해 여러 리전에서 쓰기에 동기식 복제가 포함되는 경우 쓰기 지연 시간이 크게 증가합니다. 쓰기 지연 시간이 길어지는 것은 일반적으로 애플리케이션의 제한 시간 재검토 및 재시도 전략과 같은 중요한 변경 없이 애플리케이션에 개량할 수 있는 것이 아닙니다. 애플리케이션을 처음 설계할 때 이를 고려하는 것이 가장 좋습니다. 동기식 복제가 우선순위인 다중 리전 워크로드의 경우 AWS Partner 솔루션이
2.b: 데이터 액세스 패턴 이해
워크로드 데이터 액세스 패턴은 읽기 집약적 또는 쓰기 집약적입니다. 특정 워크로드에 대한이 특성을 이해하면 적절한 다중 리전 아키텍처를 선택하는 데 도움이 됩니다.
완전히 읽기 전용인 정적 콘텐츠와 같은 읽기 집약적인 워크로드의 경우 쓰기 집약적인 워크로드에 비해 엔지니어링 복잡성이 적은 액티브-액
쓰기 트래픽보다 읽기 트래픽 비율이 높은 읽기 집약적 워크로드의 경우 읽기 로컬, 쓰기 글로벌 전략을
Aurora 글로벌 데이터베이스
쓰기 집약적인 워크로드의 경우 기본 리전을 선택하고 대기 리전으로 장애 조치할 수 있는 기능을 워크로드로 엔지니어링해야 합니다. 액티브-액티브 접근 방식과 비교하여 기본-대기
복원력을 위해 다중 리전 접근 방식을 사용하는 대부분의 워크로드에는 액티브-액티브 접근 방식이 필요하지 않습니다. 샤딩
샤딩 접근 방식을 기본 대기 접근 방식과 결합하여 샤드에 대한 장애 조치 기능을 제공할 수 있습니다. 테스트된 장애 조치 프로세스를 워크로드로 엔지니어링하고 데이터 조정 프로세스도 엔지니어링하여 장애 조치 후 데이터 스토어의 트랜잭션 일관성을 보장해야 합니다. 이에 대해서는이 가이드의 뒷부분에서 자세히 설명합니다.
주요 지침
-
오류가 발생할 때 복제 보류 중인 쓰기가 대기 리전에 커밋되지 않을 가능성이 높습니다. 복제가 재개될 때까지 데이터를 사용할 수 없습니다(비동기 복제 가정).
-
장애 조치의 일환으로 비동기 복제를 사용하는 데이터 스토어에 대해 트랜잭션 일관성 상태가 유지되도록 하려면 데이터 조정 프로세스가 필요합니다. 이를 위해서는 특정 비즈니스 로직이 필요하며 데이터 스토어 자체에서 처리하는 것이 아닙니다.
-
강력한 일관성이 필요한 경우 동기식으로 복제되는 데이터 스토어의 필수 지연 시간을 허용하도록 워크로드를 수정해야 합니다.