웹 배포 게시용 웹 서버 구성(원격 에이전트)

작성자 : Jason Lee

이 항목에서는 IIS 웹 배포 도구(웹 배포) 원격 에이전트 서비스를 사용하여 웹 게시 및 배포를 지원하도록 IIS(인터넷 정보 서비스) 웹 서버를 구성하는 방법에 대해 설명합니다.

웹 배포 2.0 이상을 사용하는 경우 애플리케이션 또는 사이트를 웹 서버에 가져오는 데 사용할 수 있는 세 가지 기본 방법이 있습니다. 다음과 같습니다.

  • 웹 배포 원격 에이전트 서비스를 사용합니다. 이 방법을 사용하려면 웹 서버를 덜 구성해야 하지만 서버에 아무것도 배포하려면 로컬 서버 관리자의 자격 증명을 제공해야 합니다.
  • 웹 배포 처리기를 사용합니다. 이 방법은 훨씬 더 복잡하며 웹 서버를 설정하기 위해 더 많은 초기 노력이 필요합니다. 그러나 이 방법을 사용하는 경우 관리자가 아닌 사용자가 배포를 수행할 수 있도록 IIS를 구성할 수 있습니다. 웹 배포 처리기는 IIS 버전 7 이상에서만 사용할 수 있습니다.
  • 오프라인 배포를 사용합니다. 이 방법을 사용하려면 웹 서버를 최소한으로 구성해야 하지만 서버 관리자는 수동으로 웹 패키지를 서버에 복사하고 IIS 관리자를 통해 가져와야 합니다.

이러한 방법의 주요 기능, 장점 및 단점에 대한 자세한 내용은 웹 배포에 대한 올바른 접근 방식 선택을 참조하세요.

웹 배포 원격 에이전트가 적합한 방법인가요?

예, 콘텐츠를 배포할 사용자가 대상 서버에서 관리자의 자격 증명을 제공할 수 있는 경우입니다. 이 방법은 다음과 같은 유형의 시나리오에서 바람직한 경우가 많습니다.

  • 개발자가 대상 웹 서버 및 데이터베이스 서버를 완전히 제어할 수 있는 개발 또는 테스트 환경.
  • 단일 사용자 또는 소규모 사용자 그룹이 전체 애플리케이션 수명 주기를 제어할 수 있는 소규모 조직입니다.

많은 대규모 조직, 특히 스테이징 또는 프로덕션 환경에서는 웹 서버에 대한 사용자 관리자 권한을 부여하는 것이 현실적이지 않은 경우가 많습니다. 호스트된 웹 서버의 경우 특히 그럴 가능성이 낮습니다. 또한 빌드 서버에서 배포를 자동화하려는 경우 배포 프로세스에 관리자 자격 증명을 사용하지 않을 수 있습니다. 이러한 시나리오에서는 웹 배포 처리기를 사용하여 배포를 지원하도록 웹 서버를 구성하면 더 만족스러운 선택을 제공할 수 있습니다.

작업 개요

이 항목에서는 웹 배포 원격 에이전트 접근 방식을 사용하여 원격 컴퓨터에서 웹 패키지를 수락하고 배포하도록 IIS(인터넷 정보 서비스) 7.5 웹 서버를 구성하는 방법에 대해 설명합니다. 다음 작업이 필요합니다.

  • IIS 7.5 및 IIS 7 권장 구성을 설치합니다.
  • 웹 배포 2.1 이상을 설치합니다.
  • 배포된 콘텐츠를 호스트하는 IIS 웹 사이트를 만듭니다.
  • 웹 Deployment Agent 서비스가 실행 중인지 확인합니다.

특히 샘플 솔루션을 호스트하려면 다음을 수행해야 합니다.

  • .NET Framework 4.0을 설치합니다.
  • ASP.NET MVC 3을 설치합니다.

이 항목에서는 이러한 각 절차를 수행하는 방법을 보여 줍니다. 이 항목의 작업 및 연습에서는 Windows Server 2008 R2를 실행하는 클린 서버 빌드로 시작한다고 가정합니다. 계속하기 전에 다음을 확인합니다.

  • Windows Server 2008 R2 서비스 팩 1 및 사용 가능한 모든 업데이트가 설치됩니다.
  • 서버가 도메인에 가입되어 있습니다.
  • 서버에 고정 IP 주소가 있습니다.

