Windows 서버에서 소프트웨어 사용자 지정 - AWS Elastic Beanstalk

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

Windows 서버에서 소프트웨어 사용자 지정

애플리케이션이 사용하는 소프트웨어를 사용자 지정하고 구성하고자 할 수 있습니다. 이러한 파일은 애플리케이션에 필요한 종속 항목(예: 추가 패키지)이거나 실행할 서비스일 수 있습니다. Elastic Beanstalk 환경을 사용자 지정하고 구성하는 것에 대한 일반적인 정보는 Elastic Beanstalk 환경 구성 단원을 참조하세요.

참고

YAML 는 일관된 들여쓰기에 의존합니다. 예제 구성 파일의 콘텐츠를 바꿀 때 들여쓰기 레벨을 일치시키고, 텍스트 편집기가 탭 문자 대신 공백을 사용해 들여쓰기를 하도록 합니다.

구성 파일은 애플리케이션이 실행되는 Windows 서버에 영향을 주는 다음 키를 지원합니다.

키는 여기에 나열된 순서대로 처리됩니다.

참고

이전(버전 없음) .NET 플랫폼 버전은 구성 파일을 올바른 순서로 처리하지 않습니다. 자세히 알아보려면 Elastic Beanstalk Windows Server 플랫폼의 메이저 버전 간 마이그레이션을 참조하세요.

구성 파일을 개발하고 테스트하는 동안 환경의 이벤트를 주시합니다. Elastic Beanstalk는 잘못된 키 등 확인 오류가 포함된 구성 파일을 무시하며, 동일한 파일에서 다른 모든 키를 처리하지 않습니다. 이런 일이 일어날 경우, Elastic Beanstalk는 이벤트 로그에 경고 이벤트를 추가합니다.

패키지

packages 키를 사용하여 사전 패키지된 애플리케이션 및 구성 요소를 다운로드하고 설치합니다.

Windows 환경에서 Elastic Beanstalk는 MSI 패키지 다운로드 및 설치를 지원합니다. (Linux 환경은 패키지 관리자를 추가로 지원합니다. 자세한 내용은 Linux 서버에서 소프트웨어 사용자 지정 페이지의 패키지을(를) 참조하세요.)

에 공개적으로 액세스할 수 있는 한 Amazon Simple Storage Service(Amazon S3) 객체와 같은 외부 위치를 참조할 수 URL 있습니다.

여러 msi: 패키지를 지정하는 경우 설치 순서는 보장되지 않습니다.

구문

선택한 이름을 패키지 이름으로 지정하고 MSI 파일 위치에 URL 를 값으로 지정합니다. msi: 키에 여러 패키지를 지정할 수 있습니다.

packages: msi: package name: package url ...

예시

다음 예제에서는 에서 mysqlURL을 다운로드할 를 지정합니다https://dev.mysql.com/.

packages: msi: mysql: https://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-8.0.11.msi

다음 예제에서는 Amazon S3 객체를 MSI 파일 위치로 지정합니다.

packages: msi: mymsi: https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.msi

소스

sources 키를 사용하여 퍼블릭에서 아카이브 파일을 다운로드URL하고 EC2 인스턴스의 대상 디렉터리에서 압축을 풉니다.

구문

sources: target directory: location of archive file

지원되는 형식

Windows 환경에서 Elastic Beanstalk는 .zip 형식을 지원합니다. (Linux 환경은 추가 형식을 지원합니다. 자세한 내용은 Linux 서버에서 소프트웨어 사용자 지정 페이지의 소스을(를) 참조하세요.)

에 공개적으로 액세스할 수 있는 한 Amazon Simple Storage Service(Amazon S3) 객체와 같은 외부 위치를 참조할 수 URL 있습니다.

다음 예제에서는 Amazon S3에서 퍼블릭 .zip 파일을 다운로드하여 c:/myproject/myapp에 압축을 풉니다.

sources: "c:/myproject/myapp": https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.zip

파일

files 키를 사용하여 EC2 인스턴스에 파일을 생성합니다. 콘텐츠는 구성 파일에서 인라인이거나 에서 인라인일 수 있습니다URL. 파일은 사전 순서로 디스크에 작성됩니다. Amazon S3에서 프라이빗 파일을 다운로드하려면 권한 부여를 위해 인스턴스 프로파일을 제공합니다.

구문

files: "target file location on disk": source: URL authentication: authentication name: "target file location on disk": content: | this is my content encoding: encoding format

옵션

content

(선택 사항) 문자열

source

(선택 사항) 파일이 로드되는 URL 입니다. 이 옵션은 content 키와 함께 지정할 수 없습니다.

encoding

(선택 사항) 인코딩 형식입니다. 이 옵션은 제공된 콘텐츠 키 값에만 사용됩니다. 기본값은 plain입니다.

유효한 값: plain | base64

authentication

(선택 사항) 사용할 AWS CloudFormation 인증 방법의 이름입니다. 리소스 키로 자동 크기 조정 그룹 메타데이터에 인증 방법을 추가할 수 있습니다.

