Windows Azure : 웹 역할, 작업자 역할 및 VM 역할은 무엇입니까?


115

내가 작업하는 애플리케이션에는 웹 역할이 포함되어 있습니다. 단순한 웹 애플리케이션입니다. Windows Azure에서 애플리케이션을 호스팅해야했기 때문에 웹 역할을 만들었습니다. 실제로이 역할이 무엇인지 알고 싶습니다. 코딩 현명하거나 저장 현명한 의미는 무엇입니까?

답변:


101

2013 년 3 월 3 일 편집-UDP 끝점, 가상 머신 및 더 많은 언어를 참조하도록 업데이트되었습니다.

2013 년 6 월 6 일 편집-VM 역할 중단을 반영하고 웹 / 작업자 역할 기준 OS 이미지를 Windows Server 2012로 업데이트하도록 업데이트되었습니다.

@Vladimir의 좋은 링크. 좀 더 설명 : 모든 역할 (웹, 작업자)은 기본적으로 Windows Server입니다. 웹 및 작업자 역할은 거의 동일합니다.

  • 웹 역할은 IIS가 활성화 된 Windows Server VM입니다.
  • 작업자 역할은 IIS가 비활성화 된 Windows Server VM입니다 (수동으로 활성화 할 수 있음).
  • VM 역할은 Hyper-V를 통해 로컬로 생성하고 Azure에 업로드하는 Windows Server 2008 이미지입니다 (현재 중단되었으며 2013 년 5 월 31 일부로 더 이상 사용할 수 없음).
  • 가상 머신은 Azure에서 생성되고 자체 스토리지에 vhd로 저장되며 VM 역할에 비해 몇 가지 향상된 기능이있는 Windows 또는 Linux 이미지입니다. 예 : vhd가 자체 스토리지 계정에 있으므로 vhd에서 이미지 템플릿을 쉽게 생성하고 새 vhd에 복사하거나 VM Depot에 업로드 할 수도 있습니다 (Linux 만 해당).

이러한 역할로 수행 할 작업에 대한 질문에 답하기 위해 아래에 언급 된 플랫폼 교육 키트는 많은 좋은 아이디어와 샘플을 제공하지만 다음은 몇 가지 간단한 사용 사례입니다.

  • tcp, http, https 또는 udp 엔드 포인트 (웹 애플리케이션, SOAP / REST 서비스 등)를 노출하는 모든 코드를 실행할 수 있습니다. 하지만 상태 비 저장 방식에 대해 생각해야합니다. VM 인스턴스가 두 개 이상 실행중인 경우 사용자 트래픽이 해당 인스턴스에 분산됩니다. 플랫폼 교육 키트는이를 처리하기 위해 스토리지 또는 캐시를 사용하는 방법을 보여줍니다.
  • 큐 또는 타이머에없는 코드를 실행할 수 있습니다. 사진의 썸네일 생성 또는 사용자 입력을 기반으로 한 계산과 같은 주문형 작업이있을 수 있습니다. 외부에서 사용할 수있는 엔드 포인트가 필요하지 않습니다. 요청을 대기열로 푸시 한 다음이 대기열을 단순히 공급하는 작업을 실행할 수 있습니다 (모든 인스턴스에서 사용하는 대기열 메시지를 사용하여이 프로세스를 여러 인스턴스로 확장 할 수 있음).
  • .NET, Java, php, python, node, ruby ​​등을 실행할 수 있습니다. 프로젝트 코드와 함께 적절한 런타임 코드를 배포하기 만하면됩니다. 모든 언어는 Azure API에 대한 REST 호출을 수행 할 수 있으며 여러 언어 (위에 언급 된 언어 포함)에는이를 처리하는 SDK가 있습니다. 모든 언어 SDK는 여기 , 소스 코드는 github, 여기 .
  • VM 역할을 사용하면 매우 복잡하고 시간이 많이 걸리는 설치, 수동 개입이 필요한 설치, 안정적으로 자동화 할 수없는 설치로 소프트웨어를 설치하고 실행할 수 있습니다. 이 경우 OS 유지 관리를 처리해야합니다. VM 역할 외에도 이제 Windows 및 Linux 지원과 함께 클라우드 기반 VM 구성을 제공하는 가상 머신이 있습니다. VM 역할보다 가상 머신을 제안합니다.

웹 및 작업자 역할을 사용하면 OS 및 관련 패치가 처리됩니다. VM을 관리하지 않고도 앱의 구성 요소를 빌드합니다.

VM 역할을 사용하면 전체 Windows Server 이미지를 빌드하고 여기에 Azure 후크를 추가하고 전체 VM을 클라우드로 푸시 한 다음 시간이 지남에 따라 VM 이미지를 유지합니다.

Virtual Machines를 사용하면 갤러리에서 OS 이미지를 선택하기 만하면 자동으로 생성되고 Blob Storage에 vhd로 저장됩니다. 그런 다음 RDP / ssh를 사용하고 원하는 방식으로 설정합니다.