참고

컴퓨터를 도메인에 조인하는 방법에 대한 자세한 내용은 도메인에 컴퓨터 조인 및 로그온을 참조하세요. 고정 IP 주소 구성에 대한 자세한 내용은 고정 IP 주소 구성을 참조하세요. 원격 에이전트 서비스는 IIS 6 이상에서 지원되며 도메인에 가입할 필요가 없습니다. 그러나 이 자습서의 단계는 IIS 7.5에서 개발 및 테스트되었으며 다른 버전에 대한 절차는 다를 수 있습니다.

제품 및 구성 요소 설치

이 섹션에서는 웹 서버에 필요한 제품 및 구성 요소를 설치하는 단계를 안내합니다. 시작하기 전에 Windows 업데이트 실행하여 서버가 완전히 최신 상태인지 확인하는 것이 좋습니다.

이 경우 다음 항목을 설치해야 합니다.

  • IIS 7 권장 구성. 이렇게 하면 웹 서버에서 웹 서버(IIS) 역할을 사용하도록 설정하고 ASP.NET 애플리케이션을 호스트하는 데 필요한 IIS 모듈 및 구성 요소 집합을 설치합니다.
  • .NET Framework 4.0. 이 .NET Framework 버전에서 빌드된 애플리케이션을 실행하는 데 필요합니다.
  • 웹 배포 도구 2.1 이상. 그러면 서버에 웹 배포(및 기본 실행 파일인 MSDeploy.exe)가 설치됩니다. 이 프로세스의 일부로 웹 Deployment Agent 서비스를 설치하고 시작합니다. 이 서비스를 사용하면 원격 컴퓨터에서 웹 패키지를 배포할 수 있습니다.
  • ASP.NET MVC 3. 이렇게 하면 MVC 3 애플리케이션을 실행하는 데 필요한 어셈블리가 설치됩니다.

참고

이 연습에서는 웹 플랫폼 설치 관리자를 사용하여 필요한 구성 요소를 설치하고 구성하는 방법을 설명합니다. 웹 플랫폼 설치 관리자를 사용할 필요는 없지만 종속성을 자동으로 검색하고 항상 최신 제품 버전을 가져올 수 있도록 하여 설치 프로세스를 간소화합니다. 자세한 내용은 Microsoft 웹 플랫폼 설치 관리자 3.0을 참조하세요.

필요한 제품 및 구성 요소를 설치하려면

  1. 웹 플랫폼 설치 관리자를 다운로드하여 설치합니다.

  2. 설치가 완료되면 웹 플랫폼 설치 관리자가 자동으로 시작됩니다.

    참고

    이제 시작 메뉴에서 언제든지 웹 플랫폼 설치 관리자를 시작할 수 있습니다. 이렇게 하려면 시작 메뉴에서 모든 프로그램을 클릭한 다음 Microsoft 웹 플랫폼 설치 관리자 클릭합니다.

  3. 웹 플랫폼 설치 관리자 3.0 창의 맨 위에서 제품을 클릭합니다.

  4. 창 왼쪽의 탐색 창에서 프레임워크를 클릭합니다.

  5. Microsoft .NET Framework 4행에서 .NET Framework 아직 설치되지 않은 경우 추가를 클릭합니다.

    참고

    Windows 업데이트 .NET Framework 4.0을 이미 설치했을 수 있습니다. 제품 또는 구성 요소가 이미 설치된 경우 웹 플랫폼 설치 관리자는 추가 단추를 설치됨 텍스트로 바꿔 이를 나타냅니다.

    제품 또는 구성 요소가 이미 설치된 경우 웹 플랫폼 설치 관리자는 추가 단추를 설치됨 텍스트로 바꿔 이를 나타냅니다.

  6. ASP.NET MVC 3(Visual Studio 2010) 행에서 추가를 클릭합니다.

  7. 탐색 창에서 서버를 클릭합니다.

  8. IIS 7 권장 구성 행에서 추가를 클릭합니다.

  9. 웹 배포 도구 2.1 행에서 추가를 클릭합니다.

  10. Install을 클릭합니다. 웹 플랫폼 설치 관리자는 설치할 관련 종속성과 함께 제품 목록을 표시하고 사용 조건에 동의하라는 메시지를 표시합니다.

    설치를 클릭합니다. 웹 플랫폼 설치 관리자는 설치할 연결된 종속성과 함께 제품 목록을 표시하고 사용 조건에 동의하라는 메시지를 표시합니다.

  11. 사용 조건을 검토하고 약관에 동의하는 경우 동의를 클릭합니다.

  12. 설치가 완료되면 마침을 클릭한 다음 웹 플랫폼 설치 관리자 3.0 창을 닫습니다.

