Azure Relay란?
Azure Relay 서비스를 사용하면 회사 네트워크에서 실행되는 서비스를 퍼블릭 클라우드에 안전하게 노출할 수 있습니다. 방화벽에서 포트를 열거나 회사 네트워크 인프라를 방해적으로 변경하지 않고도 이 작업을 수행할 수 있습니다.
릴레이 서비스는 클라우드 또는 다른 온-프레미스 환경에서 실행되는 온-프레미스 서비스와 애플리케이션 간에 다음 시나리오를 지원합니다.
- 기존의 단방향 요청/응답 및 피어 투 피어 통신
- 게시/구독 시나리오를 사용하도록 설정하기 위한 인터넷 범위의 이벤트 배포
- 네트워크 경계를 넘어 양방향 및 버퍼되지 않은 소켓 통신
Azure Relay는 VPN과 같은 네트워크 수준의 통합 기술과 다릅니다. Azure 릴레이는 단일 머신의 단일 애플리케이션 엔드포인트로 범위를 지정할 수 있습니다. VPN 기술은 네트워크 환경 변경에 의존하기 때문에 훨씬 더 방해가 됩니다.
기본 흐름
릴레이된 데이터 전송 패턴에서 관련된 기본 단계는 다음과 같습니다.
- 온-프레미스 서비스는 아웃바운드 포트를 통해 릴레이 서비스에 연결합니다.
- 특정 주소에 연결된 통신을 위한 양방향 소켓을 만듭니다.
- 그런 다음 클라이언트는 해당 주소를 대상으로 하는 릴레이 서비스로 트래픽을 전송하여 온-프레미스 서비스와 통신할 수 있습니다.
- 그런 다음 , 릴레이 서비스는 클라이언트 전용 양방향 소켓을 통해 온-프레미스 서비스에 데이터를 릴레이 합니다. 클라이언트는 온-프레미스 서비스에 직접 연결할 필요가 없습니다. 즉 서비스의 위치를 인식할 필요가 없습니다. 또한 온-프레미스 서비스는 방화벽에서 열린 인바운드 포트가 필요하지 않습니다.
기능
Azure Relay에는 다음 두 가지 기능이 있습니다.
- 하이브리드 커넥트 - 다중 플랫폼 시나리오를 사용하도록 설정하는 개방형 표준 웹 소켓을 사용합니다.
- WCF 릴레이 - WCF(Windows Communication Foundation)를 사용하여 원격 프로시저 호출을 사용하도록 설정합니다. WCF Relay는 많은 고객이 이미 WCF 프로그래밍 모델에서 사용하는 레거시 릴레이 제품입니다.
하이브리드 연결
Azure Relay의 하이브리드 커넥트 기능은 이전에 존재했던 Relay 기능의 안전하고 개방형 프로토콜 진화입니다. 모든 플랫폼에서 모든 언어로 사용할 수 있습니다. Azure Relay의 하이브리드 커넥트 기능은 HTTP 및 WebSockets 프로토콜을 기반으로 합니다. 웹 소켓 또는 HTTP(S)를 통해 요청을 보내고 응답을 받을 수 있습니다. 이 기능은 일반적인 웹 브라우저에서 WebSocket API와 호환됩니다.
하이브리드 커넥트ion 프로토콜에 대한 자세한 내용은 하이브리드 커넥트ion 프로토콜 가이드를 참조하세요. 모든 런타임/언어에 대한 모든 웹 소켓 라이브러리에서 하이브리드 커넥트이온을 사용할 수 있습니다.
참고 항목
Azure Relay의 하이브리드 커넥트은 BizTalk Services의 이전 하이브리드 커넥트ions 기능을 대체합니다. BizTalk Services의 하이브리드 커넥트 기능은 Azure Service Bus WCF 릴레이를 기반으로 합니다. Azure Relay의 하이브리드 연결 기능은 기존 WCF Relay 기능을 보완합니다. 이러한 두 서비스 기능(WCF Relay 및 하이브리드 커넥트)은 Azure Relay 서비스에 나란히 존재합니다. 일반적인 게이트웨이를 공유하지만 구현 방식은 서로 다릅니다.
Azure Relay에서 하이브리드 커넥트 사용을 시작하려면 다음 빠른 시작을 참조하세요.
- 하이브리드 커넥트ions - .NET WebSockets
- 하이브리드 커넥트 - Node WebSockets
- 하이브리드 커넥트온 - .NET HTTP
- 하이브리드 커넥트온 - 노드 HTTP
- 하이브리드 커넥트온 - Java HTTP
자세한 샘플은 GitHub의 Azure Relay - 하이브리드 커넥트ions 샘플을 참조하세요.
WCF 릴레이
WCF Relay는 전체 .NET Framework 및 WCF에서 작동합니다. WCF "릴레이" 바인딩 제품군을 사용하여 온-프레미스 서비스와 릴레이 서비스 간에 연결을 만듭니다. 릴레이 바인딩은 클라우드의 Service Bus와 통합되는 WCF 채널 구성 요소를 만들도록 설계된 새로운 전송 바인딩 요소에 매핑됩니다.
WCF Relay 사용을 시작하려면 다음 빠른 시작을 참조하세요.
- 클라우드의 웹앱에 온-프레미스 WCF 서비스 노출
- 네트워크 외부의 WCF 클라이언트에 온-프레미스 WCF 서비스 노출
- 네트워크 외부의 클라이언트에 온-프레미스 WCF REST 서비스 노출
자세한 샘플은 GitHub의 Azure Relay - WCF Relay 샘플을 참조 하세요.
하이브리드 커넥트온과 WCF 릴레이 비교
하이브리드 커넥트 및 WCF 릴레이는 둘 다 회사 네트워크 내에 있는 자산에 대한 보안 연결을 가능하게 합니다. 다른 용도는 다음 표에 설명된 대로 특정 요구 사항에 따라 달라집니다.
WCF 릴레이 | 하이브리드 연결 | |
---|---|---|
WCF | x | |
.NET Core | x | |
.NET Framework | x | x |
JavaScript/Node.js | x | |
표준 기반 개방형 프로토콜 | x | |
RPC 프로그래밍 모델 | x |
아키텍처: 들어오는 릴레이 요청 처리
다음 다이어그램에서는 송신 및 수신 클라이언트가 모두 회사 네트워크 외부에 있을 때 들어오는 릴레이 요청이 Azure Relay 서비스에서 처리되는 방법을 보여 줍니다.
- 수신 클라이언트에서 Azure Relay 서비스에 수신 요청을 보냅니다. Azure Load Balancer에서 이 요청을 게이트웨이 노드 중 하나로 라우팅합니다.
- Azure Relay 서비스에서 게이트웨이 저장소에 릴레이를 만듭니다.
- 송신 클라이언트에서 수신 서비스에 연결하라는 요청을 보냅니다.
- 요청을 수신한 게이트웨이에서 게이트웨이 저장소에 있는 릴레이를 조회합니다.
- 게이트웨이에서 연결 요청을 게이트웨이 저장소에 언급된 올바른 게이트웨이로 전달합니다.
- 게이트웨이에서 송신 클라이언트에 가장 가까운 게이트웨이 노드에 대한 임시 채널을 만들도록 요구하는 요청을 수신 클라이언트에 보냅니다.
- 수신 클라이언트는 송신 클라이언트에서 가장 가까운 게이트웨이에 대한 임시 채널을 만듭니다. 이제 게이트웨이를 통해 클라이언트 간의 연결이 수립되었으므로 클라이언트가 서로 메시지를 교환할 수 있습니다.
- 게이트웨이는 메시지를 송신 클라이언트에서 수신 대기 클라이언트로 전달합니다.
- 게이트웨이는 메시지를 송신 클라이언트에서 수신 대기 클라이언트로 전달합니다.
다음 단계
다음 빠른 시작 중 하나 이상을 따르거나 GitHub에서 Azure Relay 샘플을 참조하세요.
- 하이브리드 커넥트ions
- WCF 릴레이
질문과 대답 목록은 Relay FAQ를 참조 하세요.