건축가 모자를 쓰고, 이곳이 재미 있고 흥미로워지는 곳입니다. 웹 역할 또는 작업자 역할로 웹 서비스를 실행할 수 있으며 둘 중 하나에서 포트를 열 수 있습니다. 작업자 역할로 Tomcat 또는 기타 웹 서버를 호스팅 할 수 있습니다. 웹 사이트와 서비스를 단일 역할로 결합하거나 다양한 확장 성 요구에 따라 여러 역할로 분할하도록 선택할 수 있습니다.

좋은 시작을 위해 플랫폼 교육 키트를 살펴보고 연습을 시작하십시오.


실제로 웹 역할에서 TCP 끝점을 노출 할 수 있습니까? smarx에 따르면 모두 HTTP 여야합니다. stackoverflow.com/questions/2926737/… 이것은 역할간에 또 다른 미묘한 차이를 만듭니다.
Richard Astbury 2011 년

나는 내 자신의 질문에 대답했습니다. tcp 포트를 열 수는 있지만 웹 사이트에 바인딩 할 수는 없습니다.
Richard Astbury 2011 년

2
Richard-예전에는 그랬지만 이제 엔드 포인트는 역할 유형에 관계없이 tcp, http 또는 https가 될 수 있습니다. 몇 달 전에 새로운 역할 당 25 개의 엔드 포인트 업데이트를 시연하면서 tcp와 http가 혼합 된 샘플 앱을 구축했습니다. 블로그 게시물은 여기를 참조하세요.- davidmakogon.com
05

죄송합니다. 배포 당 25 개의 엔드 포인트를 시연해야했습니다. 그리고 ... 귀하의 다른 의견을 보니 잘못된 질문에 답했을 수 있습니다. :)
David Makogon

@DavidMakogon-웹 역할과 작업자 역할을 대체 한 것은 무엇입니까? GDI +가 필요한 PhantomJS로 웹 사이트를 배포해야합니다. GDI +는 웹 작업에서 완전히 지원되지 않습니다. 웹 역할을 사용할 수 있기를 바랐습니다. 웹 역할을 대체 한 것은 무엇입니까? Azure에서 패치하고 유지 관리하는 VM의 개념이 마음에 들었습니다. 감사!
Martin

30
  • 웹 역할은 IIS에서 호스팅되는 웹 응용 프로그램입니다.
  • 작업자 역할은 일부 작업을 수행 할 수있는 프로세스입니다 (예 : 업로드 된 이미지를 자동으로 압축하고 데이터베이스에서 무언가 변경 될 때마다 작업 수행, 대기열 및 프로세스에서 새 메시지 가져 오기, 이름 지정).
  • VM 역할 호스트 VM

10
실제로 웹 역할과 작업자 역할은 VM입니다.
David Makogon

이것은 훨씬 더 간단한 대답이며 미안합니다. VM이 아닙니다. 별도의 VM 인 경우 백그라운드에서 여러 작업자 역할이 실행되는 다중 계층 솔루션의 비용이 얼마나 될지 상상할 수 있습니까? blogs.msdn.microsoft.com/silverlining/2012/06/27/…
Clarence

보다 구체적인 작업자 역할은 IIS가없는 VM입니다
dejjub-AIS

21

며칠 전에이 SO 질문 / 답변을 보았고 내 머리 위로 약간 제공된 답변을 찾았습니다 (저는 Azure 및 웹에 처음 접했습니다). 이 요약은 오늘 밤 Azure 기본 사항에서 작업자와 웹 역할 간의 핵심 차이점에 대한 높은 수준의 개요라고 생각했습니다.

둘 사이의 주요 차이점은 웹 역할의 인스턴스는 IIS를 실행하지만 작업자 역할의 인스턴스는 그렇지 않다는 것입니다. 그러나 둘 다 동일한 방식으로 관리되지만 응용 프로그램에서 둘 다 사용하는 것이 일반적입니다. 예를 들어 웹 역할 인스턴스는 사용자의 요청을 수락 한 다음 처리를 위해 작업자 역할 인스턴스로 전달할 수 있습니다. 애플리케이션을 확장하거나 축소하려면 Windows Azure에 두 역할의 더 많은 인스턴스를 만들거나 기존 인스턴스를 종료하도록 요청할 수 있습니다. Windows Azure Virtual Machines와 유사하게 각 웹 또는 작업자 역할 인스턴스가 실행되는 시간에 대해서만 요금이 부과됩니다.

Azure 개발을 처음 접하는 경우 여기에서 전체 기사를 읽는 것이 좋습니다. Intro to Windows Azure

나는 이것이 나를 위해 전구를 켜는 데 도움이 된만큼 누군가에게 도움이되기를 바랍니다.


3

Windows Azure의 웹 역할은 특수 목적이며 프런트 엔드 웹 응용 프로그램을 호스팅하는 데 사용되는 전용 IIS (인터넷 정보 서비스) 웹 서버를 제공합니다. 웹 애플리케이션을 웹 역할에 빠르고 쉽게 배포 한 다음 수요에 맞게 컴퓨팅 기능을 확장 또는 축소 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.