중복성을 위한 디자인에 대한 권장 사항

이 Azure Well-Architected Framework 안정성 검사 목록 권장 사항에 적용됩니다.

RE:05 특히 중요한 흐름의 경우 다양한 수준에서 중복성을 추가합니다. 식별된 안정성 목표에 따라 컴퓨팅, 데이터, 네트워크 및 기타 인프라 계층에 중복성을 적용합니다.

관련 가이드:가용성 영역 및 지역을 사용하여고가용성 다중 영역 디자인 |

이 가이드에서는 복원력을 최적화하는 다양한 워크로드 계층의 중요한 흐름 전체에 중복성을 추가하기 위한 권장 사항을 설명합니다. 컴퓨팅, 데이터, 네트워킹 및 기타 인프라 계층에 적절한 수준의 중복성을 적용하여 정의된 안정성 목표의 요구 사항을 충족합니다. 이 중복성을 적용하여 워크로드에 강력하고 신뢰할 수 있는 기반을 구축합니다. 인프라 중복 없이 워크로드를 빌드할 때 잠재적인 오류로 인해 가동 중지 시간이 길어질 위험이 높습니다.

정의

용어 정의
중복 워크로드 구성 요소의 동일한 여러 인스턴스 구현입니다.
다중저장소 지속성 각 구성 요소의 최상의 기능을 활용하기 위해 동일한 애플리케이션 또는 솔루션에서 서로 다른 스토리지 기술을 사용하는 개념입니다.
데이터 일관성 지정된 데이터 세트가 여러 저장소에서 동기화 또는 동기화되지 않습니다.
분할 데이터를 별도의 데이터 저장소로 물리적으로 나누는 프로세스입니다.
분할 공통 스키마를 사용하여 여러 스토리지 인스턴스를 지원하는 수평 데이터베이스 분할 전략입니다. 데이터는 모든 인스턴스에서 복제되지 않습니다.

주요 디자인 전략

안정성의 컨텍스트에서 중복성을 사용하여 단일 리소스에 영향을 주는 문제를 포함하고 이러한 문제가 전체 시스템의 안정성에 영향을 주지 않도록 합니다. 중요한 흐름 및 안정성 목표에 대해 식별한 정보를 사용하여 각 흐름의 중복성에 필요한 정보에 입각한 결정을 내릴 수 있습니다.

예를 들어 한 번에 여러 웹 서버 노드가 실행 중일 수 있습니다. 지원하는 흐름의 중요도는 전체 풀에 영향을 주는 문제(예: 지역 가동 중단)가 있는 경우 트래픽을 허용할 준비가 된 복제본이 모두 있어야 할 수 있습니다. 또는 대규모 문제가 드물고 전체 복제본 집합을 배포하는 데 비용이 많이 들기 때문에 문제를 resolve 때까지 흐름이 저하된 상태로 작동하도록 제한된 수의 복제본을 배포할 수 있습니다.

성능 효율성 컨텍스트에서 중복성을 설계할 때는 여러 중복 노드에 부하를 분산하여 각 노드가 최적으로 수행되도록 합니다. 안정성의 컨텍스트에서 하나 이상의 노드에 영향을 주는 오류 또는 오작동을 흡수하기 위해 예비 용량으로 빌드합니다. 예비 용량이 영향을 받는 노드를 복구하는 데 필요한 전체 시간 동안 오류를 흡수할 수 있는지 확인합니다. 이러한 차이점을 염두에 두고 두 전략이 함께 작동해야 합니다. 성능을 위해 두 노드에 트래픽을 분산하고 둘 다 60%의 사용률로 실행되고 하나의 노드가 실패하는 경우 나머지 노드는 120%에서 작동할 수 없기 때문에 과부하가 발생할 위험이 있습니다. 부하를 다른 노드로 분산하여 성능 및 안정성 목표를 유지할 수 있도록 합니다.

절충:

  • 워크로드 중복성이 많을수록 비용이 더 많이 듭니다. 중복성을 추가하는 것을 신중하게 고려하고 아키텍처를 정기적으로 검토하여 특히 오버프로비전을 사용하는 경우 비용을 관리하고 있는지 확인합니다. 오버프로비전을 복원력 전략으로 사용하는 경우 비용 비효율성을 최소화하기 위해 잘 정의된 크기 조정 전략 과 균형을 조정합니다.
  • 높은 수준의 중복성으로 빌드할 때 성능이 저하될 수 있습니다. 예를 들어 가용성 영역 또는 지역에 분산된 리소스는 웹 서버 또는 데이터베이스 인스턴스와 같은 중복 리소스 간에 대기 시간이 긴 연결을 통해 트래픽을 전송해야 하므로 성능에 영향을 줄 수 있습니다.
  • 동일한 워크로드 내의 흐름에 따라 안정성 요구 사항이 다를 수 있습니다. 흐름별 중복 디자인은 잠재적으로 전체 디자인에 복잡성을 초래할 수 있습니다.

