Azure 알림 허브의 안정성

Azure 알림 허브 APN(Apple Push Notification Service), FCM(Firebase Cloud Messaging) 및 Windows WNS(푸시 알림 서비스)와 같은 여러 PNS(플랫폼 알림 시스템)에서 푸시 알림을 관리하는 데 도움이 됩니다.

Azure를 사용하는 경우 안정성은 공유 책임입니다. Microsoft는 복원력 및 복구를 지원하는 다양한 기능을 제공합니다. 이러한 기능이 사용하는 모든 서비스 내에서 작동하는 방식을 이해하고 비즈니스 목표 및 가동 시간 목표를 충족하는 데 필요한 기능을 선택할 책임이 있습니다.

이 문서에서는 일시적인 오류, 가용성 영역 장애, 지역 전체 장애, 서비스 유지 관리 등 다양한 잠재적 장애와 문제에 Notification Hubs가 복원력을 갖추고 대응할 수 있도록 하는 방법을 설명합니다. 또한 백업 및 복원 옵션과 Notification Hubs SLA(서비스 수준 계약)에 대한 주요 정보를 설명합니다.

프로덕션 배포 권장 사항

프로덕션 워크로드의 경우 다음 권장 사항을 따릅니다.

  • 네임스페이스가 SLA에 적합한지 확인하려면 기본 또는 표준 계층을 사용합니다.

  • 가능하면 디바이스 애플리케이션에서 등록 대신 설치를 사용합니다.

  • Microsoft 제공 SDK를 사용하여 Notification Hubs와 상호 작용합니다.

  • 영역 중복을 사용하도록 설정합니다.

  • 지역 전체 중단을 준비하려면 다른 Azure 지역으로 메타데이터 재해 복구를 사용하도록 설정합니다. 디바이스 등록 및 설치를 백업 및 복원하는 방법을 계획합니다.

안정성 아키텍처 개요

Azure 알림 허브 네임스페이스 및 알림 허브를 중심으로 구성됩니다. 네임스페이스는 하나 이상의 허브를 포함하는 관리 경계입니다. 허브는 애플리케이션의 엔드포인트를 나타냅니다. 디바이스는 등록 또는 설치를 사용하여 해당 엔드포인트에 등록 합니다. 그러면 서비스에서 디바이스에 푸시 알림을 보낼 수 있습니다. 자세한 내용은 등록 관리를 참조하세요.

Notification Hubs는 APN(Apple Push Notification Service) 및 FCM(Firebase Cloud Messaging)과 같은 PNS(플랫폼 알림 시스템)에 푸시 알림을 보냅니다. 엔드 투 엔드 알림 배달은 Notification Hubs의 가용성 및 다운스트림 PNS 공급자의 동작에 따라 달라집니다.

안정성 계획의 경우 Notification Hubs에서 관리하는 다음과 같은 유형의 데이터를 구분하는 것이 중요합니다.

  • 메타데이터: 연결 정보 및 재해 복구 구성을 포함한 네임스페이스 및 허브 구성
  • 등록 데이터: 사용자와 디바이스를 태그 및 템플릿에 매핑하는 디바이스 등록 및 설치

일시적인 오류에 대한 복원력

일시적인 오류는 구성 요소에서 짧고 간헐적인 오류입니다. 클라우드와 같은 분산 환경에서 자주 발생하며 작업의 일반적인 부분입니다. 일시적인 오류는 짧은 시간 후에 스스로 수정됩니다. 애플리케이션은 일반적으로 영향을 받는 요청을 다시 시도하여 일시적인 오류를 처리할 수 있는 것이 중요합니다.

모든 클라우드 호스팅 애플리케이션은 클라우드 호스팅 API, 데이터베이스 및 기타 구성 요소와 통신할 때 Azure 임시 오류 처리 지침을 따라야 합니다. 자세한 내용은 일시적 결함 처리를 위한 권장 사항을 참조하세요.