예시

다음 예제에서는 파일 콘텐츠를 제공하는 두 가지 방법URL, 즉 에서 또는 구성 파일의 인라인을 보여줍니다.

files: "c:\\targetdirectory\\targetfile.txt": source: http://foo.bar/myfile "c:/targetdirectory/targetfile.txt": content: | # this is my file # with content
참고

파일 경로에서 백슬래시(\)를 사용할 경우 이전 예제에 표시된 것처럼 다른 백슬래시(이스케이프 문자)를 앞에 입력해야 합니다.

다음 예제에서는 리소스 키를 사용하여 S3Auth라는 인증 방법을 추가하고, 이를 사용하여 Amazon S3에서 프라이빗 파일을 다운로드합니다.

files: "c:\\targetdirectory\\targetfile.zip": source: https://elasticbeanstalk-us-east-2-123456789012.s3.amazonaws.com/prefix/myfile.zip authentication: S3Auth Resources: AWSEBAutoScalingGroup: Metadata: AWS::CloudFormation::Authentication: S3Auth: type: "s3" s: ["amzn-s3-demo-bucket"] roleName: "Fn::GetOptionSetting": Namespace: "aws:autoscaling:launchconfiguration" OptionName: "IamInstanceProfile" DefaultValue: "aws-elasticbeanstalk-ec2-role"

명령

commands 키를 사용하여 EC2 인스턴스에서 명령을 실행합니다. 명령은 이름을 기준으로 사전순으로 처리되며, 애플리케이션 및 웹 서버를 설정하고 애플리케이션 버전 파일을 추출하기 이전에 실행됩니다.

지정된 명령은 관리자 사용자로 실행됩니다.

명령 관련 문제를 해결하려면 인스턴스 로그의 출력을 확인합니다.

구문

commands: command name: command: command to run

옵션

command

실행할 명령을 지정하는 어레이나 문자열입니다. 어레이를 사용하는 경우 공백 문자를 이스케이프하거나 명령 파라미터를 따옴표로 묶을 필요가 없습니다.

cwd

(선택 사항) 작업 디렉터리입니다. 기본적으로 Elastic Beanstalk에서는 프로젝트의 디렉터리 위치를 찾으려고 합니다. 찾을 수 없는 경우 기본적으로 c:\Windows\System32를 사용합니다.

env

(선택 사항) 명령에 대한 환경 변수를 설정합니다. 이 속성은 기존 환경을 추가하는 것이 아니라 덮어씁니다.

ignoreErrors

(선택 사항) command 키에 포함된 명령이 실패할 경우 다른 명령이 실행되는지 여부를 결정하는 부울 값(0이 아닌 값 반환). 명령이 실패하더라도 명령을 계속 실행하려면 이 값을 true로 설정합니다. 명령이 실패할 경우 실행 중인 명령을 중지하려면 false로 설정합니다. 기본값은 false입니다.

test

(선택 사항) Elastic Beanstalk에서 command 키에 포함된 명령을 처리하기 위해 true(종료 코드 0) 값을 반환해야 하는 명령입니다.

waitAfterCompletion

(선택 사항) 명령을 완료한 후 다음 명령을 실행하기 전에 대기하는 시간(초)입니다. 명령을 완료한 후 시스템을 재부팅해야 하는 경우 지정된 시간(초)이 경과한 이후에 시스템이 재부팅됩니다. 명령의 결과로 시스템이 재부팅되는 경우 Elastic Beanstalk는 구성 파일에서 명령 이후 지점으로 복구됩니다. 기본값은 60초입니다. forever를 지정할 수도 있지만 다른 명령을 실행하려면 시스템을 재부팅해야 합니다.

다음 예에서는 set 명령의 출력을 지정된 파일에 저장합니다. 후속 명령이 있는 경우 Elastic Beanstalk에서는 이 명령이 완료된 후 즉시 해당 명령을 실행합니다. 이 명령을 실행한 후 재부팅해야 하는 경우 Elastic Beanstalk에서는 명령이 완료된 후 즉시 인스턴스를 재부팅합니다.

commands: test: command: set > c:\\myapp\\set.txt waitAfterCompletion: 0

서비스

services 키를 사용하여 인스턴스가 시작될 때 시작하거나 중지할 서비스를 정의합니다. 설치하려는 파일로 인해 재시작해야 하는 경우 Elastic Beanstalk에서 서비스 재시작을 처리하도록 services 키를 사용하여 소스, 패키지 및 파일에 대한 종속 항목을 지정할 수도 있습니다.

구문

services: windows: name of service: files: - "file name" sources: - "directory" packages: name of package manager: "package name[: version]" commands: - "name of command"

옵션

ensureRunning

(선택 사항) Elastic Beanstalk에서 작업을 완료한 후에도 서비스를 실행 중인 상태로 유지하려면 true로 설정합니다.

Elastic Beanstalk에서 작업을 완료한 후에 서비스를 실행 중이지 않은 상태로 유지하려면 false로 설정합니다.

