Azure Stream Analytics 는 여러 원본의 스트리밍 데이터를 동시에 처리하고 분석하는 복원력이 뛰어난 서비스입니다. Stream Analytics는 SQL과 유사한 쿼리를 사용하여 복잡한 이벤트 처리 파이프라인을 빌드할 수 있는 정보를 제공합니다.
Azure를 사용하는 경우 안정성은 공유 책임입니다. Microsoft는 복원력 및 복구를 지원하는 다양한 기능을 제공합니다. 이러한 기능이 사용하는 모든 서비스 내에서 작동하는 방식을 이해하고 비즈니스 목표 및 가동 시간 목표를 충족하는 데 필요한 기능을 선택할 책임이 있습니다.
이 문서에서는 일시적인 오류 및 가용성 영역 중단을 비롯한 잠재적 문제에 대해 Stream Analytics가 복원력 있는 방법을 설명합니다. 또한 지역 중단 및 서비스 유지 관리로부터 중요 업무용 작업을 보호하는 방법에 대한 지침을 제공하고 Stream Analytics SLA(서비스 수준 계약)에 대한 몇 가지 주요 정보를 강조 표시합니다.
중요합니다
다른 구성 요소가 동일하게 복원력이 없는 경우 Stream Analytics의 복원력만 향상하면 영향을 제한할 수 있습니다. 입력 및 출력을 포함하여 데이터 원본의 안정성을 고려합니다. 복원력 요구 사항에 따라 여러 영역에서 구성을 변경해야 할 수 있습니다.
프로덕션 배포 권장 사항
Stream Analytics를 사용하여 프로덕션 환경에서 높은 안정성을 보장하려면 다음을 수행하는 것이 좋습니다.
- 가용성 영역이 있는 지역을 사용합니다. 가용성 영역을 지원하는 지역에 스트리밍 작업 및 기타 리소스를 배포합니다.
- 충분한 용량을 배포합니다. 예상 처리량에 따라 최대 부하를 처리하기 위한 추가 용량과 갑작스러운 증가 시 기준 요구 사항보다 높은 버퍼를 사용하여 스트리밍 단위를 설정합니다.
- 상태 모니터링: Azure Monitor 메트릭 및 진단 로그를 사용하여 포괄적인 모니터링을 구현하여 작업 상태, 입력/출력 이벤트 및 리소스 사용률을 추적합니다. 중요한 메트릭인 워터마크 지연 및 런타임 오류에 대한 경고를 구성하여 데이터 처리에 영향을 주기 전에 문제를 미리 감지합니다. 자세한 내용은 Azure Stream Analytics 모니터링을 참조하세요.
- 중요 업무용 워크로드에 대한 다중 지역 중복을 구현합니다. 지역 복원력을 달성하기 위해 동기화된 구성 및 적절한 데이터 라우팅을 사용하여 여러 지역에 동일한 Stream Analytics 작업을 배포합니다. Stream Analytics는 네이티브 다중 지역 복제를 제공하지 않지만 이 방법을 사용하면 장애 조치(failover) 및 연속성을 사용할 수 있습니다. 자세한 내용은 복원력에 대한 사용자 지정 다중 지역 솔루션을 참조하세요.
안정성 아키텍처 개요
이 섹션에서는 안정성 관점에서 가장 관련성이 높은 서비스가 작동하는 방식의 몇 가지 중요한 측면을 설명합니다. 이 섹션에서는 배포하고 사용하는 일부 리소스 및 기능을 포함하는 논리 아키텍처를 소개합니다. 또한 서비스의 작동 방식에 대한 세부 정보를 제공하는 물리적 아키텍처에 대해서도 설명합니다.
논리 아키텍처
작업은 스트림 처리 논리를 정의하고 실행할 수 있는, Stream Analytics의 기본 단위입니다. 작업은 다음과 같은 주요 구성 요소로 구성됩니다.
- 입력은 Azure Event Hubs, Azure IoT Hub, 또는 Azure Storage와 같은 데이터 원본에서 스트리밍 데이터를 읽습니다.
- 데이터를 처리하고 변환하는 쿼리 입니다.
- Azure SQL Database, Azure Data Lake Storage, Azure Cosmos DB, Power BI 등 다양한 대상에 지속적으로 결과를 쓰는 출력입니다.
Stream Analytics 작업 및 리소스 모델에 대한 자세한 내용은 Azure Stream Analytics 리소스 모델을 참조하세요.
물리적 아키텍처
Stream Analytics는 기본 인프라 및 입력 및 출력 데이터 원본의 문제를 완화하기 위해 여러 복원력 계층을 적용하여 높은 안정성을 달성합니다. 다음 구성 요소는 작업의 안정적인 운영을 보장하는 데 도움이 됩니다.
작업자 노드. Stream Analytics 작업은 클러스터 내에서 실행되는 작업자 노드라는 VM(가상 머신)에서 실행됩니다. Standard 또는 StandardV2 SKU를 사용하는 경우 작업은 공유 클러스터에서 실행됩니다. Dedicated SKU를 사용하는 경우 작업은 자체 전용 클러스터에서 실행됩니다.
플랫폼은 작업자 노드 만들기, 작업자 노드 간 작업 배치, 상태 모니터링 및 비정상 작업자 노드 교체를 자동으로 관리하므로 VM을 직접 보거나 관리할 수 없습니다.
스트리밍 단위 플랫폼은 작업자 노드 관리 및 작업 배포를 담당하지만, 작업에 스트리밍 단위(SU)를 할당하는 것은 귀하의 책임입니다. SUS는 작업을 실행하는 컴퓨팅 리소스를 나타냅니다. SUS 수가 많을수록 작업에 더 많은 컴퓨팅 리소스가 할당됩니다. 자세한 내용은 Stream Analytics 스트리밍 단위 이해 및 조정을 참조하세요.
검사점. Stream Analytics는 상태의 정기적인 체크포인팅을 통해 작업 상태를 유지합니다. 검사점을 사용하면 상태 저장 쿼리 논리를 사용하는 작업에서도 오류가 발생할 경우 최소한의 데이터 재처리로 빠른 복구를 수행할 수 있습니다.
처리 실패가 발생하면 Stream Analytics가 마지막 검사점에서 자동으로 다시 시작되고 처리 중에 실패하는 이벤트를 자동으로 다시 처리합니다. 이 보장은 작업 내의 모든 기본 제공 함수 및 사용자 정의 함수에 적용됩니다. 그러나 종단 간 정확히 한 번 배달을 달성하는 것은 출력 대상의 기능에 따라 달라집니다. 자세한 내용은 Azure Stream Analytics 작업의 검사점 및 재생 개념을 참조하세요.
비고
IoT Edge에서 Azure Stream Analytics를 사용하면 자체 인프라에서 작업을 실행할 수 있습니다. IoT Edge에서 Stream Analytics를 사용하는 경우 안정성 요구 사항을 충족하도록 구성해야 합니다. IoT Edge의 Stream Analytics는 이 문서의 범위를 벗어납니다.
일시적인 오류에 대한 회복 탄력성
일시적인 오류는 구성 요소에서 짧고 간헐적인 오류입니다. 클라우드와 같은 분산 환경에서 자주 발생하며 작업의 일반적인 부분입니다. 일시적인 오류는 짧은 시간 후에 스스로 수정됩니다. 애플리케이션은 일반적으로 영향을 받는 요청을 다시 시도하여 일시적인 오류를 처리할 수 있는 것이 중요합니다.
모든 클라우드 호스팅 애플리케이션은 클라우드 호스팅 API, 데이터베이스 및 기타 구성 요소와 통신할 때 Azure 임시 오류 처리 지침을 따라야 합니다. 자세한 내용은 임시 오류 처리를 위한 권장 사항을 참조하세요.
Stream Analytics는 입력에서 데이터를 수집하고 기본 제공 재시도 메커니즘을 통해 데이터를 출력에 쓰는 경우 모두에 대해 많은 일시적인 오류를 자동으로 처리합니다. 작업자 노드를 다시 시작하거나 작업을 다시 할당한 후 작업은 검사점을 사용하여 완전히 처리되지 않은 이벤트를 재생하고 현재 입력 스트림에 도달할 때까지 처리를 계속합니다.
출력 오류 정책을 구성하는 것이 좋습니다. 그러나 이러한 정책은 데이터 변환 오류에만 적용되며 일시적인 오류를 처리하는 동작에는 영향을 주지 않습니다.
가용성 영역 오류에 대한 복원력
가용성 영역은 Azure 지역 내에서 물리적으로 별도의 데이터 센터 그룹입니다. 한 영역이 실패하면 서비스가 나머지 영역 중 하나로 전환될 수 있습니다.
Stream Analytics는 가용성 영역을 지원하는 지역에서 자동으로 영역 중복되므로, 작업이 여러 가용성 영역을 사용합니다. 영역 중복성은 애플리케이션 논리를 변경할 필요 없이, 치명적인 데이터 센터 중단을 포함한 대규모 장애에 대해 복원력을 보장합니다.
영역 사용 지역에서 Stream Analytics 작업을 만들 때 서비스는 작업의 컴퓨팅 리소스를 여러 가용성 영역에 분산합니다.
이 영역 중복 배포 모델은 전체 가용성 영역을 사용할 수 없게 되는 경우에도 스트리밍 작업이 데이터를 계속 처리하도록 합니다. 예를 들어 다음 다이어그램은 영역 3에서 중단이 발생하는 경우 작업을 계속 실행하는 방법을 보여 줍니다.
영역 중복성은 쿼리 처리, 검사점 및 작업 관리 작업을 비롯한 모든 Stream Analytics 기능에 적용됩니다. Stream Analytics는 가용성 영역에 작업의 상태 및 검사점 데이터를 자동으로 복제하여 데이터 손실을 방지하고 영역 실패 시 거의 0에 가까운 가동 중지 시간을 사용하도록 설정합니다.
요구 사항
- 지역 지원: Stream Analytics 리소스에 대한 영역 중복성은 가용성 영역을 지원하는 모든 지역에서 지원됩니다. 가용성 영역을 지원하는 전체 지역 목록은 가용성 영역 이 있는 Azure 지역을 참조하세요.
- SKUs: 영역 중복성은 모든 Stream Analytics SKU에서 사용할 수 있습니다.
비용
Stream Analytics의 영역 중복은 추가 요금이 발생하지 않습니다. 작업이 영역 중복 구성에서 실행되는지 여부에 관계없이 스트리밍 단위에 대해 동일한 요금을 지불합니다. 자세한 내용은 Azure Stream Analytics 가격 책정을 참조하세요.
가용성 영역 지원 구성
영역 중복 Stream Analytics 작업을 생성합니다. 지원되는 지역에서 Stream Analytics 작업을 만들 때 영역 중복이 자동으로 활성화됩니다. 구성이 필요하지 않습니다.
배포 지침은 빠른 시작: Azure Portal 및 빠른 시작을 사용하여 Stream Analytics 작업 만들기: Azure Portal을 사용하여 전용 Azure Stream Analytics 클러스터 만들기를 참조하세요.
영역 중복을 사용하도록 설정합니다. 가용성 영역이 있는 지역에서는 모든 작업과 전용 클러스터가 자동으로 영역 중복됩니다. 영역 중복을 사용하도록 설정할 필요가 없습니다.
영역 중복을 사용하지 않도록 설정합니다. 영역 중복을 사용하지 않도록 설정할 수는 없습니다.
모든 영역이 정상인 경우의 동작
이 섹션에서는 가용성 영역 지원을 사용하여 Stream Analytics 작업을 구성하고 모든 가용성 영역이 작동할 때 예상되는 사항에 대해 설명합니다.
영역 간의 트래픽 라우팅. Stream Analytics는 작업자 노드에서 각 작업을 실행합니다. 들어오는 스트리밍 데이터는 모든 영역의 작업자가 처리할 수 있습니다. 이 서비스는 내부 부하 분산을 사용하여 처리 작업을 영역 간에 분산합니다.
영역 간의 데이터 복제입니다. Stream Analytics는 가용성 영역에서 작업 상태 및 검사점 데이터를 동기적으로 복제합니다. 작업이 이벤트를 처리하고 상태를 업데이트할 때 Stream Analytics는 이러한 변경 내용을 승인하기 전에 여러 가용성 영역에 기록합니다. 이 동기 복제는 전체 영역을 사용할 수 없게 되는 경우에도 데이터 손실이 없도록 합니다. 복제 프로세스는 애플리케이션에 투명하며 정상적인 조건에서 처리 대기 시간에 영향을 주지 않습니다.
영역 오류 중 동작
이 섹션에서는 가용성 영역 지원을 사용하여 Stream Analytics 작업을 구성하고 가용성 영역 중단이 발생할 때 예상되는 작업에 대해 설명합니다.
- 검색 및 응답: Stream Analytics 플랫폼은 가용성 영역에서 오류를 감지하고 응답하는 역할을 담당합니다. Stream Analytics는 실패한 영역의 작업자를 비정상으로 표시하고 해당 작업자에서 실행되는 작업은 나머지 정상 영역의 작업자에게 자동으로 재배포됩니다. 영역 장애 조치(failover)를 시작하기 위해 어떤 작업도 수행할 필요가 없습니다.
- 알림: 영역이 다운된 경우 Microsoft는 자동으로 알리지 않습니다. 그러나 Azure Resource Health 를 사용하여 개별 리소스의 상태를 모니터링하고 Resource Health 경고를 설정하여 문제를 알릴 수 있습니다. 또한 Azure Service Health를 사용하여 영역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.
활성 요청: 실행 중인 작업이 정상 가용성 영역의 다른 작업자로 이동됩니다.
Stream Analytics는 체크포인트를 사용하여 처리 상태를 유지합니다. 영역 장애 발생 시, 장애가 발생한 영역의 작업자가 처리 중이던 이벤트는 정상 영역의 작업자가 마지막 체크포인트부터 자동으로 다시 처리합니다.
예상 데이터 손실: 작업 검사점 시스템은 데이터 손실을 방지합니다.
예상 가동 중지 시간: 플랫폼이 정상 작업자로 이동한 후 진행 중인 작업이 자동으로 다시 시작됩니다.
트래픽 경로 변경: 서비스는 모든 새 입력 데이터를 정상 영역의 작업자에게 자동으로 리디렉션합니다. 입력 원본의 기존 연결은 운영 영역의 작업자와 다시 설정됩니다. 출력 연결도 마찬가지로 다시 설정되어 스트리밍 파이프라인을 통해 연속 데이터 흐름이 보장됩니다.
영역 복구
실패한 가용성 영역이 복구되면 Stream Analytics는 자동으로 활성 처리 풀로 다시 통합합니다. 작업은 복구된 인프라를 사용하기 시작합니다.
플랫폼이 상태 동기화 및 워크로드 재배포를 포함하여 영역 복구 작업의 모든 측면을 처리하기 때문에 영역 복구에 대한 작업을 수행하지 않습니다.
영역 오류 테스트
Stream Analytics 플랫폼이 트래픽 라우팅, 장애 조치(failover) 및 영역 복구를 관리하므로 가용성 영역 오류 프로세스를 시작하거나 유효성을 검사할 필요가 없습니다.
지역 전체 오류에 대한 복원력
Stream Analytics는 리소스를 단일 Azure 지역에 배포합니다. 지역을 사용할 수 없게 되면 작업(및 해당하는 경우 전용 클러스터)도 사용할 수 없습니다.
복원력을 위한 사용자 지정 다중 지역 솔루션
스트리밍 워크로드에 대한 다중 지역 복원력을 달성하려면 여러 지역에 별도의 작업을 배포하는 것이 좋습니다. 이렇게 하면 작업을 배포 및 관리하고 적절한 데이터 라우팅 및 동기화 전략을 구성할 책임이 있습니다. Stream Analytics 작업은 두 개의 개별 엔터티입니다. 입력 데이터를 두 지역 입력으로 보내고 지역 출력을 조정하는 것은 애플리케이션의 책임입니다. 이 방법에 대한 자세한 내용은 Stream Analytics 작업에 대한 지역 중복성 달성을 참조하세요.
백업 및 복원
Stream Analytics에는 기본 제공 백업 및 복원 기능이 없습니다.
그러나 작업의 정의 및 구성을 이동, 복사 또는 백업하려는 경우 Visual Studio Code용 Stream Analytics 확장을 사용하여 Azure 클라우드의 기존 작업을 로컬 컴퓨터로 내보낼 수 있습니다. Stream Analytics 작업의 전체 구성을 로컬로 저장한 후에는 동일한 Azure 또는 다른 Azure 지역에 배포할 수 있습니다. Stream Analytics 작업을 복사, 백업 및 이동하는 방법을 알아보려면 Azure Stream Analytics 작업 복사, 백업 및 이동을 참조하세요.
서비스 유지 관리에 대한 복원력
Stream Analytics는 자동 플랫폼 유지 관리를 수행하여 보안 업데이트를 적용하고, 새 기능을 배포하고, 서비스 안정성을 개선합니다. 따라서 Stream Analytics는 매주(또는 더 자주) 서비스 업데이트를 배포할 수 있습니다. Stream Analytics 서비스는 모든 새 업데이트가 엄격한 내부 링을 통과하여 최고 품질을 갖도록 보장합니다.
다음 사항을 고려하여 작업이 서비스 유지 관리 활동에 탄력적이 되도록 합니다.
재생에 복원력이 있도록 작업을 구성합니다. 검사점은 일반적으로 서비스 유지 관리 후 데이터를 복원하는 데 사용됩니다. 그러나 경우에 따라 검사점 대신 재생 기술을 사용해야 합니다. 자세한 내용과 재생으로 인해 출력이 잘못되거나 부분적인 결과가 발생하지 않도록 입력 데이터 원본을 구성하는 방법을 알아보려면 서비스 업그레이드에서 작업 복구를 참조하세요.
동일한 작업을 배포하여 버그의 위험을 완화하는 것이 좋습니다. 서비스는 각 일괄 처리에 배포한 후 많은 신호를 사전에 검색하여 도입된 버그가 없다는 확신을 얻습니다. 그러나 얼마나 많은 테스트가 수행되더라도 유지 관리에서 도입된 문제의 도입으로 인해 기존 실행 중인 작업이 중단될 위험이 있습니다. 중요 업무용 작업을 실행하는 경우 이러한 위험을 방지하기 위한 조치를 취해야 합니다.
두 Azure 지역에 동일한 작업을 배포하여 워크로드에 영향을 주는 버그의 위험을 줄일 수 있습니다. 그런 다음 예기치 않은 일이 발생할 때 알림을 받도록 이러한 작업을 모니터링 해야 합니다. Stream Analytics 서비스 업데이트 후 이러한 작업 중 하나가 실패 상태로 끝나는 경우 다음을 수행해야 합니다.
- 원인을 파악하고 문제를 해결하려면 Azure 지원에 문의하세요.
- 모든 하위 소비자를 장애가 없는 작업 출력으로 장애 조치합니다.
보조 작업에 사용할 Azure 지역을 선택하는 경우 지역에 쌍을 이루는 지역이 있는지 여부를 고려합니다. Azure 지역 목록에는 쌍으로 연결된 지역에 대한 최신 정보가 있습니다. Stream Analytics는 쌍을 이루는 지역의 인프라가 서로 다른 시간에 업데이트되도록 보장합니다. Stream Analytics에 대한 업데이트 배포는 쌍을 이루는 지역 집합에서 동시에 발생하지 않습니다. 따라서 업데이트 간에 잠재적인 문제를 식별하고 수정할 수 있는 충분한 시간 차이가 있습니다.
서비스 수준 약정
Azure 서비스의 SLA(서비스 수준 계약)는 각 서비스의 예상 가용성과 해당 가용성 예상 결과치를 달성하기 위해 솔루션이 충족해야 하는 조건을 설명합니다. 자세한 내용은 온라인 서비스 SLA를 참조하세요.
Stream Analytics는 작업을 관리하기 위한 API 호출 및 작업 작업에 대해 별도의 가용성 SLA를 제공합니다.