REL10-BP04 격벽 아키텍처를 사용하여 영향 범위 제한
이 패턴은 선박의 격벽처럼 장애를 소수의 요청 또는 클라이언트 하위 집합으로 제한하여 손상된 요청 수를 제한하고 대부분의 요청은 오류 없이 계속될 수 있도록 합니다. 데이터에 대한 격벽은 종종 파티션으로 불리며 서비스에 대한 격벽은 셀이라고 합니다.
그리고 셀 기반 아키텍처에서 각 셀은 서비스의 완전한 독립 인스턴스이며 최대 크기가 고정되어 있습니다. 로드가 증가하면 셀을 추가하는 방법으로 워크로드 규모를 늘립니다. 파티션 키는 수신 트래픽에서 요청을 처리할 셀을 결정하는 데 사용됩니다. 모든 장애는 장애가 발생한 단일 셀로 제한되므로 다른 셀은 오류 없이 계속되고 손상된 요청의 수가 제한됩니다. 따라서 셀 간의 상호 작용을 최소화하고 각 요청에서 복잡한 매핑 서비스를 실행할 필요가 없도록 적절한 파티션 키를 식별하는 것이 중요합니다. 복잡한 매핑을 실행해야 하는 서비스에서는 문제가 매핑 서비스로 이전될 뿐이며, 셀 간 상호 작용을 수행해야 하는 서비스에서는 셀 간에 종속 관계가 형성되므로 상호 작용을 통해 개선 가능한 가용성의 수준도 낮아집니다.

그림 11: 셀 기반 아키텍처
Colm MacCarthaigh의 AWS 블로그 게시물에 Amazon Route 53에서 셔플 샤딩

그림 12: 각각 2개의 셀로 구성된 기존 샤드 4개에 나누어져 있는 서비스
셔플 샤딩을 사용하면 각각 두 개의 셀로 구성된 가상 샤드를 만들고 고객을 이러한 가상 샤드 중 하나에 할당합니다. 문제가 발생하면 전체 서비스의 1/4이 손실될 수 있지만 이 방식의 고객 또는 리소스 할당은 셔플 샤딩의 영향 범위가 25%보다 크게 낮아짐을 의미합니다. 8개의 셀에는 2개 셀로 구성된 28개의 고유한 조합이 있습니다. 즉, 28개의 셔플 샤드(가상 샤드)가 가능합니다. 고객이 수백 또는 수천 명이고 각 고객을 셔플 샤드에 할당하는 경우 문제의 영향 범위는 1/28에 불과합니다. 이는 일반 샤딩보다 7배 더 뛰어난 수치입니다.

그림 13: 각각 2개의 셀로 구성된 28개의 셔플 샤드(가상 샤드)에 나누어져 있는 서비스(28개 중 2개의 셔플 샤드만 표시되어 있음)
샤드는 셀 외에 서버, 대기열 또는 기타 리소스에도 사용될 수 있습니다.
이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준: 보통
구현 가이드
격벽 아키텍처를 사용합니다. 이 패턴은 선박의 격벽처럼 장애를 소수의 요청 또는 사용자 하위 집합으로 제한하여 손상된 요청 수를 제한하고 대부분의 요청은 오류 없이 계속될 수 있도록 합니다. 데이터에 대한 격벽은 종종 파티션으로 불리며 서비스에 대한 격벽은 셀이라고 합니다.
워크로드에 대한 셀 기반 아키텍처를 평가합니다. 셀 기반 아키텍처에서 각 셀은 서비스의 완전한 독립 인스턴스이며 최대 크기가 고정되어 있습니다. 로드가 증가하면 셀을 추가하는 방법으로 워크로드 규모를 늘립니다. 파티션 키는 수신 트래픽에서 요청을 처리할 셀을 결정하는 데 사용됩니다. 모든 장애는 장애가 발생한 단일 셀로 제한되므로 다른 셀은 오류 없이 계속되고 손상된 요청의 수가 제한됩니다. 따라서 셀 간의 상호 작용을 최소화하고 각 요청에서 복잡한 매핑 서비스를 실행할 필요가 없도록 적절한 파티션 키를 식별하는 것이 중요합니다. 복잡한 매핑을 실행해야 하는 서비스에서는 문제가 매핑 서비스로 이전될 뿐이며, 셀 간 상호 작용을 수행해야 하는 서비스에서는 개별 셀의 독립성 수준이 낮아지므로 셀의 자율성이 유지되는 경우 개선 가능한 가용성의 수준도 낮아집니다.
-
Colm MacCarthaigh의 AWS 블로그 게시물에 Amazon Route 53에서 셔플 샤딩 개념을 사용하여 고객 요청을 샤드로 격리하는 방법이 설명되어 있습니다.
-
리소스
관련 문서:
관련 동영상:
관련 예시: