배포 매니페스트 스키마 참조 - AWS Elastic Beanstalk

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

배포 매니페스트 스키마 참조

배포 매니페스트는 Elastic Beanstalk가 Windows 애플리케이션을 배포하고 구성하는 방법을 정의하는 JSON 파일입니다. 이 섹션에서는 매니페스트 스키마에서 지원되는 모든 속성 및 구성 옵션에 대한 포괄적인 참조를 제공합니다.

매니페스트 구조

배포 매니페스트는 다음과 같은 최상위 구조의 특정 JSON 스키마를 따릅니다.

예 기본 매니페스트 구조
{ "manifestVersion": 1, "skipIISReset": false, "iisConfig": { "appPools": [...] }, "deployments": { "msDeploy": [...], "aspNetCoreWeb": [...], "custom": [...] } }

최상위 속성

manifestVersion(필수)

형식: 숫자

기본값: 1

유효한 값: 1

매니페스트 스키마의 버전을 지정합니다. 현재 버전 1만 지원됩니다.

skipIISReset (선택 사항)

유형: 부울

기본값: false

애플리케이션 배포 중에 IIS가 재설정되는지 여부를 제어합니다. 이 플래그는 msDeployaspNetCoreWeb 배포 유형 모두에 영향을 줍니다.

동작:

  • 지정되지 않음 또는 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, aspNetCoreWebcustom 배포 유형이 포함될 수 있습니다.

iisConfig (선택 사항)

유형: 객체

애플리케이션을 배포하기 전에 적용할 IIS 구성 설정을 정의합니다. 는 현재 애플리케이션 풀 구성을 지원합니다.

IIS 구성

iisConfig 섹션에서는 애플리케이션을 배포하기 전에 IIS 설정을 구성할 수 있습니다. 이는 특정 구성으로 애플리케이션 풀을 설정하는 데 특히 유용합니다.

애플리케이션 풀

애플리케이션 풀은 애플리케이션 간에 격리를 제공하고 애플리케이션 그룹에 대한 런타임 설정을 구성할 수 있습니다.

예 애플리케이션 풀 구성
{ "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 (선택 사항)

유형: 부울

64비트 버전의 Windows에서 32비트 애플리케이션을 실행할 수 있습니다. 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 파일) 경로입니다. 이 번들에는 배포할 애플리케이션 파일이 포함되어 있습니다.

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 애플리케이션이 포함된 디렉터리 경로일 수 있습니다.

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" } } }