웹 배포에 적합한 접근 방식 선택Choosing the Right Approach to Web Deployment

Jason Leeby Jason Lee

PDF 다운로드Download PDF

인터넷 정보 서비스 (IIS) 웹 배포 도구 (웹 배포) 2.0 이상으로 작업 하는 경우 패키지 된 웹 응용 프로그램을 웹 서버에 가져오는 데 사용할 수 있는 세 가지 주요 방법이 있습니다.When you work with the Internet Information Services (IIS) Web Deployment Tool (Web Deploy) 2.0 or later, there are three main approaches you can use to get your packaged web applications onto a web server. 다음 작업 중 하나를 수행할 수 있습니다.You can either:

  • 대상 서버에서 웹 Deployment Agent 서비스 ("원격 에이전트" 라고도 함)를 대상으로 지정 하 여 원격 위치에서 응용 프로그램을 배포 합니다.Deploy the application from a remote location by targeting the Web Deployment Agent Service (also known as the "remote agent") on the destination server.
  • 주문형 웹 배포 ("임시 에이전트" 라고도 함)를 사용 하 여 원격 위치에서 응용 프로그램을 배포 합니다.Deploy the application from a remote location using Web Deploy On Demand (also known as the "temp agent").
  • 대상 서버에서 IIS 웹 배포 처리기 를 대상으로 지정 하 여 원격 위치에서 응용 프로그램을 배포 합니다.Deploy the application from a remote location by targeting the IIS Web Deploy Handler on the destination server.
  • 웹 패키지를 대상 서버에 수동으로 복사 하 여 IIS 관리자를 통해 가져오는 방법으로 응용 프로그램을 배포 합니다.Deploy the application by manually copying the web package to the destination server and importing it through IIS Manager.

대상 웹 서버를 구성 하는 방법은 사용 하려는 배포 방법에 따라 달라 집니다.How you configure your destination web servers will depend on which approach to deployment you want to use. 이 항목은 배포에 적합 한 방법을 결정 하는 데 도움이 됩니다.This topic will help you decide which approach to deployment is right for you.

이 표에서는 각 배포 방법의 주요 장점과 단점을 가장 일반적으로 각 접근 방식에 맞는 시나리오와 함께 보여 줍니다.This table shows the main advantages and disadvantages of each deployment approach, together with the scenarios that most typically suit each approach.

접근 방식Approach 장점Advantages 단점Disadvantages 일반적인 시나리오Typical Scenarios
원격 에이전트Remote Agent 설정 하는 것이 쉽습니다.It is easy to set up. 웹 응용 프로그램 및 콘텐츠를 정기적으로 업데이트 하는 데 적합 합니다.It is suitable for regular updates to web applications and content. 사용자는 대상 서버의 관리자 여야 합니다.The user must be an administrator on the target server. 사용자는 대체 자격 증명을 제공할 수 없습니다.the user can't supply alternative credentials. 개발 환경.Development environments. 테스트 환경.Test environments.
임시 에이전트Temp Agent 대상 컴퓨터에 웹 배포를 설치할 필요가 없습니다.There is no need to install Web Deploy on the target computer. 웹 배포의 최신 버전이 자동으로 사용 됩니다.The latest version of Web Deploy is automatically used. 사용자는 대상 서버의 관리자 여야 합니다.The user must be an administrator on the target server. 사용자는 대체 자격 증명을 제공할 수 없습니다.The user can't supply alternative credentials. 개발 환경.Development environments. 테스트 환경.Test environments.
웹 배포 처리기Web Deploy Handler 관리자가 아닌 사용자는 콘텐츠를 배포할 수 있습니다.Non-administrator users can deploy content. 웹 응용 프로그램 및 콘텐츠를 정기적으로 업데이트 하는 데 적합 합니다.It is suitable for regular updates to web applications and content. 설정 하는 것은 훨씬 더 복잡 합니다.It is a lot more complex to set up. 스테이징 환경.Staging environments. 인트라넷 프로덕션 환경.Intranet production environments. 호스팅된 환경.Hosted environments.
오프 라인 배포Offline Deployment 설정 하기가 매우 쉽습니다.It is very easy to set up. 격리 된 환경에 적합 합니다.It is suitable for isolated environments. 서버 관리자는 매번 웹 패키지를 수동으로 복사 하 여 가져와야 합니다.The server administrator must manually copy and import the web package every time. 인터넷 연결 프로덕션 환경.Internet-facing production environments. 격리 된 네트워크 환경.Isolated network environments.

원격 에이전트 사용Using the Remote Agent

대상 서버의 기본 설정을 사용 하 여 웹 배포를 설치 하는 경우 웹 Deployment Agent 서비스 ("원격 에이전트")가 자동으로 설치 되 고 시작 됩니다.When you install Web Deploy using the default settings on a destination server, the Web Deployment Agent Service (the "remote agent") is automatically installed and started. 기본적으로 원격 에이전트는 다음 주소에 HTTP 끝점을 노출 합니다.By default, the remote agent exposes an HTTP endpoint at this address:

http://[server]/MSDEPLOYAGENTSERVICE

Note

[Server]를 웹 서버의 컴퓨터 이름, 웹 서버에 대 한 IP 주소 또는 웹 서버로 확인 되는 호스트 이름으로 바꿀 수 있습니다.You can replace [server] with the machine name of your web server, an IP address for your web server, or a hostname that resolves to your web server.

서버 관리자는이 끝점 주소를 지정 하 여 개발자 컴퓨터 또는 빌드 서버와 같은 원격 위치에서 웹 패키지를 배포할 수 있습니다.Server administrators can deploy web packages from a remote location, like a developer machine or a build server, by specifying this endpoint address. 예를 들어 Fabrikam, i n c .의 Matt Hink에서 개발자 컴퓨터에 동료 관리자. Mvc 웹 응용 프로그램 프로젝트를 빌드 했다고 가정 합니다.For example, suppose Matt Hink at Fabrikam, Inc. has built the ContactManager.Mvc web application project on his developer machine. 빌드 프로세스는 패키지를 설치 하는 데 필요한 웹 배포 명령을 포함 하는 .deploy. .cmd 파일과 함께 웹 패키지를 생성 합니다.The build process generates a web package, together with a .deploy.cmd file that contains the Web Deploy commands required to install the package. Matt가 TESTWEB1 서버에서 서버 관리자 인 경우 개발자 컴퓨터에서이 명령을 실행 하 여 테스트 웹 서버에 웹 응용 프로그램을 배포할 수 있습니다.If Matt is a server administrator on the TESTWEB1 server, he can deploy the web application to the test web server by running this command on his developer machine:

ContactManager.Mvc.deploy.cmd /y /m:http://TESTWEB1/MSDEPLOYAGENTSERVICE a/:NTLM

실제로 웹 배포 실행 파일은 컴퓨터 이름을 제공 하는 경우 원격 에이전트의 끝점 주소를 유추할 수 있으므로 Matt는 다음과 같이 입력 해야 합니다.In actual fact, the Web Deploy executable can infer the endpoint address of the remote agent if you provide the machine name, so Matt only needs to type this:

ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /a:NTLM

Note

명령줄 구문에 대 한 자세한 내용과 . .cmd 파일을 배포 하는 방법에 대 한 웹 배포 자세한 내용은 방법: Deploy. .Cmd 파일을 사용 하 여 배포 패키지 설치를 참조 하세요.For more information on Web Deploy command-line syntax and .deploy.cmd files, see How to: Install a Deployment Package Using the deploy.cmd File.

원격 에이전트는 원격 위치에서 콘텐츠를 배포 하는 간단한 방법을 제공 하며이 접근 방식은 한 번의 클릭으로 또는 자동화 된 배포에서 제대로 작동할 수 있습니다.The remote agent offers a straightforward way to deploy content from a remote location, and this approach can work well with one-click or automated deployment. 그러나 배포 명령을 실행 하는 사용자는 도메인 관리자 이거나 대상 서버에서 로컬 관리자 그룹의 구성원 이어야 합니다.However, the user who runs the deployment command must also be either a domain administrator or a member of the local administrators group on the destination server. 또한 원격 에이전트가 기본 인증을 지원 하지 않으므로 명령줄에서 대체 자격 증명을 전달할 수 없습니다.In addition, the remote agent doesn't support basic authentication, so you can't pass alternative credentials on the command line.

원격 에이전트는 개발 또는 테스트 시나리오에서 배포 하는 데 유용한 방법을 제공 합니다 .이는 개발자가 테스트 서버 환경에 대해 전체 관리자 제어를 사용 하는 것이 일반적이 지 않으며 일반적으로 응용 프로그램을 다시 빌드하고 다시 배포 하는 것입니다. 자주.The remote agent provides a useful approach to deployment in development or test scenarios, where it's not uncommon for developers to have full administrator control over a test server environment, and applications are typically rebuilt and redeployed very frequently. 그러나이 방법은 일반적으로 스테이징 또는 프로덕션 환경에서 허용 되는 수준이 낮습니다.However, this approach is usually less acceptable for staging or production environments.

원격 에이전트 방법을 사용 하는 시나리오의 종단 간 예제는 시나리오: 웹 배포용 테스트 환경 구성을 참조 하세요.For an end-to-end example of a scenario that uses the remote agent approach, see Scenario: Configuring a Test Environment for Web Deployment.

임시 에이전트 사용Using the Temp Agent

배포에 대 한 임시 에이전트 접근 방식은 원격 에이전트 방법과 유사 합니다.The temp agent approach to deployment is similar to the remote agent approach. 그러나 원격 에이전트 방법과 달리 대상 웹 서버에 웹 배포를 설치할 필요가 없습니다.However, in contrast to the remote agent approach, you don't need to install Web Deploy on the destination web server. 대신 배포를 수행 하는 경우 웹 배포은 대상 서버에 임시 버전의 웹 배포 에이전트 서비스를 설치 하 고이를 사용 하 여 IIS에 콘텐츠를 배포 합니다.Instead, when you perform the deployment, Web Deploy will install a temporary version of the web deployment agent service on the destination server and will use this to deploy your content to IIS. 배포가 완료 되 면 모든 임시 파일이 제거 됩니다.When the deployment is complete, all temporary files are removed.

임시 에이전트 공급자 설정을 사용 하려면 배포 명령에 /g 플래그를 추가 합니다.If you want to use the temp agent provider setting, add the /g flag to your deployment command:

ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /g:true

Note

서비스가 실행 되 고 있지 않은 경우에도 대상 컴퓨터에 웹 배포 에이전트 서비스가 설치 되어 있으면 임시 에이전트를 사용할 수 없습니다.You can't use the temp agent if the web deployment agent service is installed on the destination computer, even if the service is not running.

이 방법의 장점은 대상 서버에 웹 배포 설치를 유지 관리할 필요가 없다는 것입니다.The advantage of this approach is that you don't need to maintain installations of Web Deploy on your destination servers. 또한 원본 컴퓨터와 대상 컴퓨터의 웹 배포 동일한 버전의를 실행 하 고 있는지 확인 하지 않아도 됩니다.Furthermore, you don't need to ensure that the source and destination computers are running the same version of Web Deploy. 그러나이 접근 방식은 원격 에이전트와 동일한 보안 주체 제한이 적용 됩니다. 즉, 콘텐츠를 배포 하기 위해 대상 서버에서 로컬 관리자 여야 하며 NTLM 인증만 지원 됩니다.However, this approach suffers from the same principal limitations as the remote agent approach, namely that you must be a local administrator on the destination server in order to deploy content, and only NTLM authentication is supported. 또한 임시 에이전트 방법을 사용 하려면 대상 환경에 대해 훨씬 더 많은 초기 구성이 필요 합니다.The temp agent approach also requires a lot more initial configuration of the destination environment.

임시 에이전트 사용에 대 한 자세한 내용은 방법: 배포 .Cmd 파일을 사용 하 여 배포 패키지 설치요청 시 웹 배포를 참조 하세요.For more information on using the temp agent, see How to: Install a Deployment Package Using the deploy.cmd File and Web Deploy On Demand.

웹 배포 처리기 사용Using the Web Deploy Handler

