기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Elastic Beanstalk 애플리케이션 소스 번들 생성
이 주제에서는 애플리케이션 소스 파일을 소스 번들의 Elastic Beanstalk에 업로드하는 방법을 설명합니다. 소스 번들의 요구 사항, 구조 및 소스 번들을 생성하는 접근 방식을 설명합니다.
AWS Elastic Beanstalk 콘솔을 사용하여 새 애플리케이션이나 애플리케이션 버전을 배포하는 경우, 소스 번들에 애플리케이션 파일을 업로드해야 합니다. 소스 번들은 다음 요구 사항을 충족해야 합니다.
-
단일
ZIP
파일 또는WAR
파일로 구성됩니다.WAR
파일 내에 여러ZIP
파일을 포함할 수 있습니다. -
500MB를 초과해서는 안 됩니다.
-
상위 폴더 또는 최상위 디렉터리를 포함해서는 안 됩니다(하위 디렉터리는 상관 없음).
정기 백그라운드 작업을 처리하는 작업자 애플리케이션을 배포하려면 애플리케이션 소스 번들이 cron.yaml
파일도 포함해야 합니다. 자세한 내용은 정기적 작업 단원을 참조하십시오.
Elastic Beanstalk 명령줄 인터페이스(EB CLI), AWS Toolkit for Eclipse 또는 AWS Toolkit for Visual Studio를 사용하여 애플리케이션을 배포할 경우 올바른 ZIP 또는 WAR 파일이 자동으로 구성됩니다. 자세한 내용은 Elastic Beanstalk 명령줄 인터페이스(EB CLI) 사용, Elastic Beanstalk를 사용하여 Java 애플리케이션 배포, AWS Toolkit for Visual Studio은 단원을 참조하세요.
Sections
명령줄에서 소스 번들 생성
zip
명령을 사용하여 소스 번들을 만듭니다. 숨긴 파일과 폴더를 포함하려면 다음과 같은 패턴을 사용합니다.
~/myapp$ zip ../myapp.zip -r * .[^.]*
adding: app.js (deflated 63%)
adding: index.js (deflated 44%)
adding: manual.js (deflated 64%)
adding: package.json (deflated 40%)
adding: restify.js (deflated 85%)
adding: .ebextensions/ (stored 0%)
adding: .ebextensions/xray.config (stored 0%)
이렇게 하면 Elastic Beanstalk 구성 파일 및 점으로 시작하는 다른 파일과 폴더가 아카이브에 포함됩니다.
Tomcat 웹 애플리케이션의 경우 jar
를 사용하여 웹 아카이브를 만듭니다.
~/myapp$ jar -cvf myapp
.war .
위 명령은 소스 번들 크기를 불필요하게 늘릴 수 있는 숨겨진 파일을 포함시킵니다. 세부적으로 제어하려면 보다 자세한 파일 패턴을 사용하거나, Git를 사용하여 소스 번들을 직접 만드십시오.
Git를 사용하여 소스 번들 생성
Git을 사용하여 애플리케이션 소스 코드를 관리할 경우 git archive
명령을 사용하여 소스 번들을 만듭니다.
$ git archive -v -o myapp
.zip --format=zip HEAD
git archive
는 git에 저장된 파일만 포함시키며 무시된 파일과 git 파일은 제외시킵니다. 이렇게 하면 소스 번들 크기를 최대한 작게 유지할 수 있습니다. 자세한 내용은 git-archive 매뉴얼 페이지
Mac OS X Finder 또는 Windows 탐색기에서 파일 압축
Mac OS X Finder 또는 Windows 탐색기에서 ZIP
파일을 생성할 경우 상위 폴더를 압축하는 대신 파일과 하위 폴더를 직접 압축해야 합니다.
참고
Mac OS X 및 Linux 기반 운영 체제의 그래픽 사용자 인터페이스(GUI)에서는 이름이 마침표(.)로 시작하는 파일 및 폴더를 표시하지 않습니다. ZIP
파일에 숨김 폴더(예: .ebextensions
)가 포함되어야 하는 경우 GUI 대신 명령줄을 사용하여 애플리케이션을 압축하십시오. Mac OS X 또는 Linux 기반 운영 체제에서 ZIP
파일을 생성하는 명령줄 절차는 명령줄에서 소스 번들 생성 단원을 참조하십시오.
예
다음 파일과 하위 폴더를 포함하고 레이블이 myapp
인 Python 프로젝트 폴더가 있다고 가정합니다.
myapplication.py
README.md
static/
static/css
static/css/styles.css
static/img
static/img/favicon.ico
static/img/logo.png
templates/
templates/base.html
templates/index.html
위 요구 사항 목록에 언급된 대로 상위 폴더를 포함하지 않고 소스 번들을 압축해야 하므로, 압축 해제된 구조에는 추가 최상위 디렉터리가 포함되어 있지 않습니다. 이 예에서는 파일의 압축을 풀 때 myapp
폴더가 생성되지 않습니다. 또는 명령줄에서 파일 경로에 myapp
세그먼트를 추가해서는 안 됩니다.
이 주제에서는 이 샘플 파일 구조를 사용하여 파일을 압축하는 방법을 설명합니다.
.NET 애플리케이션에 대한 소스 번들 생성
Visual Studio를 사용하는 경우 AWS Toolkit for Visual Studio에 포함된 배포 도구를 사용하여 Elastic Beanstalk에 .NET 애플리케이션을 배포할 수 있습니다. 자세한 내용은 배포 도구를 사용하여 NET에 Elastic Beanstalk 애플리케이션 배포 단원을 참조하십시오.
.NET 애플리케이션에 대한 소스 번들을 수동으로 생성해야 하는 경우 프로젝트 디렉터리를 포함하는 ZIP
파일을 생성할 수 없습니다. Elastic Beanstalk에 배포하는 데 적합한 프로젝트에 대한 웹 배포 패키지를 생성해야 합니다. 다음과 같은 다양한 방법으로 배포 패키지를 생성할 수 있습니다.
-
Visual Studio에서 웹 게시 마법사를 사용하여 배포 패키지를 생성합니다. 자세한 내용은 Visual Studio에서 웹 배포 패키지를 생성하는 방법
을 참조하세요. 중요
웹 배포 패키지를 생성할 경우 Site name(사이트 이름)을
Default Web Site
로 시작해야 합니다. -
.NET 프로젝트가 있는 경우 다음 예에 표시된 대로 msbuild 명령을 사용하여 배포 패키지를 생성할 수 있습니다.
중요
DeployIisAppPath
파라미터는Default Web Site
로 시작해야 합니다.C:/> msbuild
<web_app>.csproj
/t:Package /p:DeployIisAppPath="Default Web Site" -
웹 사이트 프로젝트가 있는 경우 IIS 웹 배포 도구를 사용하여 배포 패키지를 생성할 수 있습니다. 자세한 내용은 웹 사이트 패키징 및 복원
섹션을 참조하십시오. 중요
apphostconfig
파라미터는Default Web Site
로 시작해야 합니다.
여러 애플리케이션 또는 ASP.NET Core 애플리케이션을 배포하려는 경우 소스 번들의 루트에 .ebextensions
폴더를 두고, 애플리케이션 번들과 매니페스트 파일을 나란히 둡니다.
~/workspace/source-bundle/
|-- .ebextensions
| |-- environmentvariables.config
| `-- healthcheckurl.config
|-- AspNetCore101HelloWorld.zip
|-- AspNetCoreHelloWorld.zip
|-- aws-windows-deployment-manifest.json
`-- VS2015AspNetWebApiApp.zip
소스 번들 테스트
소스 번들을 Elastic Beanstalk에 업로드하기 전에 로컬로 테스트할 수 있습니다. Elastic Beanstalk에서는 명령줄을 사용하여 파일을 추출하므로 GUI 도구 대신 명령줄에서 테스트를 수행하는 것이 좋습니다.
압축 해제된 파일이 새 최상위 폴더 또는 디렉터리에 표시되지 않고, 아카이브와 동일한 폴더에 표시되는지 확인합니다.