IIS를 설치하기 전에 .NET Framework 4.0을 설치한 경우 ASP.NET IIS 등록 도구(aspnet_regiis.exe)를 실행하여 최신 버전의 ASP.NET IIS에 등록해야 합니다. 이렇게 하지 않으면 IIS가 문제 없이 정적 콘텐츠(예: HTML 파일)를 제공하지만, ASP.NET 콘텐츠를 찾아보려고 할 때 HTTP 오류 404.0 – 찾을 수 없음 을 반환합니다. 이 절차를 사용하여 ASP.NET 4.0이 등록되었는지 확인할 수 있습니다.

IIS에 ASP.NET 4.0을 등록하려면

  1. 시작을 클릭한 다음 명령 프롬프트를 입력합니다.

  2. 검색 결과에서 명령 프롬프트를 마우스 오른쪽 단추로 클릭한 다음 관리자 권한으로 실행을 클릭합니다.

  3. 명령 프롬프트 창에서 %WINDIR%\Microsoft.NET\Framework\v4.0.30319 디렉터리로 이동합니다.

  4. 이 명령을 입력한 다음 Enter 키를 누릅니다.

    aspnet_regiis -iru
    
  5. 언제든지 64비트 웹 애플리케이션을 호스트하려는 경우 IIS에 64비트 버전의 ASP.NET 등록해야 합니다. 이렇게 하려면 명령 프롬프트 창에서 %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 디렉터리로 이동합니다.

  6. 이 명령을 입력한 다음 Enter 키를 누릅니다.

    aspnet_regiis -iru
    

이 시점에서 Windows 업데이트 사용하여 설치한 새 제품 및 구성 요소에 사용 가능한 업데이트를 다운로드하고 설치하는 것이 좋습니다.

IIS 웹 사이트 구성

서버에 웹 콘텐츠를 배포하려면 콘텐츠를 호스트하도록 IIS 웹 사이트를 만들고 구성해야 합니다. 웹 배포는 기존 IIS 웹 사이트에만 웹 패키지를 배포할 수 있습니다. 웹 사이트를 만들 수 없습니다. 대략적으로 다음 작업을 완료해야 합니다.

  • 콘텐츠를 호스트할 파일 시스템에 폴더를 만듭니다.
  • 콘텐츠를 제공하는 IIS 웹 사이트를 만들고 로컬 폴더와 연결합니다.
  • 로컬 폴더의 애플리케이션 풀 ID에 읽기 권한을 부여합니다.

IIS에서 기본 웹 사이트에 콘텐츠를 배포하는 것을 막을 수 있는 것은 없지만 이 방법은 테스트 또는 데모 시나리오 외에는 권장되지 않습니다. 프로덕션 환경을 시뮬레이션하려면 애플리케이션의 요구 사항과 관련된 설정을 사용하여 새 IIS 웹 사이트를 만들어야 합니다.