IIS 7 이상에서는 웹 배포 IIS 웹 배포 처리기를 통한 대체 배포 방법을 제공 합니다.For IIS 7 onwards, Web Deploy offers an alternative deployment approach through the IIS Web Deploy Handler. 웹 배포 처리기는 사용자가 원격 위치에서 IIS 웹 사이트를 관리할 수 있도록 설계 된 IIS WMSvc (웹 관리 서비스)와 긴밀 하 게 통합 됩니다.The Web Deploy Handler is closely integrated with the IIS Web Management Service (WMSvc), which is designed to allow users to manage IIS websites from remote locations.

기본적으로 원격 에이전트는 다음 주소에 HTTP 끝점을 노출 합니다.By default, the remote agent exposes an HTTP endpoint at this address:

https://[server]:8172/MSDeploy.axd

Note

[Server]를 웹 서버의 컴퓨터 이름, 웹 서버에 대 한 IP 주소 또는 웹 서버로 확인 되는 호스트 이름으로 바꿀 수 있습니다.You can replace [server] with the machine name of your web server, an IP address for your web server, or a hostname that resolves to your web server.

원격 에이전트 및 임시 에이전트에 대 한 웹 배포 처리기의 가장 큰 장점은 관리자가 아닌 사용자가 특정 IIS 웹 사이트에 응용 프로그램 및 콘텐츠를 배포할 수 있도록 IIS를 구성할 수 있다는 것입니다.The big advantage of the Web Deploy Handler over the remote agent, and the temp agent, is that you can configure IIS to allow non-administrator users to deploy applications and content to specific IIS websites. 또한 웹 배포 처리기는 기본 인증을 지원 하므로 웹 배포 명령에서 매개 변수로 대체 자격 증명을 제공할 수 있습니다.The Web Deploy Handler also supports basic authentication, so you can provide alternative credentials as parameters in your Web Deploy commands. 주요 단점은 웹 배포 처리기를 설정 하 고 구성 하는 것이 훨씬 복잡 하다는 것입니다.The major drawback is that the Web Deploy Handler is initially a lot more complicated to set up and configure.

비관리자 사용자의 경우 웹 관리 서비스 (WMSvc)를 사용 하면 사용자가 서버 수준 연결이 아닌 사이트 수준 연결을 사용 하 여 IIS에 연결할 수 있습니다.In the case of non-administrator users, the Web Management Service (WMSvc) will only allow the user to connect to IIS using a site-level connection, rather than a server-level connection. 특정 사이트에 액세스 하려면 끝점 주소에 사이트별 쿼리 문자열을 포함 하면 됩니다.To access a particular site, you can include a site-specific query string in the endpoint address:

https://[server]:8172/MSDeploy.axd?site=DemoSite

예를 들어 빌드 프로세스가 성공적으로 완료 된 후에 웹 응용 프로그램을 스테이징 환경에 자동으로 배포 하도록 구성 되어 있다고 가정 합니다.For example, suppose a build process is configured to automatically deploy a web application to a staging environment after every successful build. 원격 에이전트 방법을 사용 하는 경우 대상 서버에서 빌드 프로세스 id를 관리자로 설정 해야 합니다.If you used the remote agent approach, you'd need to make the build process identity an administrator on your destination servers. 이와 대조적으로 웹 배포 처리기 방법을 사용 하면—관리자가 아닌 사용자에 게 특정 IIS 웹 사이트에 대—한 사용 권한만 부여할 수 있으며,이 경우 빌드 프로세스는 이러한 자격 증명을 제공 하 여 웹 패키지를 배포할 수 있습니다.In contrast, using the Web Deploy Handler approach you can give a non-administrator user—FABRIKAM\stagingdeployer in this case—permission to a specific IIS website only, and the build process can provide these credentials to deploy the web package.

msdeploy.exe 
  -source:package='…\ContactManager.Mvc.zip' 
  -dest:auto,
        computerName='https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite',
        userName='FABRIKAM\stagingdeployer',
        password='Pa$$w0rd',
        authtype='Basic', 
  -verb:sync 
  -setParamFile:"…\ContactManager.Mvc.SetParameters.xml"   
  -allowUntrusted

