기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
앱 배포
중요
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두 사용할 수 없습니다. 고객은 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션할 것을 강력히 권장합니다. 마이그레이션에 대해 궁금한 점이 있으면 AWS re:Post 또는 Premium AWS
배포의 주된 목적은 애플리케이션 코드와 관련 파일을 애플리케이션 서버 인스턴스에 배포하는 것입니다. 배포 작업은 인스턴스의 계층이 결정하는 각 인스턴스의 Deploy 레시피에 의해 처리됩니다.
인스턴스를 시작하면 설치 레시피가 완료된 후 AWS OpsWorks Stacks는 인스턴스의 배포 레시피를 자동으로 실행합니다. 하지만 앱을 추가하거나 수정할 때는 온라인 인스턴스에 수동으로 앱을 배포해야 합니다. 앱을 배포하려면 Manage 또는 Deploy 권한이 있어야 합니다. 자세한 정보는 사용자 권한 관리을 참조하세요.
앱을 배포하려면
-
[앱] 페이지에서 앱의 [배포] 작업을 클릭합니다.
참고
탐색 창에서 [배포]를 클릭하여 앱을 배포할 수도 있습니다. [배포 및 명령] 페이지에서 [앱 배포]를 클릭합니다. 이때 배포할 앱을 선택할 수도 있습니다.
-
다음을 지정합니다.
-
(필수) 아직 선택하지 않은 경우 [명령:]을 [배포]로 설정합니다.
-
(선택 사항) 설명을 입력합니다.
-
-
고급 >>을 클릭하여 사용자 지정 JSON을 지정합니다. AWS OpsWorks 스택은 스택 구성 및 배포 속성 세트를 노드 개체에 추가합니다.
deploy
속성은 배포 세부 정보를 포함하고 있고 Deploy 레시피에서 설치 및 구성을 처리하는 데 사용할 수 있습니다. Linux 스택에서는 사용자 지정 JSON 필드를 사용하여 기본 AWS OpsWorks 스택 설정을 재정의하거나 사용자 지정 설정을 사용자 지정 레시피에 전달할 수 있습니다. 사용자 지정 JSON을 사용하는 방법에 대한 자세한 정보는 사용자 지정 사용 JSON 단원을 참조하세요.참고
여기서 사용자 지정 JSON을 지정하면 이 배포 전용 스택 구성 및 배포 속성에 해당 JSON이 추가됩니다. 사용자 지정 JSON을 영구적으로 추가하려면 해당 JSON을 스택에 추가해야 합니다. 사용자 지정 JSON은 120KB로 제한됩니다. 용량이 더 필요할 경우 일부 데이터를 Amazon S3에 저장하는 것이 좋습니다. 그러면 사용자 지정 레시피가 AWS CLI 또는 AWS SDK for Ruby
사용하여 데이터를 버킷에서 인스턴스로 다운로드할 수 있습니다. 예시는 SDK루비용 사용단원을 참조하세요. -
[인스턴스]에서 [고급 >>]을 클릭하고 배포 명령을 실행할 인스턴스를 지정합니다.
배포 명령은 선택한 인스턴스에서 Deploy 레시피를 실행하는 Deploy 이벤트를 트리거합니다. 연결된 애플리케이션 서버에 대한 Deploy 레시피는 리포지토리에서 코드 및 관련 파일을 다운로드하여 인스턴스에 설치합니다. 따라서 일반적으로 연결된 애플리케이션 서버 인스턴스를 모두 선택합니다. 그러나 다른 인스턴스 유형의 경우 새로운 앱을 수용하려면 구성을 일부 변경해야 할 수 있으므로 대개 그러한 인스턴스에 대해서도 Deploy 레시피를 실행하는 것이 좋습니다. 이러한 레시피는 필요에 따라 구성을 업데이트하지만 앱의 파일은 설치하지 않습니다. 레시피에 대한 자세한 내용은 쿡북과 레시피 단원을 참조하세요.
-
[배포]를 클릭하여 지정한 인스턴스에 대해 배포 레시피를 실행합니다. 그러면 [배포] 페이지가 표시됩니다. 프로세스가 완료되면 AWS OpsWorks Stacks는 앱을 성공적으로 배포했음을 나타내는 녹색 체크 표시로 앱을 표시합니다. 배포가 실패하면 AWS OpsWorks Stacks는 앱을 빨간색 X로 표시합니다. 이 경우 배포 페이지로 이동하여 배포 로그에서 자세한 내용을 확인할 수 있습니다.
참고
JSP 앱에 업데이트를 배포하면 Tomcat이 업데이트를 인식하지 못하고 기존 앱 버전을 계속 실행할 수 있습니다. 예를 들어 JSP 페이지만 포함된 .zip 파일로 앱을 배포하는 경우, 이런 현상이 생길 수 있습니다. Tomcat이 가장 최근에 배포된 버전을 실행하도록 하려면 web.xml
파일이 포함된 WEB-INF 디렉터리가 프로젝트의 루트 디렉터리에 포함되어야 합니다. web.xml
파일에는 다양한 콘텐츠가 포함될 수 있지만 Tomcat이 업데이트를 인식하고 현재 배포된 앱 버전을 실행하도록 하는 데는 다음으로 충분합니다. 각 업데이트의 버전을 변경할 필요는 없습니다. Tomcat은 버전이 변경되지 않은 경우에도 업데이트를 인식합니다.
<context-param> <param-name>appVersion</param-name> <param-value>0.1</param-value> </context-param>
기타 배포 명령
[앱 배포] 페이지에는 앱 및 연결된 서버를 관리하기 위한 몇 가지 다른 명령이 포함됩니다. Chef 12 스택의 앱에는 다음 명령 중 [배포 취소]만 사용할 수 있습니다.
- Undeploy
-
undeploy 레시피를 실행해 지정된 인스턴스에서 앱의 모든 버전을 제거하는 Undeploy 수명 주기 이벤트를 트리거합니다.
- 롤백
-
이전에 배포된 앱 버전을 복원합니다. 예를 들어 앱을 세 번 배포한 다음 [롤백]을 실행하면 서버는 두 번째 배포의 앱에 서비스합니다. [롤백]을 다시 실행하면 서버는 첫 번째 배포의 앱에 서비스합니다. 기본적으로 AWS OpsWorks Stacks는 가장 최근 배포를 5개 저장하므로 최대 4개 버전으로 롤백할 수 있습니다. 저장된 버전 수를 초과하는 경우, 명령은 실패하고 가장 오래된 버전을 남깁니다. 이 명령은 Chef 12 스택에서는 사용할 수 없습니다.
- 웹 서버 시작
-
지정된 인스턴스에서 애플리케이션 서버를 시작하는 레시피를 실행합니다. 이 명령은 Chef 12 스택에서는 사용할 수 없습니다.
- 웹 서버 중지
-
지정된 인스턴스에서 애플리케이션 서버를 중지하는 레시피를 실행합니다. 이 명령은 Chef 12 스택에서는 사용할 수 없습니다.
- 웹 서버 다시 시작
-
지정된 인스턴스에서 애플리케이션 서버를 다시 시작하는 레시피를 실행합니다. 이 명령은 Chef 12 스택에서는 사용할 수 없습니다.
중요
[웹 서버 시작], [웹 서버 중지], [웹 서버 다시 시작], [롤백]은 기본적으로 레시피 실행 스택 명령의 사용자 지정 버전입니다. 이들은 지정된 인스턴스에서 작업을 수행하는 레시피 집합을 실행합니다.
-
이러한 명령은 수명 주기 이벤트를 트리거하지 않으므로 사용자 지정 코드를 실행하도록 후크할 수 없습니다.
-
이 명령들은 내장 애플리케이션 서버 계층에만 작동합니다.
특히 이 명령들은 애플리케이션 서버를 지원하는 경우에도 사용자 지정 계층에는 아무 영향이 없습니다. 사용자 지정 계층에서 서버를 시작, 중지 또는 다시 시작하려면 사용자 지정 레시피를 구현하여 이러한 작업을 수행하고 레시피 실행 스택 명령을 사용하여 실행해야 합니다. 사용자 지정 레시피를 구현하고 설치하는 방법에 대한 자세한 정보는 쿡북과 레시피 단원을 참조하세요.