중복 아키텍처 디자인

중복 아키텍처를 디자인할 때 활성-활성 또는 활성-수동의 두 가지 방법을 고려합니다. 인프라 구성 요소가 지원하는 사용자 흐름 및 시스템 흐름의 중요도에 따라 접근 방식을 선택합니다. 안정성 측면에서 다중 지역 활성-활성 디자인은 가능한 가장 높은 수준의 안정성을 달성하는 데 도움이 되지만 활성-수동 디자인보다 훨씬 더 비쌉니다. 적절한 지리적 지역을 결정하는 것이 다음으로 중요한 선택이 됩니다. 가용성 영역을 사용하여 단일 지역에 대해 이러한 디자인 방법을 사용할 수도 있습니다. 자세한 내용은 고가용성 다중 지역 디자인에 대한 권장 사항을 참조하세요.

배포 스탬프 및 규모 단위

활성-활성 또는 활성-수동 모델에 배포하든 관계없이 배포 스탬프 디자인 패턴을 따라 반복 가능하고 확장 가능한 방식으로 워크로드를 배포합니다. 배포 스탬프는 지정된 고객 하위 집합에 워크로드를 제공하는 데 필요한 리소스의 그룹화입니다. 예를 들어 하위 집합은 워크로드와 데이터 개인 정보 요구 사항이 모두 동일한 지역 하위 집합 또는 하위 집합일 수 있습니다. 각 스탬프를 워크로드를 수평으로 확장하거나 파란색-녹색 배포를 수행하기 위해 복제할 수 있는 규모의 단위 로 간주합니다. 복원력 및 관리 부담을 위해 활성-활성 또는 활성-수동 구현을 최적화하도록 배포 스탬프를 사용하여 워크로드를 디자인합니다. 다중 지역 규모 확장 계획도 한 지역의 잠재적인 임시 리소스 용량 제약 조건을 극복하는 데 중요합니다.

Azure 지역 내의 가용성 영역

활성-활성 또는 활성-수동 디자인을 배포하든 관계없이 활성 지역 내의 가용성 영역을 활용하여 복원력을 완전히 최적화합니다. 많은 Azure 지역은 지역 내에서 데이터 센터의 분리된 그룹인 여러 가용성 영역을 제공합니다. Azure 서비스에 따라 영역 간에 중복적으로 워크로드 요소를 배포하거나 특정 영역에 요소를 고정하여 가용성 영역을 활용할 수 있습니다. 자세한 내용은 가용성 영역 및 지역 사용에 대한 권장 사항을 참조하세요.

인프라 계층 지침

Compute 리소스

  • 워크로드에 적합한 컴퓨팅 서비스를 선택합니다. 디자인하는 워크로드 유형에 따라 몇 가지 옵션을 사용할 수 있습니다. 사용 가능한 서비스를 조사하고 지정된 컴퓨팅 서비스에서 가장 적합한 워크로드 유형을 이해합니다. 예를 들어 SAP 워크로드는 일반적으로 IaaS(Infrastructure as a Service) 컴퓨팅 서비스에 가장 적합합니다. 컨테이너화된 애플리케이션의 경우 AKS(Azure Kubernetes Service) 또는 PaaS(Platform as a Service) 솔루션을 사용할지 여부를 결정하기 위해 제어해야 하는 특정 기능을 결정합니다. 클라우드 플랫폼은 PaaS 서비스를 완전히 관리합니다.

  • 요구 사항이 허용하는 경우 PaaS 컴퓨팅 옵션을 사용합니다. Azure는 PaaS 서비스를 완전히 관리하여 관리 부담을 줄이고 문서화된 수준의 중복성을 기본 제공합니다.

  • VM(가상 머신)을 배포해야 하는 경우 Azure Virtual Machine Scale Sets 사용합니다. Virtual Machine Scale Sets 사용하면 컴퓨팅을 가용성 영역에 균등하게 자동으로 분산할 수 있습니다.

  • 요청을 제공하는 개별 노드가 언제든지 삭제, 오류 또는 교체될 수 있으므로 컴퓨팅 계층을 모든 상태의 클린 유지합니다.

  • 가능한 경우 영역 중복 서비스를 사용하여 운영 부담을 증가하지 않고 더 높은 복원력을 제공합니다.

  • 자동 크기 조정 작업이 시작되기 전에도 중복 인스턴스의 오류를 완화하기 위해 중요한 리소스를 과도하게 프로비전하므로 구성 요소 오류 후에도 시스템이 계속 작동합니다. 중복 디자인에 오버프로비전을 통합할 때 오류의 허용 가능한 효과를 계산합니다. 중복 의사 결정 프로세스와 마찬가지로 안정성 목표 및 재무 절충 결정은 과잉 프로비전으로 예비 용량을 추가하는 정도를 결정합니다. 오버프로비전은 특히 스케일 아웃을 의미하며, 이는 단일 instance 컴퓨팅 기능을 늘리는 대신 지정된 컴퓨팅 리소스 유형의 추가 인스턴스를 추가하는 것을 의미합니다. 예를 들어 VM을 하위 계층 SKU에서 상위 계층 SKU로 변경하는 경우입니다.

  • 솔루션을 구현하려는 각 가용성 영역 또는 지역에서 수동으로 또는 자동화를 통해 IaaS 서비스를 배포합니다. 일부 PaaS 서비스에는 가용성 영역 및 지역에서 자동으로 복제되는 기본 제공 기능이 있습니다.