Notification Hubs는 PNS에 연결할 때 발생하는 일시적인 오류를 자동으로 처리합니다. 그러나 서비스 또는 사용자의 디바이스가 Notification Hubs와 상호 작용할 때 일시적인 오류를 처리해야 합니다. 등록 작업, 알림 보내기 작업 및 관리 작업 중에 일시적인 오류가 발생할 수 있습니다. 다음 지침을 따릅니다.

  • 등록 및 설치: 디바이스의 애플리케이션은 일시적인 오류로 인해 실패한 등록 및 설치 작업을 다시 시도해야 합니다. Microsoft 제공된 SDK는 재시도를 자동으로 처리합니다. 제공된 SDK를 사용할 수 없는 경우, 지수 백오프와 지터를 적용한 재시도 로직을 구현하고 등록 작업은 가능한 경우 멱등하게 만드세요.

    설치를 생성하거나 업데이트하는 작업은 멱등적이므로 안전하게 다시 시도할 수 있습니다. 가능하면 등록 대신 설치를 사용합니다.

  • 알림 송신 및 관리 작업: Microsoft 제공된 SDK를 사용하여 푸시 알림을 보내고 관리 작업을 수행합니다. 이러한 SDK는 일시적인 오류가 발생할 때 자동으로 다시 시도합니다.

    제공된 SDK를 사용할 수 없는 경우, 지수 백오프와 지터를 사용하는 재시도 로직을 구현하고 가능한 경우 알림 전송 작업을 멱등하게 만드세요.

가용성 영역 오류에 대한 복원력

가용성 영역은 Azure 지역 내에서 물리적으로 별도의 데이터 센터 그룹입니다. 한 영역이 실패하면 서비스가 나머지 영역 중 하나로 전환될 수 있습니다.

가용성 영역을 지원하는 지역에서 Notification Hubs 네임스페이스는 영역 중복 구성을 지원합니다. Notification Hubs는 일부 지역의 모든 네임스페이스에 대해 영역 중복을 자동으로 사용하도록 설정합니다. 영역 중복을 사용하도록 설정하면 Microsoft 지역의 모든 가용성 영역에 메타데이터와 등록 데이터를 모두 복제합니다.

한 지역에서 세 개의 가용성 영역을 사용하는 영역 중복 Notification Hubs 네임스페이스를 보여 주는 다이어그램.

Requirements

  • 지역 지원:

    Notification Hubs는 다음 지역의 모든 네임스페이스에 대해 영역 중복을 자동으로 사용하도록 설정합니다. 이러한 지역에서는 영역 중복을 사용하지 않도록 설정할 수 없습니다.

    Europe 중동 Africa Asia Pacific
    France Central Qatar Central 남아프리카 북부 중국 북부 3
    Italy North Korea Central
    Norway East
    Poland Central
    Sweden Central
    Switzerland North

    Notification Hubs를 지원하고가용성 영역이 있는 다른 지역에서는 영역 중복성이 선택 사항입니다. 네임스페이스를 만들 때만 사용하도록 설정할 수 있습니다.

  • 계층 지원: Notification Hubs의 모든 계층에서 가용성 영역을 사용할 수 있습니다.

Cost

영역 이중화에는 계층 가격 외에 추가 요금이 부과됩니다. 자세한 내용은 Notification Hubs 가격 책정을 참조하세요.

가용성 영역 지원 구성

  • 새 영역 중복 네임스페이스를 만듭니 다. 새 영역 중복 네임스페이스를 만드는 프로세스는 사용하는 지역에 따라 달라집니다.

    • Notification Hubs가 영역 중복을 자동으로 사용하도록 설정하는 지역에서는 구성할 필요가 없습니다.

      Important

      이러한 지역에서는 Notification Hubs가 Bicep 파일 또는 Azure Resource Manager 템플릿과 같은 코드 기반 배포에서 영역 중복을 사용하지 않도록 지정하더라도 항상 영역 중복이 활성화된 네임스페이스를 생성합니다.

      영역 중복 네임스페이스를 원하지 않는 경우 선택적 영역 중복을 지원하는 지역에 만듭니다.

    • 영역 중복이 선택 사항인 지역에서는 네임스페이스를 만들 때만 사용하도록 설정할 수 있습니다. 영역 중복을 사용하여 새 네임스페이스를 설정하는 방법을 알아보려면 Azure 포털에서 Azure 알림 허브 만들기를 참조하세요.

  • 기존 네임스페이스 영역을 중복으로 만듭니다. Notification Hubs는 기존 네임스페이스를 가용성 영역 지원으로의 현재 위치 마이그레이션을 지원하지 않습니다. 새 네임스페이스를 배포하고 등록을 해당 네임스페이스로 이동해야 합니다. Azure 지역 간에 리소스 이동의 지침을 따르며, 동일한 지역에 새 네임스페이스를 배포하는 경우에도 적용됩니다.

모든 영역이 정상인 경우의 동작

이 섹션에서는 영역 중복성을 위해 Notification Hubs 네임스페이스를 구성하고 모든 영역이 작동할 때 예상되는 사항에 대해 설명합니다.

  • 영역 간 작업: Notification Hubs는 지역의 모든 영역에서 인프라를 사용하여 요청을 자동으로 배포하고 제공합니다.

  • 영역 간 데이터 복제: 등록 데이터와 메타데이터는 모두 지정된 지역의 모든 영역에서 동기적으로 복제됩니다.