서비스 상태를 변경하지 않으려면 이 키를 생략합니다.

enabled

(선택 사항) 서비스가 부팅 시 자동으로 시작되도록 하려면 true로 설정합니다.

서비스가 부팅 시 자동으로 시작되지 않도록 하려면 false로 설정합니다.

이 속성을 변경하지 않으려면 이 키를 생략합니다.

files

파일 목록입니다. Elastic Beanstalk에서 파일 블록을 통해 직접 변경할 경우 서비스가 다시 시작됩니다.

sources

디렉터리 목록입니다. Elastic Beanstalk가 이러한 디렉터리 중 하나로 아카이브의 압축을 푸는 경우 서비스가 다시 시작됩니다.

packages

패키지 관리자와 패키지 이름 목록 간 맵입니다. Elastic Beanstalk가 이러한 패키지 중 하나를 설치하거나 업데이트하는 경우 서비스가 다시 시작됩니다.

commands

명령 이름 목록입니다. Elastic Beanstalk에서 지정된 명령을 실행할 경우 서비스가 다시 시작됩니다.

services: windows: myservice: enabled: true ensureRunning: true

컨테이너 명령

container_commands 키를 사용하여 애플리케이션 소스 코드에 영향을 주는 명령을 실행합니다. 컨테이너 명령은 애플리케이션과 웹 서버를 설정하고 애플리케이션 버전 아카이브의 압축을 푼 후 애플리케이션 버전을 배포하기 이전에 실행됩니다. 비컨테이너 명령과 기타 사용자 지정 작업은 추출하려는 애플리케이션 소스 코드보다 먼저 수행됩니다.

컨테이너 명령은 준비 디렉터리에서 실행됩니다. 준비 디렉터리는 소스 코드를 애플리케이션 서버에 배포하기 이전에 추출하는 곳입니다. 컨테이너 명령을 사용하여 준비 디렉터리에서 소스 코드를 변경한 경우 변경 사항은 코스를 최종 위치에 배포할 때 포함됩니다.

컨테이너 명령 관련 문제를 해결하려면 인스턴스 로그의 출력을 확인합니다.

단일 인스턴스에 대해서만 명령을 실행하려면 leader_only 옵션을 사용하고, 테스트 명령이 test로 평가되는 경우에만 명령을 실행하려면 true를 구성합니다. Leader-only 컨테이너 명령은 환경을 생성하고 배포하는 중에만 실행되고, 다른 명령 및 서버 사용자 지정 작업은 인스턴스를 프로비저닝하거나 업데이트할 때마다 수행됩니다. 리더 전용 컨테이너 명령은 AMI ID 또는 인스턴스 유형의 변경과 같은 시작 구성 변경으로 인해 실행되지 않습니다.

구문

container_commands: name of container_command: command: command to run

옵션

command

실행할 문자열 또는 문자열 배열입니다.

env

(선택 사항) 명령을 실행하기 이전에 기존 값을 재정의하여 환경 변수를 설정합니다.

cwd

(선택 사항) 작업 디렉터리입니다. 기본적으로 압축 해제된 애플리케이션의 준비 디렉터리입니다.

leader_only

(선택 사항) Elastic Beanstalk에서 선택한 단일 인스턴스에 대해서만 명령을 실행합니다. Leader-only 컨테이너 명령은 다른 컨테이너 명령보다 먼저 실행됩니다. 명령은 leader-only이거나 test를 포함할 수 있으나, 둘 다 사용할 수 없습니다(leader_only가 우선 적용됨).

test

(선택 사항) 컨테이너 명령을 실행하려면 true를 반환해야 하는 테스트 명령을 실행합니다. 명령은 leader-only이거나 test를 포함할 수 있으나, 둘 다 사용할 수 없습니다(leader_only가 우선 적용됨).

ignoreErrors

(선택 사항) 컨테이너 명령이 0이 아닌 값을 반환하는 경우(성공) 배포에 실패하지 않습니다. 활성화하려면 true로 설정합니다.

waitAfterCompletion

(선택 사항) 명령을 완료한 후 다음 명령을 실행하기 전에 대기하는 시간(초)입니다. 명령을 완료한 후 시스템을 재부팅해야 하는 경우 지정된 시간(초)이 경과한 이후에 시스템이 재부팅됩니다. 명령의 결과로 시스템이 재부팅되는 경우 Elastic Beanstalk는 구성 파일에서 명령 이후 지점으로 복구됩니다. 기본값은 60초입니다. forever를 지정할 수도 있지만 다른 명령을 실행하려면 시스템을 재부팅해야 합니다.

다음 예에서는 set 명령의 출력을 지정된 파일에 저장합니다. Elastic Beanstalk에서는 한 인스턴스에 대해 명령을 실행하고 명령이 완료되면 즉시 인스턴스를 재부팅합니다.

container_commands: foo: command: set > c:\\myapp\\set.txt leader_only: true waitAfterCompletion: 0