Azure의 가상 머신에서 애플리케이션 연결 문제 해결

Azure VM(가상 머신)에서 실행되는 애플리케이션을 시작하거나 연결할 수 없는 다양한 이유가 있습니다. 그 이유는 애플리케이션이 예상 포트에서 실행되거나 수신 대기하지 않거나, 수신 대기 포트가 차단되었거나, 트래픽을 애플리케이션에 올바르게 전달하지 않는 네트워킹 규칙 등이 있습니다. 이 문서에서는 문제를 찾아서 해결하기 위한 체계적인 접근 방식을 설명합니다.

RDP 또는 SSH를 사용하여 VM에 연결하는 데 문제가 있는 경우 먼저 다음 문서 중 하나를 참조하세요.

이 문서의 어느 시점에서든 도움이 필요한 경우 MSDN Azure 및 Stack Overflow 포럼의 Azure 전문가에게 문의할 수 있습니다. 또는 Azure 지원 인시던트를 제출할 수도 있습니다. Azure 지원 사이트로 이동하여 지원 받기를 선택합니다.

빠른 시작 문제 해결 단계

애플리케이션에 연결하는 데 문제가 있는 경우 다음 일반적인 문제 해결 단계를 시도해 보세요. 각 단계 후에 애플리케이션에 다시 연결해 보세요.

자세한 내용은 엔드포인트 연결 문제 해결(RDP/SSH/HTTP 등 오류)을 참조하세요.

자세한 문제 해결 개요

Azure 가상 머신에서 실행되는 애플리케이션의 액세스 문제를 해결하는 네 가지 기본 영역이 있습니다.

다이어그램은 두 클라이언트 디바이스가 각각 인터넷 및 VPN을 통해 VM의 애플리케이션에 연결되어 있음을 보여줍니다. 액세스 문제를 해결하기 위한 4개 기본 영역이 강조 표시되어 있습니다.

  1. Azure 가상 머신에서 실행되는 애플리케이션입니다.
    • 애플리케이션 자체가 올바르게 실행되고 있나요?
  2. Azure 가상 머신.
    • VM 자체가 올바르게 실행되고 요청에 응답하고 있나요?
  3. Azure 네트워크 엔드포인트.
    • 클래식 배포 모델의 가상 머신에 대한 클라우드 서비스 엔드포인트입니다.
    • Resource Manager 배포 모델의 가상 머신에 대한 네트워크 보안 그룹 및 인바운드 NAT 규칙입니다.
    • 트래픽이 예상 포트에서 사용자에서 VM/애플리케이션으로 흐를 수 있나요?
  4. 인터넷 에지 디바이스.
    • 방화벽 규칙이 시행되어 트래픽이 올바르게 흐르지 않도록 방지하고 있나요?

사이트 대 사이트 VPN 또는 ExpressRoute 연결을 통해 애플리케이션에 액세스하는 클라이언트 컴퓨터의 경우 문제를 일으킬 수 있는 기본 영역은 애플리케이션 및 Azure 가상 머신입니다.

문제의 원인을 확인하고 수정하려면 다음 단계를 수행합니다.

1단계: 대상 VM에서 애플리케이션 액세스

실행 중인 VM에서 적절한 클라이언트 프로그램을 사용하여 애플리케이션에 액세스합니다. 로컬 호스트 이름, 로컬 IP 주소 또는 루프백 주소(127.0.0.1)를 사용합니다.

Azure VNet의 V M에서 직접 애플리케이션에 액세스하는 다이어그램

예를 들어 애플리케이션이 웹 서버인 경우 VM에서 브라우저를 열고 VM에서 호스트되는 웹 페이지에 액세스하려고 합니다.

애플리케이션에 액세스할 수 있는 경우 2단계로 이동합니다.

애플리케이션에 액세스할 수 없는 경우 다음 설정을 확인합니다.

  • 애플리케이션이 대상 가상 머신에서 실행되고 있습니다.
  • 애플리케이션이 예상된 TCP 및 UDP 포트에서 수신 대기하고 있습니다.

Windows 및 Linux 기반 가상 머신 모두에서 netstat -a 명령을 사용하여 활성 수신 대기 포트를 표시합니다. 애플리케이션이 수신 대기해야 하는 예상 포트에 대한 출력을 검사합니다. 애플리케이션을 다시 시작하거나 필요에 따라 필요한 포트를 사용하도록 구성하고 애플리케이션에 로컬로 다시 액세스합니다.

2단계: 동일한 가상 네트워크의 다른 VM에서 애플리케이션 액세스

VM의 호스트 이름 또는 Azure 할당 공용, 프라이빗 또는 공급자 IP 주소를 사용하여 다른 VM에서 동일한 가상 네트워크에서 애플리케이션에 액세스해 보세요. 클래식 배포 모델을 사용하여 만든 가상 머신의 경우 클라우드 서비스의 공용 IP 주소를 사용하지 마세요.

