작성자 : Jason Lee
IIS(인터넷 정보 서비스) 웹 배포 도구(웹 배포) 2.0 이상을 사용하는 경우 패키지된 웹 애플리케이션을 웹 서버로 가져오는 데 사용할 수 있는 세 가지 주요 방법이 있습니다. 다음 중 하나를 수행할 수 있습니다.
- 대상 서버에서 웹 배포 에이전트 서비스 ("원격 에이전트"라고도 함)를 대상으로 하여 원격 위치에서 애플리케이션을 배포합니다.
- 요청 시 웹 배포("임시 에이전트"라고도 함)를 사용하여 원격 위치에서 애플리케이션을 배포합니다.
- 대상 서버의 IIS 웹 배포 처리기를 대상으로 하여 원격 위치에서 애플리케이션을 배포합니다.
- 웹 패키지를 대상 서버에 수동으로 복사하고 IIS 관리자를 통해 가져와 애플리케이션을 배포합니다.
대상 웹 서버를 구성하는 방법은 사용하려는 배포 방법에 따라 달라집니다. 이 항목은 배포에 적합한 방법을 결정하는 데 도움이 됩니다.
이 표에서는 각 접근 방식에 가장 일반적으로 적합한 시나리오와 함께 각 배포 방법의 주요 이점과 단점을 보여 줍니다.
접근법 | 장점 | 단점 | 일반적인 시나리오 |
---|---|---|---|
원격 에이전트 | 쉽게 설정할 수 있습니다. 웹 애플리케이션 및 콘텐츠에 대한 정기적인 업데이트에 적합합니다. | 사용자는 대상 서버의 관리자여야 합니다. 사용자가 대체 자격 증명을 제공할 수 없습니다. | 개발 환경. 테스트 환경 |
임시 에이전트 | 대상 컴퓨터에 웹 배포를 설치할 필요가 없습니다. 최신 버전의 웹 배포가 자동으로 사용됩니다. | 사용자는 대상 서버의 관리자여야 합니다. 사용자가 대체 자격 증명을 제공할 수 없습니다. | 개발 환경. 테스트 환경 |
웹 배포 처리기 | 관리자가 아닌 사용자는 콘텐츠를 배포할 수 있습니다. 웹 애플리케이션 및 콘텐츠에 대한 정기적인 업데이트에 적합합니다. | 설정하는 것이 훨씬 더 복잡합니다. | 스테이징 환경. 인트라넷 프로덕션 환경. 호스트된 환경. |
오프라인 배포 | 설정하는 것은 매우 쉽습니다. 격리된 환경에 적합합니다. | 서버 관리자는 매번 웹 패키지를 수동으로 복사하고 가져와야 합니다. | 인터넷 연결 프로덕션 환경. 격리된 네트워크 환경. |
원격 에이전트 사용
대상 서버에 기본 설정을 사용하여 웹 배포를 설치하면 웹 배포 에이전트 서비스("원격 에이전트")가 자동으로 설치되고 시작됩니다. 기본적으로 원격 에이전트는 이 주소에 HTTP 엔드포인트를 노출합니다.
http://[server]/MSDEPLOYAGENTSERVICE
비고
[서버]를 웹 서버의 컴퓨터 이름, 웹 서버의 IP 주소 또는 웹 서버로 확인되는 호스트 이름으로 바꿀 수 있습니다.
서버 관리자는 이 엔드포인트 주소를 지정하여 개발자 컴퓨터 또는 빌드 서버와 같은 원격 위치에서 웹 패키지를 배포할 수 있습니다. 예를 들어 Fabrikam, Inc.의 Matt Hink가 개발자 컴퓨터에 ContactManager.Mvc 웹 애플리케이션 프로젝트를 빌드했다고 가정해 보겠습니다. 빌드 프로세스는 패키지를 설치하는 데 필요한 웹 배포 명령을 포함하는 .deploy.cmd 파일과 함께 웹 패키지를 생성합니다. Matt가 TESTWEB1 서버의 서버 관리자인 경우 개발자 컴퓨터에서 다음 명령을 실행하여 웹 애플리케이션을 테스트 웹 서버에 배포할 수 있습니다.
ContactManager.Mvc.deploy.cmd /y /m:http://TESTWEB1/MSDEPLOYAGENTSERVICE a/:NTLM
실제로 웹 배포 실행 파일은 컴퓨터 이름을 제공하는 경우 원격 에이전트의 엔드포인트 주소를 유추할 수 있으므로 Matt는 다음만 입력하면 됩니다.
ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /a:NTLM
비고
웹 배포 명령줄 구문 및 .deploy.cmd 파일에 대한 자세한 내용은 방법: deploy.cmd 파일을 사용하여 배포 패키지 설치를 참조하세요.
원격 에이전트는 원격 위치에서 콘텐츠를 배포하는 간단한 방법을 제공하며, 이 방법은 원클릭 또는 자동화된 배포에서 잘 작동할 수 있습니다. 그러나 배포 명령을 실행하는 사용자는 도메인 관리자 또는 대상 서버의 로컬 관리자 그룹의 구성원이어야 합니다. 또한 원격 에이전트는 기본 인증을 지원하지 않으므로 명령줄에서 대체 자격 증명을 전달할 수 없습니다.
원격 에이전트는 개발 또는 테스트 시나리오에서 배포하는 유용한 방법을 제공합니다. 개발자가 테스트 서버 환경에 대한 전체 관리자 제어를 가지는 것은 드문 일이 아니며 애플리케이션은 일반적으로 매우 자주 다시 빌드되고 다시 배포됩니다. 그러나 이 방법은 일반적으로 스테이징 또는 프로덕션 환경에서는 허용되지 않습니다.
원격 에이전트 접근 방식을 사용하는 시나리오의 엔드 투 엔드 예제는 시나리오: 웹 배포를 위한 테스트 환경 구성을 참조하세요.
임시 에이전트 사용
배포에 대한 임시 에이전트 접근 방식은 원격 에이전트 접근 방식과 유사합니다. 그러나 원격 에이전트 접근 방식과 달리 대상 웹 서버에 웹 배포를 설치할 필요는 없습니다. 대신 배포를 수행할 때 웹 배포는 대상 서버에 임시 버전의 웹 배포 에이전트 서비스를 설치하고 이를 사용하여 콘텐츠를 IIS에 배포합니다. 배포가 완료되면 모든 임시 파일이 제거됩니다.
임시 에이전트 공급자 설정을 사용하려면 배포 명령에 /g 플래그를 추가합니다.
ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /g:true
비고
서비스가 실행되고 있지 않더라도 웹 배포 에이전트 서비스가 대상 컴퓨터에 설치된 경우 임시 에이전트를 사용할 수 없습니다.
이 방법의 장점은 대상 서버에 웹 배포 설치를 유지 관리할 필요가 없다는 것입니다. 또한 원본 및 대상 컴퓨터가 동일한 버전의 웹 배포를 실행하고 있는지 확인할 필요가 없습니다. 그러나 이 방법은 원격 에이전트 접근 방식과 동일한 주체 제한으로 인해 고통을 겪습니다. 즉, 콘텐츠를 배포하기 위해 대상 서버의 로컬 관리자여야 하며 NTLM 인증만 지원됩니다. 또한 임시 에이전트 접근 방식을 사용하려면 대상 환경의 초기 구성이 훨씬 더 많이 필요합니다.
임시 에이전트 사용에 대한 자세한 내용은 방법: deploy.cmd 파일 및 요청 시웹 배포를 사용하여 배포 패키지 설치를 참조하세요.
웹 배포 처리기 사용
IIS 7 이후의 경우 웹 배포는 IIS 웹 배포 처리기를 통해 대체 배포 방법을 제공합니다. 웹 배포 처리기는 사용자가 원격 위치에서 IIS 웹 사이트를 관리할 수 있도록 설계된 WMSvc(IIS 웹 관리 서비스)와 긴밀하게 통합됩니다.
기본적으로 원격 에이전트는 이 주소에 HTTP 엔드포인트를 노출합니다.
https://[server]:8172/MSDeploy.axd
비고
[서버]를 웹 서버의 컴퓨터 이름, 웹 서버의 IP 주소 또는 웹 서버로 확인되는 호스트 이름으로 바꿀 수 있습니다.
원격 에이전트 및 임시 에이전트에 비해 웹 배포 처리기의 가장 큰 장점은 관리자가 아닌 사용자가 특정 IIS 웹 사이트에 애플리케이션 및 콘텐츠를 배포할 수 있도록 IIS를 구성할 수 있다는 것입니다. 또한 웹 배포 처리기는 기본 인증을 지원하므로 웹 배포 명령에서 대체 자격 증명을 매개 변수로 제공할 수 있습니다. 주요 단점은 웹 배포 처리기가 처음에는 설정 및 구성하기가 훨씬 더 복잡하다는 것입니다.
관리자가 아닌 사용자의 경우 WMSvc(웹 관리 서비스)는 사용자가 서버 수준 연결이 아닌 사이트 수준 연결을 사용하여 IIS에 연결하도록 허용합니다. 특정 사이트에 액세스하려면 엔드포인트 주소에 사이트별 쿼리 문자열을 포함할 수 있습니다.
https://[server]:8172/MSDeploy.axd?site=DemoSite
제안 예를 들어 빌드 프로세스가 빌드가 성공할 때마다 웹 애플리케이션을 스테이징 환경에 자동으로 배포하도록 구성되어 있다고 가정합니다. 원격 에이전트 방법을 사용한 경우 빌드 프로세스 ID를 대상 서버의 관리자로 만들어야 합니다. 반면, 웹 배포 처리기 방법을 사용하면 관리자가 아닌 사용자(이 경우 FABRIKAM\stagingdeployer )에게 특정 IIS 웹 사이트에만 권한을 부여할 수 있으며 빌드 프로세스는 웹 패키지를 배포하기 위해 이러한 자격 증명을 제공할 수 있습니다. 다음 예제에서는 환경 변수에서 암호 값을 끌어와서 사용하는 %ContactManagerPublishPassword%
예제입니다. 스크립트 %ContactManagerPublishPassword%
를 성공적으로 실행하려면 변수를 올바른 값으로 정의해야 합니다.
msdeploy.exe
-source:package='…\ContactManager.Mvc.zip'
-dest:auto,
computerName='https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite',
userName='FABRIKAM\stagingdeployer',
password=,
authtype='Basic',
-verb:sync
-setParamFile:"…\ContactManager.Mvc.SetParameters.xml"
-allowUntrusted
비고
웹 배포 명령줄 작업 및 구문에 대한 자세한 내용은 웹 배포 명령줄 참조를 참조하세요. .deploy.cmd 파일 사용에 대한 자세한 내용은 방법: deploy.cmd 파일을 사용하여 배포 패키지 설치를 참조하세요.
웹 배포 처리기는 서버에 대한 원격 액세스를 사용할 수 있지만 관리자 자격 증명이 없는 스테이징 환경, 호스트된 환경 및 인트라넷 기반 프로덕션 환경에서 배포하는 유용한 방법을 제공합니다.
웹 배포 처리기 접근 방식을 사용하는 시나리오의 엔드 투 엔드 예제는 시나리오: 웹 배포를 위한 스테이징 환경 구성을 참조하세요.
오프라인 배포의 사용
경우에 따라 원격 위치에서 IIS 웹 사이트에 애플리케이션 및 콘텐츠를 배포할 수 없거나 실용적이지 않습니다. 예를 들어 원본 및 대상 컴퓨터가 격리된 네트워크 또는 네트워크 세그먼트에 있거나 방화벽 정책에서 원격 액세스를 허용하지 않을 수 있습니다.
이와 같은 시나리오에서는 웹 배포의 패키징 및 게시 기능을 계속 사용할 수 있습니다. 원격 위치에서는 사용할 수 없습니다. 대신 대상 서버의 관리자는 웹 패키지를 서버에 복사하고 IIS 관리자를 통해 가져와야 합니다.
오프라인 배포 방법은 일반적으로 경계 네트워크의 서버가 내부 네트워크의 컴퓨터와의 연결이 제한되었을 수 있는 인터넷 연결 프로덕션 환경에서 유용합니다.
오프라인 배포 방법을 사용하는 시나리오의 엔드 투 엔드 예제는 시나리오: 웹 배포용 프로덕션 환경 구성을 참조하세요.
추가 읽기
웹 배포 명령줄 작업 및 구문에 대한 자세한 내용은 웹 배포 명령줄 참조를 참조하세요. .deploy.cmd 파일 사용에 대한 자세한 내용은 방법: deploy.cmd 파일을 사용하여 배포 패키지 설치를 참조하세요.
원격 컴퓨터에서 웹 패키지를 배포할 수 있는 다양한 방법에 대한 일반적인 지침은 원격으로 웹 배포 사용을 참조하세요. 주문형 웹 배포 사용에 대한 자세한 내용은 주문형 웹 배포를 참조하세요.