영역 오류 중 동작

이 섹션에서는 영역 중복을 위해 Notification Hubs 네임스페이스를 구성할 때 예상되는 작업과 영역 중 하나에 중단이 발생하는 경우 예상되는 사항에 대해 설명합니다.

  • 검색 및 응답: Microsoft 영역 오류를 검색하고 지역 내에서 장애 조치(failover)를 관리합니다. 장애 조치(failover)를 시작할 필요가 없습니다.
  • 통지: 영역이 다운된 경우 Microsoft는 자동으로 알리지 않습니다. 그러나 Azure Service Health 를 사용하여 영역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.
  • 활성 요청: 진행 중인 관리 작업, 디바이스 등록 및 알림 전송을 위한 새 요청은 장애 조치(failover) 중에 실패할 수 있습니다. 애플리케이션은 일시적인 오류 처리 지침에 따라 실패한 작업을 다시 시도해야 합니다.

  • 예상 데이터 손실: Notification Hubs는 가용성 영역 간에 네임스페이스 및 허브 구성 및 등록 데이터를 동기적으로 복제하므로 단일 영역 중단 중에는 데이터 손실이 예상되지 않습니다.

    이 복제는 백업이 아닙니다. 공유 책임 모델에서는 등록 및 설치 데이터를 백업할 책임이 있습니다. 자세한 내용은 백업 및 복원을 참조하세요.

  • 예상 가동 중지 시간: Microsoft 트래픽을 다시 라우팅하는 동안 간단한 서비스 중단이 가능합니다. 일시적인 오류 처리 지침에 따라 이러한 중단에 대한 애플리케이션을 준비합니다.

  • 재배포: 서비스는 요청을 정상 영역으로 자동으로 리디렉션합니다.

영역 복구

영향을 받는 영역이 복구되면 아무 작업도 수행할 필요가 없습니다. Microsoft 복구된 영역을 사용하도록 Notification Hubs 인프라를 복원하고 균형을 조정합니다.

영역 오류 테스트

Notification Hubs 영역 장애 조치를 직접 시작할 수 없습니다. 워크로드 동작을 테스트하려면 비프로덕션 환경에서 재시도, 멱등성 및 종속성 오류에 대한 복원력 테스트를 실행합니다. Azure Chaos Studio 사용하여 주변 애플리케이션 구성 요소를 테스트할 수도 있습니다.

지역 전체 오류에 대한 복원력

Notification Hubs는 지역 간에 네임스페이스 메타데이터를 복제하여 메타데이터 재해 복구를 제공하지만 디바이스 등록 데이터는 복제하지 않습니다. 이 기능을 사용하려면 지역 가동 중단 중에 수동 개입이 필요하며 알림 허브에 대한 가동 중지 시간이 발생합니다.

장애 조치(failover) 중에 가동 중지 시간 및 수동 개입을 줄여야 하는 경우 사용자 지정 다중 리전 솔루션을 사용하는 것이 좋습니다.

Microsoft 관리되는 메타데이터 지역 재해 복구

Notification Hubs는 보조 Azure 지역에 대한 Microsoft 관리되는 메타데이터 재해 복구를 지원합니다. 주 지역에 쌍을 이루는 지역이 있는 경우 쌍을 이루는 지역을 선택할 수 있습니다. 주 지역의 페어링 상태에 관계없이 유연한 복구 지역 목록에서 보조 지역을 선택할 수도 있습니다. 그런 다음 Notification Hubs는 네임스페이스 이름, 연결 문자열 및 기타 중요한 정보와 같은 네임스페이스 메타데이터를 복제합니다.

주 리전에서 보조 리전으로의 Notification Hubs 메타데이터 재해 복구를 보여주는 다이어그램

Important

메타데이터 지역 재해 복구는 등록 데이터를 복제하지 않습니다. 재해 복구 시나리오가 트리거되면 등록 및 설치 데이터가 손실될 수 있습니다. 복구 후 허브에서 등록 데이터를 다시 채워 주는 솔루션을 구현해야 합니다.

Microsoft 재해를 선언하고 장애 조치(failover)를 시작하는 역할을 담당합니다. 이 경우 Microsoft 보조 지역에 새 네임스페이스를 만듭니다. 주 지역의 메타데이터를 사용하므로 애플리케이션은 기존 네임스페이스 이름, 연결 문자열 및 허브 이름을 사용하여 해당 네임스페이스에 연결할 수 있습니다.