Azure VNet의 동일한 가상 네트워크에 있는 다른 VM에서 직접 애플리케이션에 액세스하는 다이어그램

예를 들어 애플리케이션이 웹 서버인 경우 동일한 가상 네트워크의 다른 VM에 있는 브라우저에서 웹 페이지에 액세스하려고 합니다.

애플리케이션에 액세스할 수 있는 경우 3단계로 이동합니다.

애플리케이션에 액세스할 수 없는 경우 다음 설정을 확인합니다.

  • 대상 VM의 호스트 방화벽은 인바운드 요청 및 아웃바운드 응답 트래픽을 허용합니다.
  • 대상 VM에서 실행되는 침입 검색 또는 네트워크 모니터링 소프트웨어는 트래픽을 허용합니다.
  • Cloud Services 엔드포인트 또는 네트워크 보안 그룹은 트래픽을 허용합니다.
  • 부하 분산 장치 또는 방화벽과 같이 테스트 VM과 VM 사이의 경로에서 VM에서 실행되는 별도의 구성 요소가 트래픽을 허용합니다.

Windows 기반 가상 머신에서 고급 보안이 포함된 Windows 방화벽을 사용하여 방화벽 규칙이 애플리케이션의 인바운드 및 아웃바운드 트래픽을 제외하는지 여부를 확인합니다.

3단계: 가상 네트워크 외부에서 애플리케이션 액세스

애플리케이션이 실행 중인 VM으로 가상 네트워크 외부의 컴퓨터에서 애플리케이션에 액세스해 봅니다. 다른 네트워크를 원래 클라이언트 컴퓨터로 사용합니다.

가상 네트워크 외부의 컴퓨터에서 애플리케이션에 액세스하는 다이어그램

예를 들어 애플리케이션이 웹 서버인 경우 가상 네트워크에 없는 컴퓨터에서 실행되는 브라우저에서 웹 페이지에 액세스합니다.

애플리케이션에 액세스할 수 없는 경우 다음 설정을 확인합니다.

  • 클래식 배포 모델을 사용하여 만든 VM의 경우:

    • VM에 대한 엔드포인트 구성에서 들어오는 트래픽, 특히 프로토콜(TCP 또는 UDP) 및 공용 및 프라이빗 포트 번호를 허용하는지 확인합니다.
    • 엔드포인트의 ACL(액세스 제어 목록)이 인터넷에서 들어오는 트래픽을 방지하지 않는지 확인합니다.
    • 자세한 내용은 가상 머신에 엔드포인트를 설정하는 방법을 참조하세요.
  • Resource Manager 배포 모델을 사용하여 만든 VM의 경우:

    • VM에 대한 인바운드 NAT 규칙 구성이 들어오는 트래픽, 특히 프로토콜(TCP 또는 UDP) 및 공용 및 프라이빗 포트 번호를 허용하는지 확인합니다.
    • 네트워크 보안 그룹이 인바운드 요청 및 아웃바운드 응답 트래픽을 허용하는지 확인합니다.
    • 자세한 내용은 네트워크 보안 그룹이란?을 참조하세요.

가상 머신 또는 엔드포인트가 부하 분산 집합의 멤버인 경우:

  • 프로브 프로토콜(TCP 또는 UDP) 및 포트 번호가 올바른지 확인합니다.
  • 프로브 프로토콜 및 포트가 부하 분산된 집합 프로토콜 및 포트와 다른 경우:
    • 애플리케이션이 프로브 프로토콜(TCP 또는 UDP) 및 포트 번호(대상 VM에서 netstat –a 사용)에서 수신 대기하고 있는지 확인합니다.
    • 대상 VM의 호스트 방화벽이 인바운드 프로브 요청 및 아웃바운드 프로브 응답 트래픽을 허용하는지 확인합니다.

애플리케이션에 액세스할 수 있는 경우 인터넷 에지 디바이스에서 다음을 허용하는지 확인합니다.

  • 아웃바운드 애플리케이션은 클라이언트 컴퓨터에서 Azure 가상 머신으로 트래픽을 요청합니다.
  • Azure 가상 머신의 인바운드 애플리케이션 응답 트래픽입니다.

4단계 애플리케이션에 액세스할 수 없는 경우 IP 확인을 사용하여 설정을 검사.

자세한 내용은 Azure 네트워크 모니터링 개요를 참조하세요.

추가 리소스

Windows 기반 Azure Virtual Machine에 대한 원격 데스크톱 연결 문제 해결

Linux 기반 Azure 가상 머신에 대한 SSH(Secure Shell) 연결 문제 해결

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.