IIS 웹 사이트를 만들고 구성하려면

  1. 로컬 파일 시스템에서 콘텐츠를 저장할 폴더를 만듭니다(예 : C:\DemoSite).

  2. 시작 메뉴에서 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.

  3. IIS 관리자의 연결 창에서 서버 노드(예: TESTWEB1)를 확장합니다.

    IIS 관리자의 연결 창에서 서버 노드(예: TESTWEB1)를 확장합니다.

  4. 사이트 노드를 마우스 오른쪽 단추로 클릭한 다음 웹 사이트 추가를 클릭합니다.

  5. 사이트 이름 상자에 IIS 웹 사이트의 이름(예: DemoSite)을 입력합니다.

  6. 물리적 경로 상자에 로컬 폴더의 경로(예: C:\DemoSite)를 입력하거나 찾습니다.

  7. 포트 상자에 웹 사이트를 호스트할 포트 번호(예: 85)를 입력합니다.

    참고

    표준 포트 번호는 HTTP의 경우 80, HTTPS의 경우 443입니다. 그러나 포트 80에서 이 웹 사이트를 호스트하는 경우 사이트에 액세스하려면 기본 웹 사이트를 중지해야 합니다.

  8. 웹 사이트에 대한 DNS(도메인 이름 시스템) 레코드를 구성하지 않으려면 호스트 이름 상자를 비워 두고 확인을 클릭합니다.

    웹 사이트에 대한 DNS(도메인 이름 시스템) 레코드를 구성하지 않으려면 호스트 이름 상자를 비워 두고 확인을 클릭합니다.

    참고

    프로덕션 환경에서는 포트 80에서 웹 사이트를 호스트하고 일치하는 DNS 레코드와 함께 호스트 헤더를 구성할 수 있습니다. IIS 7에서 호스트 헤더를 구성하는 방법에 대한 자세한 내용은 웹 사이트에 대한 호스트 헤더 구성(IIS 7)을 참조하세요. Windows Server 2008 R2의 DNS 서버 역할에 대한 자세한 내용은 DNS 서버 개요를 참조하세요.

  9. 작업 창의 사이트 편집에서 바인딩을 클릭합니다.

  10. 사이트 바인딩 대화 상자에서 추가를 클릭합니다.

    사이트 바인딩 대화 상자에서 추가를 클릭합니다.

  11. 사이트 바인딩 추가 대화 상자에서 IP 주소포트를 기존 사이트 구성과 일치하도록 설정합니다.

  12. 호스트 이름 상자에 웹 서버의 이름(예: TESTWEB1)을 입력하고 확인을 클릭합니다.

    호스트 이름 상자에 웹 서버의 이름(예: TESTWEB1)을 입력한 다음 확인을 클릭합니다.

    참고

    첫 번째 사이트 바인딩을 사용하면 IP 주소 및 포트 또는 http://localhost:85를 사용하여 로컬로 사이트에 액세스할 수 있습니다. 두 번째 사이트 바인딩을 사용하면 컴퓨터 이름을 사용하여 도메인의 다른 컴퓨터에서 사이트에 액세스할 수 있습니다(예: http://testweb1:85).

  13. 사이트 바인딩 대화 상자에서 닫기를 클릭합니다.

  14. 연결 창에서 애플리케이션 풀을 클릭합니다.

  15. 애플리케이션 풀 창에서 애플리케이션 풀의 이름을 마우스 오른쪽 단추로 클릭한 다음 기본 설정을 클릭합니다. 기본적으로 애플리케이션 풀의 이름은 웹 사이트 이름(예: DemoSite)과 일치합니다.

  16. .NET Framework 버전 목록에서 v4.0.30319 .NET Framework 선택한 다음 확인을 클릭합니다.

    .NET Framework 버전 목록에서 v4.0.30319 .NET Framework 선택한 다음 확인을 클릭합니다.

    참고

    샘플 솔루션에는 .NET Framework 4.0이 필요합니다. 이는 일반적으로 웹 배포에 대한 요구 사항이 아닙니다.

웹 사이트에서 콘텐츠를 제공하려면 애플리케이션 풀 ID에 콘텐츠를 저장하는 로컬 폴더에 대한 읽기 권한이 있어야 합니다. IIS 7.5에서 애플리케이션 풀은 기본적으로 고유한 애플리케이션 풀 ID로 실행됩니다(일반적으로 네트워크 서비스 계정을 사용하여 애플리케이션 풀을 실행하는 이전 버전의 IIS와 달리). 애플리케이션 풀 ID는 실제 사용자 계정이 아니며 사용자 또는 그룹 목록에 표시되지 않습니다. 대신 애플리케이션 풀이 시작될 때 동적으로 생성됩니다. 각 애플리케이션 풀 ID는 로컬 IIS_IUSRS 보안 그룹에 숨겨진 항목으로 추가됩니다.

파일 또는 폴더의 애플리케이션 풀 ID에 권한을 부여하려면 다음 두 가지 옵션이 있습니다.

  • IIS AppPool[애플리케이션 풀 이름] 형식(예: IIS AppPool\DemoSite)을 사용하여 애플리케이션 풀 ID에 권한을 직접 할당합니다.
  • IIS_IUSRS 그룹에 권한을 할당합니다.

