Azure Web PubSub의 지역에서 복제

중요 업무용 앱에는 강력한 장애 조치(failover) 시스템이 있어야 하고 사용자를 현재 상태에 가깝게 유지할 수 있어야 합니다. 지역 복제 기능이 릴리스되기 전에 개발자는 여러 Web PubSub 리소스를 배포하고 리소스 간 통신을 오케스트레이션하는 사용자 지정 코드를 작성해야 했습니다. 이제 Azure Portal을 통한 빠른 구성을 사용해서 이 기능을 쉽게 사용하도록 설정할 수 있습니다.

지역 복제 사용의 이점

  • 지역 가동 중단에 대한 복원력 향상: 지역 가동 중단이 발생하면 클라이언트가 자동으로 정상 복제본으로 라우팅됩니다.
  • 지역 간 통신: 개발자는 백그라운드에서 두 개 이상의 리소스가 있더라도 평소와 같이 지역 복제 지원 리소스를 사용합니다. 복제본 간 통신은 이 서비스를 통해 처리됩니다.
  • 향상된 네트워크 속도: 지리적으로 분산된 클라이언트는 가장 가까운 복제본에 연결됩니다. 이러한 복제본은 Azure 글로벌 네트워크 백본을 통해 통신하여 빠르고 안정적인 네트워킹을 보장합니다.
  • 편리한 관리. 모든 복제본은 기본 Web PubSub 리소스의 구성을 공유합니다.

필수 조건

사용 사례

Contoso, 소셜 미디어 회사

Contoso는 고객 기반이 미국과 캐나다에 분포되어 있는 소셜 미디어 회사입니다. Contoso는 사용자들이 서로 연결할 수 있도록 모바일 및 웹앱을 제공합니다. Contoso 애플리케이션은 미국 중부에 배포됩니다. Contoso 아키텍처의 일부로 Web PubSub은 클라이언트 앱과 애플리케이션 서버 간에 영구 WebSocket 연결을 설정하는 데 사용됩니다. Contoso는 Web PubSub에 대한 WebSocket 연결 관리 작업을 오프로드할 수 있다는 사실에 만족해하지만 대기 시간이 더 긴 캐나다의 사용자에 대한 보고서를 읽는 것은 만족스럽게 생각하지 않습니다. 또한 Contoso의 개발 팀은 지역 중단이 발생했을 때 사용자가 중단 없이 앱에 액세스할 수 있도록 보장하려고 합니다.

Diagram of using one Azure WebPubSub instance to handle traffic from two countries.

Contoso는 캐나다의 사용자와 지리적으로 더 가까운 다른 Web PubSub 리소스를 캐나다 중부에 설정할 수 있습니다. 그러나 여러 Web PubSub 리소스를 관리하면 다음과 같은 몇 가지 해결 과제가 발생합니다.

  1. 캐나다와 미국의 사용자가 서로 상호 작용할 수 있도록 지역 간 통신 메커니즘을 구현해야 합니다.
  2. 개발 팀은 각각 고유한 도메인 및 연결 문자열이 있는 두 개의 별도 Web PubSub 리소스를 관리해야 합니다.
  3. 지역 가동 중단이 발생하는 경우 트래픽을 사용 가능한 리소스로 전달해야 합니다.

위의 모든 문제는 제품 혁신을 계획할 때 엔지니어링 리소스에 초점을 두지 못하게 합니다.

Diagram of using two Azure Web PubSub instances to handle traffic from two countries.

지역 복제 기능 활용

Contoso는 지리적 복제 기능을 통해 캐나다 중부에 복제본을 설정하여 위에서 언급한 문제를 효과적으로 극복할 수 있습니다. 개발자 팀은 코드를 변경할 필요가 없다는 사실을 알게 되어 만족스럽게 생각합니다. 이 작업은 Azure Portal에서 단추 몇 개를 클릭하는 것만큼 쉽습니다. 개발자 팀은 Contoso가 유럽 시장에 진입할 계획이므로 유럽에서 다른 복제본을 추가하기만 하면 된다는 사실을 이해 관계자와 공유하게 되어 기쁘게 생각합니다.

