기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
배포 매니페스트 스키마 참조
배포 매니페스트는 Elastic Beanstalk이 Windows 애플리케이션을 어떻게 배포하고 구성해야 하는지를 정의하는 JSON 파일입니다. 이 섹션은 매니페스트 스키마에서 지원되는 모든 속성과 구성 옵션에 대한 종합적인 참조를 제공합니다.
매니페스트 구조
배포 매니페스트는 다음과 같은 최상위 구조를 가진 특정 JSON 스키마를 따릅니다.
예 기본 매니페스트 구조
{
"manifestVersion": 1,
"skipIISReset": false,
"iisConfig": {
"websites": [...],
"appPools": [...]
},
"deployments": {
"msDeploy": [...],
"aspNetCoreWeb": [...],
"custom": [...]
}
}최상위 속성
manifestVersion(필수)-
유형: 숫자
기본값: -1
유효한 값: 1
매니페스트 스키마 버전을 지정합니다. 현재는 버전 1만 지원됩니다.
skipIISReset(선택 사항)-
유형: 부울
기본값: false
애플리케이션 배포 중 IIS를 재설정할지 여부를 제어합니다. 이 플래그는
msDeploy및aspNetCoreWeb배포 유형 모두에 영향을 미칩니다.동작:
-
지정되지 않음 또는
false(기본값): 설치, 제거, 업데이트 작업 중 IIS 재설정이 수행됩니다. 이는 기존의 동작입니다. -
true: 배포 작업 중에는 IIS 재설정을 건너뜁니다.
이점:
-
가동 중지 시간 단축 - 배포 과정에서 애플리케이션의 서비스 중단 시간이 단축됩니다.
-
더 빠른 배포 - IIS가 완전히 다시 시작되고 재초기화되는 데 필요한 시간을 제거합니다.
참고
skipIISReset를 사용할 때 RestartAppServer 작업은 이 플래그 설정과 관계없이 IIS 재설정을 수행합니다.예시:
{ "manifestVersion": 1, "skipIISReset": true, "deployments": { "aspNetCoreWeb": [ { "name": "my-dotnet-core-app", "parameters": { "archive": "dotnet-core-app.zip", "iisPath": "/" } } ] } } -
deployments(필수)-
유형: 객체
애플리케이션의 배포 구성이 포함되어 있습니다. 이 객체는
msDeploy,aspNetCoreWeb및custom배포 유형을 포함할 수 있습니다. iisConfig(선택 사항)-
유형: 객체
애플리케이션을 배포하기 전에 적용할 IIS 구성 설정을 정의합니다. 웹 사이트 및 애플리케이션 풀 구성을 모두 지원합니다.
IIS 구성
iisConfig 섹션에서는 애플리케이션을 배포하기 전에 IIS 설정을 구성할 수 있습니다. 여기에는 특정 구성으로 애플리케이션 풀을 설정하고, 사용자 지정 바인딩으로 IIS 웹 사이트를 구성하는 작업이 포함됩니다.
IIS 웹 사이트
IIS 웹 사이트에서는 애플리케이션을 배포하기 전에 물리적 경로 및 네트워크 바인딩을 포함한 사용자 지정 웹 사이트 설정을 구성할 수 있습니다.
서로 다른 IIS 웹 사이트를 생성할 때 고려해야 할 주요 사항입니다.
-
웹 사이트 설정 순서:
websites배열에 나열된 순서대로 웹 사이트가 순차적으로 구성됩니다. 플랫폼은 각 웹 사이트 구성을 순차적으로 처리하므로, 웹사이트 간 종속성이 있는 경우 올바른 순서를 설정해야 합니다. -
방화벽 및 포트 액세스: 기본 Elastic Beanstalk Windows 방화벽 구성에서는 포트 80만 자동으로 노출됩니다. 웹 사이트를 비표준 포트를 사용하도록 구성하는 경우, 이러한 포트에 대한 외부 액세스를 허용하기 위해 ebextensions 또는 사용자 지정 배포 스크립트를 통해 사용자 지정 방화벽 규칙을 정의해야 합니다.
예 웹 사이트 구성
{
"iisConfig": {
"websites": [
{
"name": "MyCustomSite",
"physicalPath": "C:\inetpub\wwwroot\mysite",
"bindings": [
{
"protocol": "http",
"port": 8080,
"hostName": "mysite.local"
},
{
"protocol": "https",
"port": 8443
}
]
}
]
}
}웹 사이트 속성
name(필수)-
유형: 문자열
IIS 웹 사이트의 이름입니다. 이 이름은 IIS Manager에서 웹 사이트를 식별하는 데 사용되며, IIS 구성 내에서 고유해야 합니다.
physicalPath(필수)-
유형: 문자열
웹 사이트 파일이 저장되는 서버의 물리적 경로입니다. 이 경로는 IIS 작업자 프로세스에서 액세스할 수 있어야 합니다.
bindings(필수)-
유형: 배열
최소 항목 수 1개.
웹 사이트가 네트워크 요청에 어떻게 응답할지 정의하는 바인딩 구성 배열입니다. 각 바인딩은 프로토콜, 포트, 선택적 호스트 이름을 지정합니다.
웹 사이트 바인딩
웹 사이트 바인딩은 IIS 웹 사이트가 수신 요청을 수신하는 네트워크 엔드포인트를 정의합니다.
protocol(필수)-
유형: 문자열
유효한 값: "http", "https"
바인딩에 사용되는 프로토콜입니다.
port(필수)-
유형: 정수
유효 범위: 1-65535
웹 사이트가 요청을 수신하는 포트 번호입니다.
hostName(선택 사항)-
유형: 문자열
바인딩의 호스트 이름(도메인 이름)입니다.
애플리케이션 풀
애플리케이션 풀은 애플리케이션 간 격리를 제공하며, 애플리케이션 그룹에 대한 런타임 설정을 구성할 수 있도록 합니다.
예 애플리케이션 풀 구성
{
"iisConfig": {
"appPools": [
{
"name": "MyAppPool",
"enable32Bit": false,
"managedPipelineMode": "Integrated",
"managedRuntimeVersion": "v4.0",
"queueLength": 1000,
"cpu": {
"limitPercentage": 80,
"limitAction": "Throttle",
"limitMonitoringInterval": 5
},
"recycling": {
"regularTimeInterval": 1440,
"requestLimit": 10000,
"memory": 1048576,
"privateMemory": 524288
}
}
]
}
}애플리케이션 풀 속성
name(필수)-
유형: 문자열
애플리케이션 풀의 이름입니다. 이 이름은 배포 구성에서 풀을 참조하는 데 사용됩니다.
enable32Bit(선택 사항)-
유형: 부울
32비트 애플리케이션이 64비트 Windows에서 실행되도록 활성화합니다. 32비트 호환성이 필요한 레거시 애플리케이션의 경우
true로 설정합니다. managedPipelineMode(선택 사항)-
유형: 문자열
유효한 값: "Integrated", "Classic"
애플리케이션 풀의 요청 처리 모드를 지정합니다.
managedRuntimeVersion(선택 사항)-
유형: 문자열
유효한 값: "관리형 코드 없음", "v2.0", "v4.0"
애플리케이션 풀에 사용할 .NET Framework 버전을 지정합니다.
queueLength(선택 사항)-
유형: 정수
HTTP.sys가 추가 요청을 거부하기 전에 애플리케이션 풀을 위해 대기열에 넣을 수 있는 최대 요청 수입니다.
CPU 구성
cpu 객체는 애플리케이션 풀의 CPU 사용 한도 및 모니터링을 구성합니다.
limitPercentage(선택 사항)-
유형: 숫자
애플리케이션 풀의 작업자 프로세스가 사용할 수 있는 CPU 시간의 최대 비율입니다.
limitAction(선택 사항)-
유형: 문자열
유효한 값: "NoAction", "KillW3wp", "Throttle", "ThrottleUnderLoad"
CPU 한도에 도달했을 때 수행할 조치입니다.
limitMonitoringInterval(선택 사항)-
유형: 숫자
CPU 모니터링 및 스로틀링 조정을 위한 재설정 주기(분 단위)입니다.
재활용 구성
recycling 객체는 애플리케이션 풀 작업자 프로세스를 언제, 어떤 방식으로 재활용할지 구성합니다.
regularTimeInterval(선택 사항)-
유형: 정수
애플리케이션 풀이 재활용되는 시간 간격(분 단위)입니다. 시간 기반 재활용을 비활성화하려면 0으로 설정합니다.
requestLimit(선택 사항)-
유형: 정수
애플리케이션 풀이 재활용되기 전에 처리하는 최대 요청 수입니다.
memory(선택 사항)-
유형: 정수
작업자 프로세스 재활용을 트리거하는 가상 메모리 용량(킬로바이트 기준)입니다.
privateMemory(선택 사항)-
유형: 정수
작업자 프로세스 재활용을 트리거하는 프라이빗 메모리 용량(킬로바이트 기준)입니다.
배포 유형
deployments 객체에는 서로 다른 애플리케이션 유형에 대한 배포 구성 배열이 포함됩니다. 각 배포 유형에는 고유한 속성과 사용 사례가 있습니다.
MSDeploy 배포
MSDeploy 배포는 Web Deploy(MSDeploy)를 사용해 배포할 수 있는 기존 .NET Framework 애플리케이션에 사용됩니다.
예 MSDeploy 배포 구성
{
"deployments": {
"msDeploy": [
{
"name": "WebApp",
"description": "Main web application",
"parameters": {
"appBundle": "webapp.zip",
"iisPath": "/",
"appPool": "DefaultAppPool"
}
}
]
}
}MSDeploy 배포 속성
name(필수)-
유형: 문자열
배포의 고유 이름입니다. 이 이름은 매니페스트의 모든 배포에서 고유해야 합니다.
description(선택 사항)-
유형: 문자열
사람이 읽을 수 있는 배포 설명
parameters(필수)-
유형: 객체
MSDeploy 작업에 대한 구성 파라미터입니다.
scripts(선택 사항)-
유형: 객체
배포 수명 주기의 다양한 단계에서 실행되는 PowerShell 스크립트입니다.
MSDeploy 파라미터
appBundle(필수)-
유형: 문자열
매니페스트 파일을 기준으로 한 애플리케이션 번들(ZIP 파일)의 경로입니다. 이 번들은 배포할 애플리케이션 파일을 포함합니다.
iisWebSite(선택 사항)-
유형: 문자열
기본값: "기본 웹 사이트"
애플리케이션을 배포할 IIS 웹 사이트입니다. 기본적으로 애플리케이션은 "기본 웹 사이트"에 배포됩니다. 또는
iisConfig.websites섹션에 구성된 웹 사이트 이름과 같이 다른 웹 사이트 이름을 지정할 수 있습니다. iisPath(선택 사항)-
유형: 문자열
기본값: /
애플리케이션이 배포될 IIS의 가상 디렉터리 경로입니다. 루트 경로에는 "/"를 사용하고 하위 디렉터리에는 "/api"를 사용하세요.
appPool(선택 사항)-
유형: 문자열
이 애플리케이션을 실행할 애플리케이션 풀의 이름입니다.
ASP.NET Core 배포
ASP.NET Core 배포는 .NET Core 및 .NET 5+ 애플리케이션을 위해 특별히 설계되었습니다.
예 ASP.NET Core 배포 구성
{
"deployments": {
"aspNetCoreWeb": [
{
"name": "CoreAPI",
"description": "ASP.NET Core Web API",
"parameters": {
"appBundle": "coreapi.zip",
"iisPath": "/api",
"appPool": "CoreAppPool"
}
}
]
}
}ASP.NET Core 배포는 MSDeploy 배포와 동일한 속성 구조를 사용하며, 핵심 차이점은 애플리케이션에 사용되는 런타임 환경과 호스팅 모델입니다.
ASP.NET Core 배포 파라미터
appBundle(필수)-
유형: 문자열
매니페스트 파일을 기준으로 한 애플리케이션 번들의 경로입니다. 이는 ZIP 아카이브이거나, 게시된 ASP.NET Core 애플리케이션이 포함된 디렉터리 경로일 수 있습니다.
iisWebSite(선택 사항)-
유형: 문자열
기본값: "기본 웹 사이트"
ASP.NET Core 애플리케이션을 배포할 IIS 웹 사이트입니다. 기본적으로 애플리케이션은 "기본 웹 사이트"에 배포됩니다. 또는
iisConfig.websites섹션에 구성된 웹 사이트 이름과 같이 다른 웹 사이트 이름을 지정할 수 있습니다. iisPath(선택 사항)-
유형: 문자열
기본값: /
ASP.NET Core 애플리케이션용 IIS 가상 디렉터리 경로입니다.
appPool(선택 사항)-
유형: 문자열
ASP.NET Core 애플리케이션의 애플리케이션 풀입니다. 이 풀은 ASP.NET Core 호스팅에 적합하도록 구성됩니다.
사용자 지정 배포
사용자 지정 배포에서는 PowerShell 스크립트를 통해 배포 프로세스를 완전히 제어할 수 있습니다. 이 배포 유형은 사용자 지정 설치, 구성 또는 배포 로직이 필요한 복잡한 시나리오에 유용합니다.
예 사용자 지정 배포 구성
{
"deployments": {
"custom": [
{
"name": "CustomService",
"description": "Custom Windows service deployment",
"architecture": 32,
"scripts": {
"install": {
"file": "install-service.ps1"
},
"restart": {
"file": "restart-service.ps1"
},
"uninstall": {
"file": "uninstall-service.ps1",
"ignoreErrors": true
}
}
}
]
}
}사용자 지정 배포 속성
name(필수)-
유형: 문자열
사용자 지정 배포의 고유 이름입니다.
description(선택 사항)-
유형: 문자열
사용자 지정 배포에 대한 설명입니다.
architecture(선택 사항)-
유형: 정수
기본값: 32
유효한 값: 32, 64
PowerShell 스크립트 실행 모드에 대한 아키텍처 사양
scripts(필수)-
유형: 객체
배포 동작을 정의하는 PowerShell 스크립트입니다. 사용자 지정 배포는 다른 배포 유형과 달리 추가적인 스크립트 유형을 지원합니다.
배포 스크립트
배포 스크립트는 배포 수명 주기의 특정 시점에 실행되는 PowerShell 스크립트입니다. 배포 유형에 따라 지원되는 스크립트 이벤트가 다릅니다.
스크립트 이벤트
배포 유형에 따라 다음 스크립트 이벤트를 사용할 수 있습니다.
표준 배포 스크립트(msDeploy 및 aspNetCoreWeb)
preInstall-
애플리케이션을 설치하거나 업데이트하기 전에 실행됩니다.
postInstall-
애플리케이션을 설치하거나 업데이트한 후에 실행됩니다.
preRestart-
애플리케이션을 다시 시작하기 전에 실행됩니다.
postRestart-
애플리케이션을 다시 시작한 후 실행됩니다.
preUninstall-
애플리케이션을 제거하기 전에 실행됩니다.
postUninstall-
애플리케이션을 제거한 후 실행됩니다.
사용자 지정 배포 스크립트(사용자 지정 배포만 해당)
install-
사용자 지정 배포를 위한 기본 설치 스크립트입니다. 이 스크립트는 애플리케이션 또는 서비스를 설치하는 역할을 합니다.
restart-
애플리케이션 또는 서비스를 다시 시작하는 스크립트입니다. 환경이 재시작될 때 직접적으로 호출됩니다.
uninstall-
애플리케이션 또는 서비스를 제거하는 스크립트입니다. 환경 종료 또는 애플리케이션 제거 시 직접적으로 호출됩니다.
스크립트 속성
각 스크립트는 다음 속성을 가진 객체로 정의됩니다.
file(필수)-
유형: 문자열
매니페스트 파일 기준 PowerShell 스크립트 파일의 상대 경로입니다. 스크립트에는
.ps1확장자가 있어야 합니다. ignoreErrors(선택 사항)-
유형: 부울
기본값: false
true로 설정하면 스크립트가 실패하더라도 배포가 계속 진행됩니다. 중요하지 않은 스크립트나 정리 작업에 이 옵션을 사용하세요.
예 스크립트 구성 예제
{
"scripts": {
"preInstall": {
"file": "backup-config.ps1",
"ignoreErrors": true
},
"postInstall": {
"file": "configure-app.ps1"
}
}
}