

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 사용자 지정 Elastic Beanstalk 애플리케이션 배포
<a name="deployment-beanstalk-custom"></a>

이 주제에서는 Elastic Beanstalk의 Microsoft Windows 컨테이너의 배포 매니페스트가 사용자 지정 애플리케이션 배포를 지원하는 방법을 설명합니다.

사용자 지정 애플리케이션 배포는 AWS 리소스를 생성하고 관리하면서 애플리케이션이 배포되는 방식도 완벽하게 제어할 수 있는 Elastic Beanstalk를 원하는 고급 사용자를 위한 강력한 기능입니다. 사용자 지정 애플리케이션 배포의 경우 세 가지 Elastic Beanstalk 작업을 수행하는 Windows PowerShell 스크립트를 만듭니다. 설치 작업은 배포가 시작될 때 사용되고 다시 시작은 도구 키트나 웹 콘솔에서 `RestartAppServer` API가 호출될 때 사용하며 제거는 새 배포가 발생할 때마다 이전 배포에서 호출됩니다.

예를 들어, 문서 팀에서 배포에 포함하려는 정적 웹 사이트를 작성하는 동안 배포하려는 ASP.NET 애플리케이션이 있을 수 있습니다. 다음과 같이 배포 매니페스트를 작성하여 이 작업을 수행할 수 있습니다.

```
{
  "manifestVersion": 1,
  "deployments": {

    "msDeploy": [
      {
        "name": "app",
        "parameters": {
          "appBundle": "CoolApp.zip",
          "iisPath": "/"
        }
      }
    ],
    "custom": [
      {
        "name": "PowerShellDocs",
        "scripts": {
          "install": {
            "file": "install.ps1"
          },
          "restart": {
            "file": "restart.ps1"
          },
          "uninstall": {
            "file": "uninstall.ps1"
          }
        }
      }
    ]
  }
}
```

각 작업에 대해 나열된 스크립트는 배포 매니페스트 파일과 관련된 애플리케이션 번들에 있어야 합니다. 이 예에서는 애플리케이션 번들에 문서 팀에서 만든 정적 웹 사이트가 있는 documentation.zip 파일도 포함됩니다.

`install.ps1` 스크립트가 zip 파일 압축을 풀고 IIS 경로를 설정합니다.

```
Add-Type -assembly "system.io.compression.filesystem"
[io.compression.zipfile]::ExtractToDirectory('./documentation.zip', 'c:\inetpub\wwwroot\documentation')

powershell.exe -Command {New-WebApplication -Name documentation -PhysicalPath  c:\inetpub\wwwroot\documentation -Force}
```

애플리케이션이 IIS에서 실행 중이므로 다시 시작 작업이 IIS 재설정을 호출합니다.

```
iisreset /timeout:1
```

제거 스크립트의 경우 설치 단계에서 사용된 모든 설정과 파일을 정리해야 합니다. 이렇게 하면 새 버전 설치 단계 중에 이전 배포와의 충돌을 피할 수 있습니다. 이 예에서는 정적 웹 사이트의 IIS 애플리케이션과 웹 사이트 파일을 제거해야 합니다.

```
powershell.exe -Command {Remove-WebApplication -Name documentation}
Remove-Item -Recurse -Force 'c:\inetpub\wwwroot\documentation'
```

이러한 스크립트 파일과 애플리케이션 번들에 포함된 documentation.zip 파일을 사용하면 배포 시 ASP.NET 애플리케이션이 생성되고 문서 사이트가 배포됩니다.

이 예제에서는 단순한 정적 웹 사이트를 배포하는 간단한 예제를 선택하지만 사용자 지정 애플리케이션 배포를 통해 모든 유형의 애플리케이션을 배포하고 Elastic Beanstalk에서 AWS 리소스를 관리할 수 있도록 합니다.