웹 배포에 적합한 접근 방식 선택

작성자 : Jason Lee

IIS(인터넷 정보 서비스) 웹 배포 도구(웹 배포) 2.0 이상을 사용하는 경우 패키지된 웹 애플리케이션을 웹 서버로 가져오는 데 사용할 수 있는 세 가지 기본 방법이 있습니다. 다음 작업 중 하나를 수행할 수 있습니다.

  • 대상 서버에서 웹 Deployment Agent 서비스("원격 에이전트"라고도 함)를 대상으로 하여 원격 위치에서 애플리케이션을 배포합니다.
  • 요청 시 웹 배포("임시 에이전트"라고도 함)를 사용하여 원격 위치에서 애플리케이션을 배포합니다.
  • 대상 서버의 IIS 웹 배포 처리기를 대상으로 하여 원격 위치에서 애플리케이션을 배포합니다.
  • 웹 패키지를 대상 서버에 수동으로 복사하고 IIS 관리자를 통해 가져와 애플리케이션을 배포합니다.

대상 웹 서버를 구성하는 방법은 사용하려는 배포 방법에 따라 달라집니다. 이 항목은 배포에 적합한 방법을 결정하는 데 도움이 됩니다.

이 표에서는 각 접근 방식에 가장 일반적으로 적합한 시나리오와 함께 각 배포 방법의 기본 장점과 단점을 보여 줍니다.

접근 방식 장점 단점 일반적인 시나리오
원격 에이전트 쉽게 설정할 수 있습니다. 웹 애플리케이션 및 콘텐츠에 대한 정기적인 업데이트에 적합합니다. 사용자는 대상 서버의 관리자여야 합니다. 사용자가 대체 자격 증명을 제공할 수 없습니다. 개발 환경. 테스트 환경
임시 에이전트 대상 컴퓨터에 웹 배포를 설치할 필요가 없습니다. 최신 버전의 웹 배포가 자동으로 사용됩니다. 사용자는 대상 서버의 관리자여야 합니다. 사용자가 대체 자격 증명을 제공할 수 없습니다. 개발 환경. 테스트 환경
웹 배포 처리기 관리자가 아닌 사용자는 콘텐츠를 배포할 수 있습니다. 웹 애플리케이션 및 콘텐츠에 대한 정기적인 업데이트에 적합합니다. 설정하는 것이 훨씬 더 복잡합니다. 스테이징 환경. 인트라넷 프로덕션 환경. 호스트된 환경.
오프라인 배포 설정하는 것은 매우 쉽습니다. 격리된 환경에 적합합니다. 서버 관리자는 매번 웹 패키지를 수동으로 복사하고 가져와야 합니다. 인터넷 연결 프로덕션 환경. 격리된 네트워크 환경.

원격 에이전트 사용

대상 서버에 기본 설정을 사용하여 웹 배포를 설치하면 웹 Deployment Agent 서비스("원격 에이전트")가 자동으로 설치되고 시작됩니다. 기본적으로 원격 에이전트는 이 주소에 HTTP 엔드포인트를 노출합니다.

http://[server]/MSDEPLOYAGENTSERVICE

참고

[server]를 웹 서버의 컴퓨터 이름, 웹 서버의 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

참고

[server]를 웹 서버의 컴퓨터 이름, 웹 서버의 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=%ContactManagerPublishPassword%,
        authtype='Basic', 
  -verb:sync 
  -setParamFile:"…\ContactManager.Mvc.SetParameters.xml"   
  -allowUntrusted

참고

웹 배포 명령줄 작업 및 구문에 대한 자세한 내용은 웹 배포 명령줄 참조를 참조하세요. .deploy.cmd 파일 사용에 대한 자세한 내용은 방법: deploy.cmd 파일을 사용하여 배포 패키지 설치를 참조하세요.

웹 배포 처리기는 서버에 대한 원격 액세스를 사용할 수 있지만 관리자 자격 증명이 없는 스테이징 환경, 호스트된 환경 및 인트라넷 기반 프로덕션 환경에서 배포하는 유용한 접근 방식을 제공합니다.

웹 배포 처리기 접근 방식을 사용하는 시나리오의 엔드 투 엔드 예제는 시나리오: 웹 배포를 위한 스테이징 환경 구성을 참조하세요.

오프라인 배포 사용

경우에 따라 원격 위치에서 IIS 웹 사이트에 애플리케이션 및 콘텐츠를 배포하는 것이 불가능하거나 실용적이지 않습니다. 예를 들어 원본 및 대상 컴퓨터가 격리된 네트워크 또는 네트워크 세그먼트에 있거나 방화벽 정책에서 원격 액세스를 허용하지 않을 수 있습니다.

이와 같은 시나리오에서는 웹 배포의 패키징 및 게시 기능을 계속 사용할 수 있습니다. 원격 위치에서는 사용할 수 없습니다. 대신 대상 서버의 관리자는 웹 패키지를 서버에 복사하고 IIS 관리자를 통해 가져와야 합니다.

대신 대상 서버의 관리자는 웹 패키지를 서버에 복사하고 IIS 관리자를 통해 가져와야 합니다.

오프라인 배포 방법은 일반적으로 경계 네트워크의 서버가 내부 네트워크의 컴퓨터와의 연결을 제한할 수 있는 인터넷 연결 프로덕션 환경에서 유용합니다.

오프라인 배포 방법을 사용하는 시나리오의 엔드 투 엔드 예제는 시나리오: 웹 배포용 프로덕션 환경 구성을 참조하세요.

추가 정보

웹 배포 명령줄 작업 및 구문에 대한 자세한 내용은 웹 배포 명령줄 참조를 참조하세요. .deploy.cmd 파일을 사용하는 방법에 대한 자세한 내용은 방법: deploy.cmd 파일을 사용하여 배포 패키지 설치를 참조하세요.

원격 컴퓨터에서 웹 패키지를 배포할 수 있는 다양한 방법에 대한 일반적인 지침은 원격으로 웹 배포 사용을 참조하세요. 주문형 웹 배포 사용에 대한 자세한 내용은 주문형 웹 배포를 참조하세요.