2단계: 샘플 애플리케이션 수정 버전 만들기 - AWS CodeDeploy

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

2단계: 샘플 애플리케이션 수정 버전 만들기

이 단계에서는 온프레미스 인스턴스에 배포할 샘플 애플리케이션 수정을 만듭니다.

온프레미스 인스턴스에 어떤 소프트웨어 및 기능이 이미 설치되어 있는지 또는 조직의 정책에 따라 어떤 소프트웨어 및 기능을 설치할 수 있는지 파악하기 어렵기 때문에 여기서 제공되는 샘플 애플리케이션 수정 버전은 배치 스크립트(Windows Server용) 또는 셸 스크립트(Ubuntu Server 및 RHEL용)를 사용하여 온프레미스 인스턴스의 위치에 텍스트 파일을 씁니다. Install, AfterInstall, ApplicationStart, ValidateService 등 여러 CodeDeploy의 배포 수명 주기 이벤트 각각에 대해 하나의 파일이 작성됩니다. BeforeInstall 배포 수명 주기 이벤트 중 스크립트가 실행되어 이 샘플의 이전 배포 중 기록된 이전 파일을 제거하고 온프레미스 인스턴스에 새 파일을 기록할 위치를 만듭니다.

참고

다음 중 하나에 해당하면 샘플 애플리케이션 수정을 배포하지 못할 수 있습니다.

  • 온프레미스 인스턴스에서 CodeDeploy 에이전트를 시작한 사용자에게 스크립트를 실행할 권한이 없는 경우

  • 사용자에게 스크립트에 나열된 위치에 폴더를 만들거나 삭제할 권한이 없는 경우

  • 사용자에게 스크립트에 나열된 위치에 텍스트 파일을 만들 권한이 없는 경우

참고

Windows Server 인스턴스를 구성했는데 다른 샘플을 배포하고자 하는 경우 튜토리얼: CodeDeploy를 사용하여 "hello, world!" 애플리케이션 배포(Windows Server) 튜토리얼의 2단계: Windows Server Amazon EC2 인스턴스에 배포하도록 원본 콘텐츠 구성에 나와 있는 샘플을 사용할 수 있습니다.

RHEL 인스턴스를 구성했는데 다른 샘플을 배포하고자 하는 경우 튜토리얼: Amazon EC2 인스턴스(Amazon Linux 또는 Red Hat Enterprise Linux 및 Linux, macOS 또는 Unix)에 WordPress 배포 튜토리얼의 2단계: Amazon Linux 또는 Red Hat Enterprise Linux Amazon EC2 인스턴스에 배포할 원본 콘텐츠 구성에 나와 있는 샘플을 사용할 수 있습니다.

현재, Ubuntu Server에 사용할 수 있는 대체 샘플은 없습니다.

  1. 개발 머신에 샘플 애플리케이션 수정의 파일을 저장할 CodeDeployDemo-OnPrem이라는 하위 디렉터리(하위 폴더)를 만든 다음 이 폴더로 이동합니다. 예를 들어 Windows Server에서는 c:\temp 폴더, Ubuntu Server 및 RHEL에서는 /tmp 폴더를 루트 폴더로 사용한다고 가정합니다. 다른 폴더를 사용하는 경우 이 자습서 전체에서 해당 폴더로 바꾸십시오.

    Windows의 경우

    mkdir c:\temp\CodeDeployDemo-OnPrem cd c:\temp\CodeDeployDemo-OnPrem

    Linux, macOS, Unix의 경우:

    mkdir /tmp/CodeDeployDemo-OnPrem cd /tmp/CodeDeployDemo-OnPrem
  2. CodeDeployDemo-OnPrem 하위 폴더의 루트에서 텍스트 편집기를 사용하여 appspec.yml이라는 파일과 install.txt라는 파일을 만듭니다.

    Windows Server의 경우 appspec.yml:

    version: 0.0 os: windows files: - source: .\install.txt destination: c:\temp\CodeDeployExample hooks: BeforeInstall: - location: .\scripts\before-install.bat timeout: 900 AfterInstall: - location: .\scripts\after-install.bat timeout: 900 ApplicationStart: - location: .\scripts\application-start.bat timeout: 900 ValidateService: - location: .\scripts\validate-service.bat timeout: 900

    Ubuntu Server and RHEL의 경우 appspec.yml:

    version: 0.0 os: linux files: - source: ./install.txt destination: /tmp/CodeDeployExample hooks: BeforeInstall: - location: ./scripts/before-install.sh timeout: 900 AfterInstall: - location: ./scripts/after-install.sh timeout: 900 ApplicationStart: - location: ./scripts/application-start.sh timeout: 900 ValidateService: - location: ./scripts/validate-service.sh timeout: 900

    AppSpec 파일에 대한 자세한 내용은 CodeDeploy에 대한 개정에 애플리케이션 사양 파일 추가CodeDeploy AppSpec 파일 참조를 참조하세요.

    install.txt:

    The Install deployment lifecycle event successfully completed.
  3. CodeDeployDemo-OnPrem 하위 폴더의 루트 아래에 scripts 하위 폴더를 만든 후 해당 하위 폴더로 이동합니다.

    Windows의 경우

    mkdir c:\temp\CodeDeployDemo-OnPrem\scripts cd c:\temp\CodeDeployDemo-OnPrem\scripts

    Linux, macOS, Unix의 경우:

    mkdir -p /tmp/CodeDeployDemo-OnPrem/scripts cd /tmp/CodeDeployDemo-OnPrem/scripts
  4. scripts 하위 폴더의 루트에서 텍스트 편집기를 사용하여 Windows Server의 경우 before-install.bat, after-install.bat, application-start.bat, validate-service.bat(이)라는 파일 4개를 작성하거나 Ubuntu Server 및 RHEL의 경우 before-install.sh, after-install.sh, application-start.sh, validate-service.sh(이)라는 파일 4개를 작성합니다.

    Windows Server의 경우:

    before-install.bat:

    set FOLDER=%HOMEDRIVE%\temp\CodeDeployExample if exist %FOLDER% ( rd /s /q "%FOLDER%" ) mkdir %FOLDER%

    after-install.bat:

    cd %HOMEDRIVE%\temp\CodeDeployExample echo The AfterInstall deployment lifecycle event successfully completed. > after-install.txt

    application-start.bat:

    cd %HOMEDRIVE%\temp\CodeDeployExample echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txt

    validate-service.bat:

    cd %HOMEDRIVE%\temp\CodeDeployExample echo The ValidateService deployment lifecycle event successfully completed. > validate-service.txt

    Ubuntu Server and RHEL의 경우 :

    before-install.sh:

    #!/bin/bash export FOLDER=/tmp/CodeDeployExample if [ -d $FOLDER ] then rm -rf $FOLDER fi mkdir -p $FOLDER

    after-install.sh:

    #!/bin/bash cd /tmp/CodeDeployExample echo "The AfterInstall deployment lifecycle event successfully completed." > after-install.txt

    application-start.sh:

    #!/bin/bash cd /tmp/CodeDeployExample echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txt

    validate-service.sh:

    #!/bin/bash cd /tmp/CodeDeployExample echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt unset FOLDER
  5. Ubuntu Server 및 RHEL에서만 네 개의 셸 스크립트에 실행 권한이 있는지 확인하세요.

    chmod +x ./scripts/*