주 Notification Hubs 지역에서 보조 지역으로의 장애 조치(failover)를 보여 주는 다이어그램.

Requirements

  • 지역 지원: 쌍을 이루는 Azure 지역에서 네임스페이스는 Azure 쌍을 이루는 지역을 보조 지역으로 사용할 수 있습니다.

    네임스페이스가 복구되지 않은 지역에 있거나 다른 지역에 데이터를 복제하려는 경우 다음 유연한 복구 지역 중 하나를 보조 지역으로 선택할 수 있습니다.

    Americas Europe Africa Asia Pacific
    Brazil South North Europe 남아프리카 북부 Australia East
    미국 서부 2 Southeast Asia
  • 계층 지원: 메타데이터 재해 복구 옵션은 모든 Notification Hubs 계층에서 사용할 수 있습니다.

Cost

Notification Hubs는 메타데이터 지역 재해 복구를 구성하거나 사용하기 위해 추가 요금을 부과하지 않습니다. 그러나 메타데이터를 복제하는 데 사용되는 지역 간 대역폭에 대한 비용을 지불합니다. 가격 책정 세부 정보는 대역폭 가격 책정 및 Notification Hubs 가격을 참조하세요.

다중 리전 지원 구성

모든 지역이 정상인 경우의 동작

이 섹션에서는 메타데이터 지역 재해 복구를 위해 Notification Hubs 네임스페이스를 구성할 때 예상되는 작업을 설명하며 주 지역과 보조 지역이 모두 작동합니다.

  • 지역 간 작업: 주 지역은 모든 요청을 제공합니다. 장애 조치(failover)가 발생하지 않는 한 보조 지역은 요청을 제공하지 않습니다.

  • 지역 간 데이터 복제: 네임스페이스 이름, 허브 구성, 연결 문자열 및 기타 중요한 정보와 같은 메타데이터는 지역 간에 비동기적으로 복제됩니다. 등록 데이터는 복제되지 않습니다. 백업을 유지 관리하기 위해 정기적으로 내보낼 책임이 있습니다.

지역 오류 중 동작

이 섹션에서는 메타데이터 지역 재해 복구를 위해 Notification Hubs 네임스페이스를 구성할 때 예상되는 작업과 주 지역에 중단이 발생하는 상황에 대해 설명합니다.

  • 검색 및 응답: Microsoft 지역 오류를 검색하고 구성된 보조 지역으로 장애 조치(failover)를 트리거할지 여부를 결정합니다.
  • 알림: Microsoft는 지역이 다운된 경우 자동으로 알리지 않습니다. 그러나 Azure Service Health 를 사용하여 지역 오류를 포함하여 서비스의 전반적인 상태를 파악할 수 있으며, 문제를 알리도록 Service Health 경고를 설정할 수 있습니다.
  • 활성 요청: 지역이 오프라인 상태가 되면 기본 지역의 네임스페이스에 대한 진행 중인 요청이 실패할 수 있습니다. 클라이언트는 장애 조치(failover)가 완료된 후 작업을 다시 시도해야 합니다.

  • 예상 데이터 손실: 메타데이터는 유지됩니다. 등록 데이터는 자동으로 백업되지 않지만 직접 백업할 수 있습니다. 자세한 내용은 Azure 알림 허브 등록 내보내기 및 가져오기를 대량으로 참조하세요. 그렇지 않으면 주 지역이 복구될 때까지 등록 데이터를 사용할 수 없습니다.

  • 예상 가동 중지 시간: Microsoft에서 메타데이터의 장애 조치를 시작한 후 해당 장애 조치가 완료되기까지는 다소 시간이 걸립니다. 시간은 다를 수 있지만 일반적으로 몇 시간이 걸립니다.

    장애 조치(failover)가 완료되면 등록 데이터의 백업을 복원해야 합니다.

  • 재배포: 장애 조치(failover) 후 요청은 주 지역에서 복제된 데이터를 사용하는 보조 지역의 네임스페이스로 라우팅됩니다. 장애 조치(failover)가 완료되면 클라이언트는 보조 지역의 네임스페이스에 자동으로 연결됩니다.

지역 복구

주 지역이 복구되면 주 지역의 주 네임스페이스로 장애 복구할 수 있습니다. 주 네임스페이스는 가동 중단 이전의 등록 데이터를 유지합니다. 이는 수동 프로세스이며 Microsoft 사용자와 통신하여 작동 방식을 설명합니다.

주 지역이 복구되면 다음을 수행해야 합니다.

  • 네임스페이스 및 해당 데이터의 상태를 확인합니다.
  • 보조 지역의 최근 등록 데이터 변경 내용을 주 지역으로 다시 동기화할지 여부를 결정합니다.