데이터 리소스

  • 워크로드 기능에 동기 또는 비동기 데이터 복제가 필요한지 여부를 확인합니다. 이 결정을 내리는 데 도움이 되도록 가용성 영역 및 지역 사용에 대한 권장 사항을 참조하세요.

  • 데이터의 증가율을 고려합니다. 용량 계획의 경우 솔루션의 데이터 양이 증가함에 따라 안정성 요구 사항이 충족되도록 데이터 증가, 데이터 보존 및 보관을 계획합니다.  

  • 지리적으로 지역화된 오류의 영향을 최소화하기 위해 서비스에서 지원하는 대로 지리적으로 데이터를 배포합니다.

  • 지역 간 데이터를 복제하여 지역 가동 중단 및 치명적인 오류에 대한 복원력을 제공합니다.

  • 데이터베이스 instance 실패 후 장애 조치(failover)를 자동화합니다. 여러 Azure PaaS 데이터 서비스에서 자동화된 장애 조치(failover)를 구성할 수 있습니다. Azure Cosmos DB와 같은 다중 지역 쓰기를 지원하는 데이터 저장소에는 자동화된 장애 조치(failover)가 필요하지 않습니다. 자세한 내용은 재해 복구 전략 설계에 대한 권장 사항을 참조하세요.

  • 데이터에 가장 적합한 데이터 저장소 를 사용합니다. 데이터 저장소 기술을 혼합하여 사용하는 다각형 지속성 또는 솔루션을 수용합니다. 데이터에는 지속형 애플리케이션 데이터 이상이 포함됩니다. 또한 애플리케이션 로그, 이벤트, 메시지 및 캐시도 포함됩니다.

  • 데이터 일관성 요구 사항을 고려하고 요구 사항이 허용 되면 최종 일관성 을 사용합니다. 데이터가 분산되면 적절한 조정을 사용하여 강력한 일관성 보장을 적용합니다. 조정을 통해 처리량을 줄이고 시스템을 긴밀하게 결합할 수 있으므로 더 부서지기 쉽습니다. 예를 들어 작업이 단일 트랜잭션 scope 배치하는 대신 두 데이터베이스를 업데이트하는 경우 시스템이 최종 일관성을 수용할 수 있는 경우 더 좋습니다.

  • 가용성을 위해 데이터를 분할합니다. 데이터베이스 분할은 확장성을 향상시키고 가용성을 향상시킬 수도 있습니다. 한 분할된 데이터베이스가 다운되면 다른 분할된 데이터베이스에 연결할 수 있습니다. 하나의 분할된 데이터베이스에서 오류가 발생하면 총 트랜잭션의 하위 집합만 중단됩니다.

  • 분할이 옵션이 아닌 경우 CQRS(명령 및 쿼리 책임 분리) 패턴을 사용하여 읽기-쓰기 및 읽기 전용 데이터 모델을 구분할 수 있습니다. 더 많은 복원력을 제공하기 위해 중복 읽기 전용 데이터베이스 인스턴스를 더 추가합니다.  

  • 사용하는 상태 저장 플랫폼 서비스의 기본 제공 복제 및 중복 기능을 이해합니다. 상태 저장 데이터 서비스의 특정 중복 기능은 관련 링크를 참조하세요.

