내결함성 및 장애 격리 - 가용성과 그 이상: 분산 시스템의 복원력에 대한 이해 및 개선 AWS

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

내결함성 및 장애 격리

이 두 가지 개념은 가용성을 고려할 때 아주 중요합니다. 내결함성이란 하위 시스템 고장을 견디고 가용성을 유지하는 능력(설정된 SLA 내에서 올바른 작업 수행)을 말합니다. 내결함성을 구현하기 위해 워크로드는 스페어(또는 중복) 하위 시스템을 사용합니다. 중복 세트의 하위 시스템 중 하나에 고장이 발생하면 일반적으로 거의 원활하게 다른 하위 시스템이 작업을 시작합니다. 이 경우 스페어는 진정한 스페어 용량이므로 고장이 발생한 하위 시스템의 작업을 100% 떠맡을 수 있습니다. 진정한 스페어가 있으면 여러 개의 하위 시스템 고장이 발생해야만 워크로드에 부정적인 영향이 미칩니다.

고장 격리는 고장 발생 시 영향 범위를 최소화합니다. 이는 일반적으로 모듈화를 통해 구현됩니다. 워크로드는 고장이 한꺼번에 발생하지 않고, 따라서 개별적으로 복구할 수 있는 작은 하위 시스템들로 나누어집니다. 모듈의 고장은 모듈 외부로 전파되지 않습니다. 이 아이디어는 수직적으로는 워크로드의 다양한 기능에 걸쳐 적용되고 수평적으로는 동일한 기능을 제공하는 여러 하위 시스템에 걸쳐 적용됩니다. 이러한 모듈은 이벤트 중에 미치는 영향 범위를 제한하는 장애 컨테이너 역할을 합니다.

컨트롤 플레인, 데이터 영역 및 정적 안정성의 아키텍처 패턴은 내결함성 및 장애 격리 구현을 직접적으로 지원합니다. Amazon Builders' Library 문서 가용 영역을 사용한 정적 안정성에서는 이러한 용어에 대한 올바른 정의와 복원력 있고 가용성이 높은 워크로드를 구축하는 데 적용하는 방법을 제공합니다. 이 백서에서는 AWS에서 고가용성 분산 시스템 설계 항목에서 이러한 패턴을 사용하며 여기에 해당 정의도 요약되어 있습니다.

  • 컨트롤 플레인: 리소스 추가, 리소스 삭제, 리소스 수정, 해당 변경 사항을 필요한 곳으로 전파하는 등 변경과 관련된 워크로드의 일부입니다. 컨트롤 플레인은 일반적으로 데이터 영역보다 더 복잡하고 움직이는 부분이 많기 때문에 통계적으로 실패 가능성이 더 높고 가용성이 낮습니다.

  • 데이터 영역: 일상적인 비즈니스 기능을 제공하는 워크로드의 일부입니다. 데이터 영역은 컨트롤 플레인보다 단순하고 대량으로 작동하는 경향이 있어 가용성이 높아집니다.

  • 정적 안정성: 종속성 손상에도 불구하고 워크로드가 올바른 작동을 계속할 수 있는 능력입니다. 구현 방법 중 하나는 데이터 영역에서 컨트롤 플레인 종속성을 제거하는 것입니다. 또 다른 방법은 워크로드 종속성을 느슨하게 결합하는 것입니다. 종속 항목이 전달해야 하는 업데이트된 정보(예: 새 항목, 삭제된 항목, 수정된 항목)가 워크로드에 표시되지 않을 수 있습니다. 하지만 종속성이 손상되기 전에 수행했던 모든 작업은 계속 작동합니다.

워크로드 장애를 생각할 때 복구를 위해 고려할 수 있는 두 가지 상위 수준의 접근 방식이 있습니다. 첫 번째 방법은 장애가 발생한 후 이에 대응하는 것입니다. AWS Auto Scaling로 새 용량을 추가하는 방법이 있겠지요. 두 번째 방법은 이러한 장애가 발생하기 전에 이에 대비하는 것입니다. 예를 들어 워크로드의 인프라를 오버프로비저닝하여 추가 리소스 없이도 올바르게 운영될 수 있도록 하는 것입니다.

정적으로 안정적인 시스템은 후자의 접근 방식을 사용합니다. 고장 발생 시 사용할 수 있도록 예비 용량을 미리 프로비저닝합니다. 이 방법을 사용하면 고장 복구를 위한 새 용량을 프로비저닝하기 위해 워크로드의 복구 경로에 컨트롤 플레인에 종속성을 생성하지 않아도 됩니다. 또한 다양한 리소스에 새 용량을 프로비저닝하려면 시간이 걸립니다. 새 용량을 기다리는 동안 기존 수요로 인해 워크로드에 과부하가 걸리고 추가 성능 저하가 발생하여 가용성이 완전히 손실될 수 있습니다. 하지만 사전 프로비저닝된 용량을 가용성 목표에 맞게 활용할 경우 비용에 미치는 영향도 고려해야 합니다.

정적 안정성은 고가용성 워크로드에 대한 다음 두 가지 규칙을 제공합니다.

규칙 7

특히 복구 중에는 데이터 영역의 컨트롤 플레인에 대한 종속성을 고려하지 마세요.

규칙 8

가능한 경우 종속성이 손상되더라도 워크로드가 올바르게 작동할 수 있도록 종속성을 느슨하게 결합하세요.