가장 일반적인 방법은 로컬 IIS_IUSRS 그룹에 권한을 할당하는 것입니다. 이 방법을 사용하면 파일 시스템 권한을 다시 구성하지 않고도 애플리케이션 풀을 변경할 수 있기 때문입니다. 다음 절차에서는 이 그룹 기반 접근 방식을 사용합니다.

참고

IIS 7.5의 애플리케이션 풀 ID에 대한 자세한 내용은 애플리케이션 풀 ID를 참조하세요.

IIS 웹 사이트에 대한 폴더 권한을 구성하려면

  1. Windows Explorer 로컬 폴더의 위치를 찾습니다.

  2. 폴더를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

  3. Security 탭에서 Edit을 클릭한 다음 Add를 클릭합니다.

  4. 위치를 클릭합니다. 위치 대화 상자에서 로컬 서버를 선택한 다음 확인을 클릭합니다.

    위치를 클릭합니다. 위치 대화 상자에서 로컬 서버를 선택한 다음 확인을 클릭합니다.

  5. 사용자 또는 그룹 선택 대화 상자에서 IIS_IUSRS 입력하고 이름 확인을 클릭한 다음 확인을 클릭합니다.

  6. (폴더 이름)에 대한 사용 권한 대화 상자에서 새 그룹에 읽기 & 실행, 폴더 내용 나열및 읽기 권한이 기본적으로 할당되었는지 확인합니다. 변경되지 않은 상태로 두고 확인을 클릭합니다.

  7. 확인을 클릭하여 (폴더 이름) 속성 대화 상자를 닫습니다.

서버에 웹 패키지를 배포하기 전에 마지막 작업으로 웹 Deployment Agent 서비스가 실행 중인지 확인해야 합니다. 원격 컴퓨터에서 패키지를 배포하는 경우 Web Deployment Agent Service는 패키지의 콘텐츠를 추출하고 설치해야 합니다. 서비스는 웹 배포 도구를 설치하고 네트워크 서비스 ID에서 실행될 때 기본적으로 시작됩니다.

다양한 명령줄 유틸리티 또는 Windows PowerShell cmdlet을 사용하여 서비스가 여러 가지 방법으로 실행되는지 여부를 검사 수 있습니다. 이 절차에서는 간단한 UI 기반 접근 방식을 설명합니다.

웹 Deployment Agent 서비스가 실행 중인지 검사

  1. 시작 메뉴에서 관리 도구를 가리킨 다음 서비스를 클릭합니다.

  2. 웹 Deployment Agent 서비스 행을 찾아 상태가시작됨으로 설정되어 있는지 확인합니다.

    웹 Deployment Agent 서비스 행을 찾아 상태가 시작됨으로 설정되어 있는지 확인합니다.

  3. 서비스가 아직 시작되지 않은 경우 시작을 클릭합니다.

방화벽 예외 구성

기본적으로 원격 에이전트 서비스는 이 URL에서 TCP 포트 80에서 수신 대기합니다.

http://servername.com/MSDEPLOYAGENTSERVICE

대부분의 경우 웹 서버는 일반적으로 포트 80에서 HTTP 요청을 수신 대기하므로 원격 에이전트 서비스에 대한 추가 방화벽 규칙을 구성할 필요가 없습니다. 비표준 포트에서 수신 대기하도록 설치를 사용자 지정한 경우 필요에 따라 방화벽 예외를 구성해야 합니다.

결론

이 시점에서 웹 서버는 원격 컴퓨터에서 웹 패키지를 수락하고 설치할 준비가 된 것입니다. 서버에 웹 애플리케이션을 배포하기 전에 다음 핵심 사항을 검사 수 있습니다.

  • IIS에 ASP.NET 4.0을 등록했나요?
  • 애플리케이션 풀 ID에 웹 사이트의 원본 폴더에 대한 읽기 권한이 있나요?
  • 웹 Deployment Agent 서비스가 실행되고 있나요?

추가 정보

원격 에이전트 서비스에 웹 패키지를 배포하도록 MSBuild(사용자 지정 Microsoft Build Engine) 프로젝트 파일을 구성하는 방법에 대한 지침은 대상 환경에 대한 배포 속성 구성을 참조하세요.