네트워킹

  • 안정적이고 확장 가능한 네트워크 토폴로지를 결정합니다. 허브 및 스포크 모델 또는 Azure Virtual WAN 모델을 사용하여 중복성 디자인을 더 쉽게 빌드하고 확장할 수 있는 논리적 패턴으로 클라우드 인프라를 구성할 수 있습니다.

  • 지역 내 또는 지역 간에 요청의 균형을 맞추고 리디렉션할 적절한 네트워크 서비스를 선택합니다. 가능한 경우 전역 또는 영역 중복 부하 분산 서비스를 사용하여 안정성 목표를 충족합니다.

  • 스케일 아웃 요구 사항을 포함하여 계획된 사용을 설명하기 위해 가상 네트워크 및 서브넷에 충분한 IP 주소 공간을 할당했는지 확인합니다.

  • 애플리케이션이 선택한 애플리케이션 호스팅 플랫폼의 포트 제한 내에서 확장할 수 있는지 확인합니다. 애플리케이션이 여러 아웃바운드 TCP 또는 UDP 연결을 시작하는 경우 사용 가능한 모든 포트가 소진되어 애플리케이션 성능이 저하될 수 있습니다.

  • SKU를 선택하고 대역폭 및 가용성 요구 사항을 충족할 수 있는 네트워킹 서비스를 구성합니다. VPN 게이트웨이의 처리량은 해당 SKU에 따라 달라집니다. 영역 중복에 대한 지원은 일부 부하 분산 장치 SKU에서만 사용할 수 있습니다.

  • DNS 처리를 위한 디자인이 복원력에 중점을 두고 빌드되고 중복 인프라를 지원하는지 확인합니다.

Azure 촉진

Azure 플랫폼을 사용하면 워크로드의 복원력을 최적화하고 다음을 통해 중복성을 추가할 수 있습니다.

  • 많은 PaaS 및 SaaS(Software as a Service) 솔루션과 함께 기본 제공 중복성을 제공하며, 그 중 일부는 구성할 수 있습니다.

  • 가용성 영역 및 지역 간 중복성을 사용하여 지역 내 중복성을 설계하고 구현할 수 있습니다.

  • Azure Application Gateway, Azure Front DoorAzure Load Balancer 같은 복제본(replica) 인식 부하 분산 서비스를 제공합니다.

  • Azure SQL Database에 대한 활성 지역 복제와 같은 쉽게 구현된 지역 복제 솔루션을 제공합니다. Azure Cosmos DB를 사용하여 전역 배포 및 투명한 복제를 구현합니다. Azure Cosmos DB는 충돌하는 쓰기를 처리하기 위한 두 가지 옵션을 제공합니다. 워크로드에 가장 적합한 옵션을 선택합니다.

  • 많은 PaaS 데이터 서비스에 대한 특정 시점 복원 기능을 제공합니다.

  • Azure NAT Gateway 또는 Azure Firewall 통해 포트 소모를 완화합니다.

DNS별 Azure 촉진

  • 내부 이름 확인 시나리오의 경우 기본 제공 영역 중복성 및 지역 중복성이 있는 Azure DNS 프라이빗 영역을 사용합니다. 자세한 내용은 Azure DNS 프라이빗 영역 복원력을 참조하세요.

  • 외부 이름 확인 시나리오의 경우 기본 제공 영역 중복성 및 지역 중복성이 있는 Azure DNS 공용 영역을 사용합니다.

  • 공용 및 프라이빗 Azure DNS 서비스는 영역 데이터를 전역적으로 사용할 수 있기 때문에 지역 가동 중단에 탄력적인 글로벌 서비스입니다.

  • 온-프레미스 환경과 클라우드 환경 간의 하이브리드 이름 확인 시나리오의 경우 Azure DNS Private Resolver를 사용합니다. 이 서비스는 워크로드가 가용성 영역을 지원하는 지역에 있는 경우 영역 중복성을 지원합니다. 영역 전체 중단은 영역 복구 중에 아무 작업도 필요하지 않습니다. 이 서비스는 정상 영역을 활용하기 위해 자동으로 자체 치유 및 균형을 조정합니다. 자세한 내용은 Azure DNS Private Resolver의 복원력을 참조하세요.

  • 단일 실패 지점을 제거하고 지역 간에 보다 복원력 있는 하이브리드 이름 확인을 달성하려면 여러 지역에 둘 이상의 Azure DNS 프라이빗 확인자를 배포합니다. 조건부 전달 시나리오에서 DNS 장애 조치(failover)는 확인자를 기본 DNS 서버로 할당하여 수행됩니다. 다른 지역의 다른 확인자를 보조 DNS 서버로 할당합니다. 자세한 내용은 프라이빗 확인자를 사용하여 DNS 장애 조치(failover) 설정을 참조하세요.

예제

다중 지역 중복 배포의 예는 고가용성 영역 중복 웹 애플리케이션 기준을 참조하세요.

다음 다이어그램은 또 다른 예제를 보여줍니다.

참조 구현의 아키텍처를 보여 주는 다이어그램

중복성에 대한 자세한 내용은 다음 리소스를 참조하세요.

안정성 검사 목록

전체 권장 사항 집합을 참조하세요.