Diagram of using one Azure Web PubSub instance with replica to handle traffic from two countries.

Web PubSub 리소스에서 지역에서 복제를 사용하도록 설정하는 방법

Azure 지역에서 복제본을 만들려면 Web PubSub 리소스로 이동한 후 Azure Portal에서 복제본 블레이드를 찾고 추가를 클릭하여 복제본을 만듭니다.

Screenshot of creating replica for Azure Web PubSub on Portal.

만든 후에는 복제본 이름을 클릭하여 포털에서 복제본을 보거나 편집할 수 있습니다.

Screenshot of overview blade of Azure Web PubSub replica resource.

가격 책정 및 리소스 단위

각 복제본에는 고유한unitautoscale settings가 있습니다.

복제본은 Azure Web PubSub 서비스의 프리미엄 계층 기능입니다. 각 복제본은 자체 단위 및 아웃바운드 트래픽에 따라 별도로 비용이 청구됩니다. 무료 메시지 할당량도 별도로 계산됩니다.

앞의 예제에서 Contoso는 캐나다 중부에 하나의 복제본을 추가했습니다. Contoso는 프리미엄 가격의 단위 및 메시지에 따라 캐나다 중부의 복제본에 대한 비용을 지불합니다.

지역 간 아웃바운드 트래픽에 대해 송신 요금이 발생하게 될 것입니다. 메시지가 복제본 간에 전송되고 전송 후 클라이언트 또는 서버로 성공적으로 전송되는 경우 아웃바운드 메시지로서 요금이 청구됩니다.

복제본 삭제

Web PubSub 리소스에 대한 복제본을 만든 후에는 더 이상 필요하지 않은 경우 언제든지 삭제할 수 있습니다.

Azure Portal에서 복제본을 삭제하려면 다음을 수행합니다.

  1. Web PubSub 리소스로 이동하고 복제본 블레이드를 선택합니다. 삭제할 복제본을 클릭합니다.
  2. 복제본 개요 블레이드에서 삭제 단추를 클릭합니다.

Azure CLI를 사용하여 복제본을 삭제하려면 다음을 수행합니다.

 az webpubsub replica delete --replica-name MyReplica --name MyWebPubSub -g MyResourceGroup

지역에서 복제 기능의 작동 방식 이해

Diagram of the arch of Azure Web PubSub replica.

  1. 클라이언트는 Web PubSub 서비스의 FQDN(정규화된 도메인 이름) contoso.webpubsub.azure.com을 확인합니다. 이 FQDN은 Traffic Manager를 가리키며, 결과적으로 가장 가까운 지역 Web PubSub 인스턴스의 CNAME(정식 이름)이 반환됩니다.
  2. 이 CNAME을 사용하여 클라이언트는 지역 인스턴스(복제본)에 대한 websocket 연결을 설정합니다.
  3. 두 복제본은 데이터를 서로 동기화합니다. 한 복제본으로 전송된 메시지는 필요한 경우 다른 복제본으로 전송됩니다.
  4. 복제본이 TM(Traffic Manager)에서 수행하는 상태 검사에 실패하는 경우 TM은 실패한 인스턴스의 엔드포인트를 도메인 확인 결과에서 제외합니다. 자세한 내용은 아래의 복원력 및 재해 복구를 참조하세요.

참고 항목

  • 데이터 평면에서 기본 Azure Web PubSub 리소스는 복제본과 동일하게 작동합니다.

복원력 및 재해 복구

Azure Web PubSub 서비스는 복제본에 대한 상태 검사 및 DNS 확인을 위해 Traffic Manager를 활용합니다. 정상적인 상황에서는 모든 복제본이 제대로 작동하면 클라이언트가 가장 가까운 복제본으로 전송합니다. 예를 들면 다음과 같습니다.

  • eastus에 가까운 클라이언트는 eastus에 있는 복제본으로 전송합니다.
  • 마찬가지로 westus에 가까운 클라이언트는 westus의 복제본으로 전송합니다.