지역 오류 테스트

지역 장애 조치(failover)를 시작할 수 없습니다. 그러나 고유한 재해 복구 절차를 테스트해야 합니다. 등록이 백업되고 새 네임스페이스로 복원할 수 있는지 확인합니다.

회복력을 위한 사용자 지정 다중 리전 솔루션

Microsoft 관리되는 메타데이터 지역 재해 복구는 메타데이터만 복제합니다. 이 기능은 해당 메타데이터를 보조 네임스페이스로 복구할 수 있지만 애플리케이션이 계속 작동할 수 있도록 디바이스 등록을 해당 네임스페이스로 가져올 책임이 있습니다. 이 방법을 사용하려면 재해 중에 수동 개입이 필요하며 가동 중지 시간이 수반됩니다.

복구 목표에 더 짧은 다운타임이나 더 적은 수동 개입이 필요한 경우, 사용자 지정 액티브-액티브 다중 리전 솔루션을 구현할 수 있습니다. 미리 다른 Azure 지역에 두 번째 Notification Hubs 네임스페이스를 배포합니다.

비고

이 섹션에서는 이러한 유형의 솔루션을 디자인하기 위한 기본 지침을 제공합니다. 솔루션 설계, 구현, 테스트, 배포, 장애 조치(failover) 및 관리를 담당합니다.

  • 장애 조치(failover): 두 번째 네임스페이스는 작업 리소스이므로 지역 오류를 감지하고 해당 네임스페이스로 전환하는 논리를 구현할 수 있습니다.

  • 동기화: 두 번째 알림 허브를 기본 알림 허브와 동기화 상태로 유지하려면 다음 옵션 중 하나를 사용합니다.

    또는 백 엔드가 없는 경우 대상 디바이스에서 앱이 시작될 때 두 허브에 설치를 만들도록 앱을 구성합니다. 디바이스는 두 알림 허브에서 새 등록을 만듭니다. 결국 보조 알림 허브에는 모든 활성 디바이스가 등록됩니다.

  • 만료된 등록 및 설치: 보조 알림 허브에 등록 및 설치가 만료되었을 수 있습니다. 만료된 핸들에 푸시가 수행되면 Notification Hubs는 PNS 서버에서 받은 응답에 따라 알림 허브에서 연결된 등록 또는 설치 레코드를 자동으로 정리합니다. 각 보내기에서 피드백을 처리하고 만료된 등록 및 설치를 제거하는 사용자 지정 논리를 추가하여 선택한 백업 솔루션에서 만료된 레코드를 정리할 수 있습니다.

  • 개봉되지 않은 앱: 미개봉 앱이 있는 디바이스가 알림을 받지 못하는 기간이 있습니다.

  • 비용: 사용자 고유의 보조 허브를 사용하여 등록 데이터를 보호하는 경우 해당 허브는 일반 서비스 요금이 발생합니다. 마찬가지로 복구를 지원하기 위해 다른 Azure 리소스를 보조 지역에 배포하는 경우 일반 서비스 요금에 대한 요금을 지불합니다.

백업 및 복원

Notification Hubs는 네임스페이스에 저장된 모든 데이터에 대해 단일 기본 제공 백업 및 복원 기능을 제공하지 않습니다. 다음 방법을 결합해야 합니다.

내보낸 등록 집합은 실수로 삭제되거나 원치 않는 변경이 발생한 후 복구 지점을 제공합니다. IaC는 리소스 구성을 유지하지만 디바이스 등록 데이터는 유지하지 않습니다. 중복 및 백업의 다양한 역할에 대한 자세한 내용은 중복성, 복제 및 백업을 참조하세요.

서비스 유지 관리에 대한 복원력

Microsoft는 정기적으로 서비스 업데이트를 적용하고 다른 유지 관리를 수행합니다. Azure 플랫폼은 이러한 활동을 자동으로 처리하여 유지 관리가 원활하고 투명하도록 합니다. Azure Service Health 계획된 유지 관리를 통해 조언을 받지 않는 한 유지 관리 이벤트 중에 가동 중지 시간이 예상되지 않습니다.

서비스 수준 약정

Azure 서비스에 대한 SLA(서비스 수준 계약)는 각 서비스의 예상 가용성과 솔루션이 가용성 기대치를 달성하기 위해 충족해야 하는 조건을 설명합니다. 자세한 내용은 온라인 서비스에 대한 SLA를 참조하세요.

Notification Hubs의 경우 가용성 SLA는 기본 및 표준 계층을 사용하는 네임스페이스에 적용됩니다.