Note

웹 배포 명령줄 작업 및 구문에 대 한 자세한 내용은 웹 배포 명령줄 참조를 참조 하세요.For more information on Web Deploy command-line operations and syntax, see Web Deploy Command Line Reference. .Deploy 파일을 사용 하는 방법에 대 한 자세한 내용은 방법: 배포 파일을 사용 하 여 배포 패키지 설치를 참조 하세요.For more information on using the .deploy.cmd file, see How to: Install a Deployment Package Using the deploy.cmd File.

웹 배포 처리기는 스테이징 환경, 호스팅된 환경 및 인트라넷 기반 프로덕션 환경에서 배포 하는 데 유용한 방법을 제공 합니다 .이 환경에서는 서버에 대 한 원격 액세스를 사용할 수 있지만 관리자 자격 증명은 사용할 수 없습니다.The Web Deploy Handler provides a useful approach to deployment in staging environments, hosted environments, and intranet-based production environments, where remote access to the server is available but administrator credentials are not.

웹 배포 처리기 방법을 사용 하는 시나리오의 종단 간 예제는 시나리오: 웹 배포용 스테이징 환경 구성을 참조 하세요.For an end-to-end example of a scenario that uses the Web Deploy Handler approach, see Scenario: Configuring a Staging Environment for Web Deployment.

오프 라인 배포 사용Using Offline Deployment

경우에 따라 원격 위치에서 IIS 웹 사이트에 응용 프로그램 및 콘텐츠를 배포 하는 것은 불가능 합니다.In some cases, it's not possible or practical to deploy applications and content to an IIS website from a remote location. 예를 들어 원본 및 대상 컴퓨터가 격리 된 네트워크나 네트워크 세그먼트에 있거나 방화벽 정책에서 원격 액세스를 허용 하지 않을 수 있습니다.For example, the source and destination computers may be in isolated networks or network segments, or firewall policy may not permit remote access.

이와 같은 시나리오에서는 웹 배포의 패키징 및 게시 기능을 계속 사용할 수 있습니다. 원격 위치에서는 사용할 수 없습니다.In scenarios like these, you can still use the packaging and publishing capabilities of Web Deploy; you just can't use them from a remote location. 대신 대상 서버의 관리자가 웹 패키지를 서버에 복사 하 고 IIS 관리자를 통해 가져와야 합니다.Instead, an administrator on the destination server must copy the web package onto the server and import it through IIS Manager.

오프 라인 배포 방식은 일반적으로 경계 네트워크의 서버가 내부 네트워크의 컴퓨터와 제한 된 연결을 가질 수 있는 인터넷 연결 프로덕션 환경에서 유용 합니다.The offline deployment approach is typically useful in Internet-facing production environments, where servers in a perimeter network may have restricted connectivity with computers in the internal network.

오프 라인 배포 방법을 사용 하는 시나리오의 종단 간 예제는 시나리오: 웹 배포용 프로덕션 환경 구성을 참조 하세요.For an end-to-end example of a scenario that uses the offline deployment approach, see Scenario: Configuring a Production Environment for Web Deployment.

추가 참고 자료Further Reading

웹 배포 명령줄 작업 및 구문에 대 한 자세한 내용은 웹 배포 명령줄 참조를 참조 하세요.For more information on Web Deploy command-line operations and syntax, see Web Deploy Command Line Reference. .Deploy 파일을 사용 하는 방법에 대 한 자세한 내용은 방법: 배포 파일을 사용 하 여 배포 패키지 설치를 참조 하세요.For more information on using the .deploy.cmd file, see How to: Install a Deployment Package Using the deploy.cmd File.

원격 컴퓨터에서 웹 패키지를 배포할 수 있는 다양 한 방법에 대 한 일반적인 지침은 원격 으로 웹 배포 사용을 참조 하세요.For more general guidance on the different ways in which you can deploy web packages from a remote computer, see Using Web Deploy Remotely. 요청 시 웹 배포를 사용 하는 방법에 대 한 자세한 내용은 주문형 웹 배포을 참조 하세요.For more information on using Web Deploy On Demand, see Web Deploy On Demand.