미국 동부에서 지역 가동 중단이 발생하는 경우(아래 그림 참조) Traffic Manager는 해당 지역의 상태 검사 실패를 검색합니다. 그런 다음, 이 결함이 있는 복제본의 DNS가 Traffic Manager의 DNS 확인 결과에서 제외됩니다. 90초로 설정된 DNS TTL(Time-to-Live) 기간이 지나면 eastus의 클라이언트가 westus의 복제본에 연결하도록 리디렉션됩니다.

Diagram of Azure Web PubSub replica failover.

eastus의 문제가 해결되고 지역이 다시 온라인 상태가 되면 상태 검사가 성공합니다. 그러면 eastus의 클라이언트가 다시 한 번 해당 지역의 복제본으로 전송합니다. 연결된 클라이언트는 기존 연결을 닫을 때까지 영향을 받지 않으므로 이 전환은 원활하게 진행됩니다.

Diagram of Azure Web PubSub replica failover recovery.

이 장애 조치(failover) 및 복구 프로세스는 자동이며 수동 개입이 필요하지 않습니다.

복제본 엔드포인트 사용 안 함 또는 사용

복제본을 설정할 때 해당 엔드포인트를 사용하거나 사용하지 않도록 설정하는 옵션이 있습니다. 이 기능을 사용하지 않도록 설정하면 기본 FQDN의 DNS 확인에 복제본이 포함되지 않으므로 트래픽이 해당 복제본으로 전달되지 않습니다.

Diagram of Azure Web PubSub replica endpoint setting.

엔드포인트를 만든 후 사용하지 않도록 설정할 수도 있습니다. 주 리소스의 복제본 블레이드에서 복제본의 오른쪽에 있는 줄임표 단추를 클릭하고 엔드포인트 사용 또는 엔드포인트 사용 안 함을 선택합니다.

Diagram of Azure Web PubSub replica endpoint modification.

복제를 삭제하기 전에 먼저 엔드포인트를 사용하지 않도록 설정하는 것이 좋습니다. 시간이 지남에 따라 기존 연결이 끊어집니다. 새 연결이 설정되지 않으면 복제가 마침내 유휴 상태가 됩니다. 이렇게 하면 원활한 삭제 프로세스가 보장됩니다.

이 기능은 지역 문제를 해결하는 데에도 유용합니다.

참고 항목

  • DNS 캐시로 인해 DNS 업데이트가 적용되는 데 몇 분 정도 걸릴 수 있습니다.
  • 기존 연결은 연결을 끊을 때까지 영향을 받지 않습니다.

지역에서 복제 기능을 사용하도록 설정한 후 성능에 미치는 영향

복제본을 사용하도록 설정하면 클라이언트는 지리적 위치에 따라 자연스럽게 배포됩니다. Web PubSub은 이러한 복제본 간에 데이터를 동기화하는 책임을 맡지만, 가장 일반적인 사용 사례에 대해 서버 로드의 관련 오버헤드가 최소화된다는 사실을 알고 만족스러워할 것입니다.

특히 애플리케이션이 일반적으로 더 큰 그룹(크기 > 10) 또는 단일 연결로 브로드캐스트하는 경우 동기화의 성능 영향은 거의 눈에 띄지 않습니다. 소규모 그룹(크기 < 10)을 메시징하는 경우 동기화 오버헤드가 약간 더 발생할 수 있습니다.

효과적인 장애 조치 관리를 보장하려면 모든 트래픽을 처리하도록 각 복제본의 단위 크기를 설정하는 것이 좋습니다. 또는 자동 스케일링을 사용하도록 설정하여 이 작업을 관리할 수 있습니다.

성능 평가에 대한 자세한 내용은 성능을 참조하세요.