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

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

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

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

온프레미스 인스턴스에 이미 설치되어 있거나 조직의 정책에 따라 설치할 수 있는 소프트웨어 및 기능을 파악하기 어렵기 때문에 여기에서 제공하는 샘플 애플리케이션 개정판은 배치 스크립트(Windows Server의 경우) 또는 쉘 스크립트(Ubuntu Server 및 의 경우RHEL)를 사용하여 온프레미스 인스턴스의 위치에 텍스트 파일을 작성합니다. 설치, , 및 를 포함하여 여러 CodeDeploy 배포 수명 주기 이벤트 각각에 대해 하나의 파일이 작성됩니다AfterInstallApplicationStartValidateService. BeforeInstall 배포 수명 주기 이벤트 중에 스크립트가 실행되어 이 샘플의 이전 배포 중에 작성된 이전 파일을 제거하고 새 파일을 쓸 온프레미스 인스턴스에 위치를 생성합니다.

참고

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

  • 온프레미스 인스턴스에서 CodeDeploy 에이전트를 시작하는 사용자는 스크립트를 실행할 권한이 없습니다.

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

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

참고

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

RHEL 인스턴스를 구성하고 다른 샘플을 배포하려는 경우 튜토리얼: Amazon EC2 인스턴스에 배포 WordPress (아마존 리눅스 또는 레드햇 엔터프라이즈 리눅스 및 리눅스, macOS 또는 유닉스) 자습서2단계: Amazon Linux 또는 Red Hat Enterprise Linux Amazon EC2 인스턴스에 배포할 소스 콘텐츠 구성의 에 있는 인스턴스를 사용할 수 있습니다.

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

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

    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

    appspec.yml Ubuntu Server 및 의 경우RHEL:

    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의 validate-service.bat 경우 before-install.bat, after-install.bat, application-start.bat, 또는 Ubuntu Server 및 의 validate-service.sh 경우 before-install.sh, application-start.sh, after-install.sh라는 네 개의 파일을 생성합니다RHEL.

    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 및 의 경우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의 경우에만 4개의 쉘 스크립트에 실행 권한이 있는지 확인합니다.

    chmod +x ./scripts/*