안정성은 복원력과 가용성이라는 두 가지 원칙으로 구성됩니다. 복원력의 목표는 오류를 방지하고 오류가 계속 발생하는 경우 애플리케이션을 완전히 작동하는 상태로 되돌리는 것입니다. 가용성의 목표는 애플리케이션이나 워크로드에 대한 일관된 액세스를 제공하는 것입니다. 애플리케이션 요구 사항에 따라 사전 안정성을 계획해야 합니다.
Azure에는 비즈니스 요구 사항에 따라 사용하고 관리할 수 있는 기본 제공 안정성 서비스가 포함되어 있습니다. 단일 하드웨어 노드 오류, 랙 수준 오류, 데이터 센터 중단 또는 대규모 지역 중단 등 Azure는 안정성을 개선시키는 솔루션을 제공합니다. 예를 들어, 가용성 집합은 Azure에 배포된 가상 머신이 클러스터의 여러 격리된 하드웨어 노드에 분산되도록 합니다. 가용성 영역은 한 지역 내의 여러 실제 위치에서 데이터 센터 오류로부터 고객의 애플리케이션과 데이터를 보호합니다. 지역 및 가용성 영역은 애플리케이션 디자인 및 복원력 전략의 핵심이며 이 문서의 뒷부분에서 자세히 설명합니다.
Azure 안정성 설명서는 Azure 서비스에 대한 안정성 지침을 제공합니다. 이 지침에는 가용성 영역 지원, 재해 복구 지침 및 서비스 가용성에 대한 정보가 포함되어 있습니다.
모든 Azure 솔루션에 필요한 안정성 수준은 몇 가지 고려 사항에 따라 다릅니다. 가용성 및 대기 시간 SLA 및 기타 비즈니스 요구 사항은 아키텍처 선택 및 복원력 수준을 결정하므로 먼저 고려해야 합니다. 가용성 요구 사항은 가동 중지 시간이 허용되는 정도와 비즈니스에 드는 비용에서 애플리케이션의 가용성을 높이는 데 실제로 투자할 수 있는 비용과 시간에 이르기까지 다양합니다.
Azure에서 안정성 시스템을 빌드하는 것은 공동 책임입니다. Microsoft는 글로벌 네트워크 및 데이터 센터를 포함한 클라우드 플랫폼의 안정성을 책임집니다. Azure 고객과 파트너는 각 워크로드의 요구 사항에 따라 아키텍처 모범 사례를 사용하여 클라우드 애플리케이션의 복원력을 책임집니다. Azure는 클라우드 플랫폼에 대한 SLA에서 가능한 최고의 복원력을 위해 지속적으로 노력하고 있지만 솔루션의 각 워크로드에 대해 고유한 대상 SLA를 정의해야 합니다. SLA를 사용하면 아키텍처가 비즈니스 요구 사항을 충족하는지 평가할 수 있습니다. SLA 보장 가동 시간 비율을 높이려고 노력할수록 해당 수준의 가용성을 달성하기 위한 비용과 복잡성이 커집니다. 99.99%의 가동 시간은 매월 약 5분의 총 가동 중지 시간으로 해석됩니다. 그 비율에 도달하기 위해 더 많은 복잡성과 비용을 감수할 가치가 있나요? 이에 대한 대답은 개별 비즈니스 요구 사항에 따라 다릅니다. 최종 SLA 약정을 결정할 때 Microsoft에서 지원하는 SLA를 이해합니다. 각 Azure 서비스에는 자체 SLA가 있습니다.
기존 온-프레미스 모델에서는 컴퓨팅, 스토리지, 네트워킹용 하드웨어부터 애플리케이션에 이르기까지 모든 관리 책임이 사용자에게 있습니다. 재해 복구 전략을 만들어 다양한 형식의 오류와 이를 처리하는 방법을 계획해야 합니다. IaaS를 통해 클라우드 서비스 공급자는 스토리지, 네트워킹, 컴퓨팅을 포함한 핵심 인프라 복원력을 담당합니다. IaaS에서 PaaS로, 그리고 SaaS로 전환하면 사용자의 책임은 줄어들고 클라우드 서비스 공급자는 더 많은 책임을 지게 됩니다.
계획 초기에 애플리케이션의 안정성 요구 사항을 정의해야 합니다. 특정 기간 동안 100% 고가용성이 필요하지 않은 애플리케이션을 알고 있으면 중요하지 않은 기간 동안 비용을 최적화할 수 있습니다. 애플리케이션에서 발생할 수 있는 오류 형식과 각 오류의 잠재적 영향을 식별합니다. 복구 계획은 개별 구성 요소 및 전체 애플리케이션 수준에서 복구 전략을 마무리하여 모든 중요한 서비스를 포함해야 합니다. 영역, 지역 및 애플리케이션 수준 장애로부터 보호하기 위해 복구 전략을 설계합니다. 엔드투엔드 애플리케이션 환경 테스트를 수행하여 애플리케이션 안정성 및 예기치 못한 오류에 대한 복구를 측정합니다.
다음 검사 목록은 안정성 계획의 범위를 다룹니다.
안정성 계획
비즈니스 요구 사항을 충족하도록 가용성 및 복구 목표를 정의합니다.
가용성 요구 사항에 따라 애플리케이션의 안정성 기능을 디자인합니다.
안정성 요구 사항을 충족하도록 애플리케이션과 데이터 플랫폼을 정렬합니다.
가용성을 높이기 위해 연결 경로를 구성합니다.
안정성을 개선하고 비용을 최적화하기 위해 적용 가능한 경우 가용성 영역 및 재해 복구 계획을 사용합니다.
애플리케이션 아키텍처가 장애에 대해 복원력이 있는지 확인합니다.
SLA 요구 사항이 충족되지 않으면 어떤 일이 발생하는지 알고 있습니다.
시스템에서 가능한 장애 지점을 식별합니다. 애플리케이션 디자인은 회로 차단을 배포하여 종속성 오류를 허용해야 합니다.
RTO 및 RPO는 시스템의 비기능적 요구 사항이며 비즈니스 요구 사항에 따라 결정해야 합니다. 이러한 가치를 측정하려면 위험 평가를 수행하고 가동 중지 시간 또는 데이터 손실의 비용을 정확하게 이해하는 것이 좋습니다.
영역 및 가용성 영역
지역 및 가용성 영역은 안정성 방정식의 큰 부분입니다. 지역에는 실제로 분리된 여러 가용성 영역이 있습니다. 이러한 가용성 영역은 실제 영역 간에 대기 시간이 2ms 미만인 고성능 네트워크로 연결됩니다. 대기 시간이 짧으면 문제가 발생해도 데이터가 동기화되고 액세스 가능한 상태를 유지할 수 있습니다. 영역 간 및 지역 간에 중단 없는 서비스를 자동으로 복제하고 제공하는 애플리케이션 및 데이터 인프라를 설계할 때 이 인프라를 전략적으로 사용할 수 있습니다.
Microsoft Azure 서비스는 가용성 영역을 지원하고 영역 간 복구 및 비즈니스 연속성 전략 요구 사항을 지원하면서 최적의 고가용성으로 클라우드 운영을 추진할 수 있습니다.
재해 복구 계획을 위해 다른 지역과 쌍을 이루는 지역은 지역 간 복제를 제공하고 다른 Azure 지역 간에 데이터를 비동기식으로 복제하여 보호를 제공합니다. 쌍이 없는 지역은 데이터 보존 지침을 따르며 가용성 영역과 로컬 중복 또는 영역 중복 스토리지를 통해 고가용성을 제공합니다. 고객은 RTO/RPO 요구 사항에 따라 지역 간 재해 복구를 계획해야 합니다.
기술 및 규정 고려 사항(서비스 기능, 데이터 보존, 규정 준수 요구 사항, 대기 시간)을 기반으로 요구 사항에 가장 적합한 지역을 선택하고 안정성 전략을 수립합니다. 자세한 내용은 Azure 지역 및 가용성 영역을 참조하세요.
Azure 서비스 종속성
Microsoft Azure 서비스는 클라우드 운영이 최적의 수준에서 이루어지도록 전역적으로 제공됩니다.
Azure 서비스는 고가용성 및 재해 복구를 포함하여 안정성을 위해 빌드되었습니다. 단일 논리적 데이터 센터에 의존하는 서비스가 없습니다(단일 장애 지점 방지). Azure 글로벌 인프라 제품에 나열된 비지역 서비스는 특정 Azure 지역에 종속되지 않는 서비스입니다. 비지역 서비스는 둘 이상의 지역에 배포되고, 지역 오류가 발생하면 다른 지역의 서비스 인스턴스가 계속해서 고객에게 서비스를 제공합니다. 특정 비지역 서비스를 통해 고객은 서비스가 실행되는 기본 VM(가상 머신)이 배포될 지역을 지정할 수 있습니다. 예를 들어, Azure Virtual Desktop을 사용하면 고객이 VM이 있는 지역 위치를 지정할 수 있습니다. 고객 데이터를 저장하는 모든 Azure 서비스를 통해 고객은 데이터가 저장될 특정 지역을 지정할 수 있습니다. 지리적 위치(예: 유럽 또는 북아메리카)가 있는 Microsoft Entra ID는 예외입니다. 데이터 스토리지 상주에 대한 자세한 내용은 데이터 보존 맵을 참조하세요.
애플리케이션과 서비스를 더 잘 설계하기 위해 Azure 서비스 간의 종속성을 이해해야 하는 경우 Microsoft 영업 또는 고객 담당자에게 문의하여 Azure 서비스 종속성 설명서를 요청할 수 있습니다. 이 문서에는 컨트롤 플레인 서비스와 같은 일반적인 주요 내부 서비스에 대한 종속성을 포함하여 Azure 서비스에 대한 종속성이 나와 있습니다. 이 설명서를 가져오려면 Microsoft 고객이어야 하며 Microsoft와 적절한 NDA(비밀 유지 계약)를 체결해야 합니다.