2단계: Amazon Linux 또는 Red Hat Enterprise Linux Amazon EC2 인스턴스에 배포할 소스 콘텐츠 구성 - AWS CodeDeploy

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

2단계: Amazon Linux 또는 Red Hat Enterprise Linux Amazon EC2 인스턴스에 배포할 소스 콘텐츠 구성

이제 인스턴스에 배포할 항목이 있도록 애플리케이션의 원본 콘텐츠를 구성해야 합니다.

소스 코드 가져오기

이 자습서에서는 개발 머신에서 대상 Amazon EC2 인스턴스로 WordPress 콘텐츠 게시 플랫폼을 배포합니다. WordPress 소스 코드를 가져오려면 내장 명령줄 호출을 사용할 수 있습니다. 또는 Git이 개발 컴퓨터에 설치되어있는 경우 대신 사용할 수 있습니다.

이 단계에서는 WordPress 소스 코드 사본을 개발 시스템의 /tmp 디렉터리에 다운로드했다고 가정합니다. (원하는 디렉터리를 선택할 수 있지만 이 단계에서 지정되는 모든 곳에서 위치를 /tmp로 바꿔야 합니다.)

다음 두 옵션 중 하나를 선택하여 WordPress 소스 파일을 개발 머신에 복사합니다. 첫 번째 옵션은 기본 제공 명령줄 호출을 사용합니다. 두 번째 옵션은 Git를 사용합니다.

WordPress 소스 코드의 복사본을 가져오려면(내장된 명령줄 호출)

  1. wget 명령을 호출하여 WordPress 소스 코드의 사본을 .zip 파일로 현재 디렉터리에 다운로드합니다.

    wget https://github.com/WordPress/WordPress/archive/master.zip
  2. unzip, mkdir, cp, 및 rm 명령으르 호출하여 다음을 수행합니다.

    • master .zip 파일을 /tmp/WordPress_Temp 디렉터리(폴더)에서 압축을 풉니다.

    • 압축이 풀린 내용을 /tmp/WordPress 대상 폴더에 복사합니다.

    • 임시 /tmp/WordPress_Temp 폴더 및 master 파일을 삭제합니다.

    명령을 한 번에 하나씩 실행합니다.

    unzip master -d /tmp/WordPress_Temp
    mkdir -p /tmp/WordPress
    cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress
    rm -rf /tmp/WordPress_Temp
    rm -f master

    이렇게 하면 /tmp/WordPress 폴더에 깨끗한 WordPress 소스 코드 파일 세트가 표시됩니다.

WordPress 소스 코드(Git)의 사본을 가져오려면

  1. 개발 머신에 Git를 다운로드하고 설치합니다.

  2. /tmp/WordPress 폴더에서 git init 명령을 호출합니다.

  3. git clone 명령을 호출하여 퍼블릭 WordPress 리포지토리를 복제하고 /tmp/WordPress 대상 폴더에 자체 복사본을 만듭니다.

    git clone https://github.com/WordPress/WordPress.git /tmp/WordPress

    이렇게 하면 /tmp/WordPress 폴더에 깨끗한 WordPress 소스 코드 파일 세트가 표시됩니다.

애플리케이션을 실행하기 위한 스크립트 만들기

다음으로 디렉터리에 폴더와 스크립트를 생성합니다. 는 이러한 스크립트를 CodeDeploy 사용하여 대상 Amazon EC2 인스턴스에 애플리케이션 개정을 설정하고 배포합니다. 어떤 텍스트 편집기든 사용하여 스크립트를 생성할 수 있습니다.

  1. WordPress 소스 코드 사본에 스크립트 디렉터리를 생성합니다.

    mkdir -p /tmp/WordPress/scripts
  2. /tmp/WordPress/scriptsinstall_dependencies.sh 파일을 생성합니다. 파일에 다음 줄을 추가합니다. 이 install_dependencies.sh 스크립트는 Apache, My SQL및 를 설치합니다PHP. 또한 내SQL 지원을 에 추가합니다PHP.

    #!/bin/bash sudo amazon-linux-extras install php7.4 sudo yum install -y httpd mariadb-server php
  3. /tmp/WordPress/scriptsstart_server.sh 파일을 생성합니다. 파일에 다음 줄을 추가합니다. 이 start_server.sh 스크립트는 Apache와 My 를 시작합니다SQL.

    #!/bin/bash systemctl start mariadb.service systemctl start httpd.service systemctl start php-fpm.service
  4. /tmp/WordPress/scriptsstop_server.sh 파일을 생성합니다. 파일에 다음 줄을 추가합니다. 이 스크립트stop_server.sh는 Apache 및 My 를 중지합니다SQL.

    #!/bin/bash isExistApp="pgrep httpd" if [[ -n $isExistApp ]]; then systemctl stop httpd.service fi isExistApp=pgrep mysqld if [[ -n $isExistApp ]]; then systemctl stop mariadb.service fi isExistApp=pgrep php-fpm if [[ -n $isExistApp ]]; then systemctl stop php-fpm.service fi
  5. /tmp/WordPress/scriptscreate_test_db.sh 파일을 생성합니다. 파일에 다음 줄을 추가합니다. 이 스크립트는 MySQL를 사용하여 test WordPress 사용할 create_test_db.sh 데이터베이스를 생성합니다.

    #!/bin/bash mysql -uroot <<CREATE_TEST_DB CREATE DATABASE IF NOT EXISTS test; CREATE_TEST_DB
  6. 마지막으로, /tmp/WordPress/scripts에서 change_permissions.sh 스크립트를 만듭니다. 이것은 Apache에서 폴더 권한을 변경하는 데 사용됩니다.

    중요

    이 스크립트는 /tmp/WordPress 폴더에서 사용 권한을 업데이트하여 누구나 쓸 수 있습니다. 에서 를 에 WordPress 쓰려면 이 필요합니다5단계: WordPress 애플리케이션 업데이트 및 재배포. WordPress 애플리케이션을 설정한 후 다음 명령을 실행하여 권한을 더 안전한 설정으로 업데이트합니다.

    chmod -R 755 /var/www/html/WordPress
    #!/bin/bash chmod -R 777 /var/www/html/WordPress
  7. 모든 스크립트에 실행 권한을 부여합니다. 명령줄에 다음을 입력합니다.

    chmod +x /tmp/WordPress/scripts/*

애플리케이션 사양 파일 추가

그런 다음 애플리케이션 사양 파일(AppSpec 파일)을 추가합니다. 이 사용하는 YAML형식이 지정된 파일은 다음과 CodeDeploy 같습니다.

  • 애플리케이션 개정판의 소스 파일을 대상 Amazon EC2 인스턴스의 대상에 매핑합니다.

  • 배포된 파일에 대한 사용자 지정 권한을 지정합니다.

  • 배포 중에 대상 Amazon EC2 인스턴스에서 실행할 스크립트를 지정합니다.

AppSpec 파일의 이름은 여야 합니다appspec.yml. 애플리케이션 소스 코드의 루트 폴더에 있어야 합니다. 이 튜토리얼에서 루트 디렉토리는 /tmp/WordPress입니다.

텍스트 편집기에서 appspec.yml(이)라는 파일을 만듭니다. 파일에 다음 줄을 추가합니다.

version: 0.0 os: linux files: - source: / destination: /var/www/html/WordPress hooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh - location: scripts/create_test_db.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root

CodeDeploy 는 이 AppSpec 파일을 사용하여 개발 시스템의 /tmp/WordPress 폴더에 있는 모든 파일을 대상 Amazon EC2 인스턴스의 /var/www/html/WordPress 폴더에 복사합니다. 배포 중에 는 BeforeInstall 및 와 같은 배포 수명 주기 동안 지정된 이벤트에서 대상 Amazon EC2 인스턴스의 /var/www/html/WordPress/scripts 폴더에 root 있는 지정된 스크립트를 CodeDeploy 실행합니다AfterInstall. 이러한 스크립트를 실행하는 데 300초(5분) 이상 걸리는 경우 는 배포를 CodeDeploy 중지하고 배포를 실패로 표시합니다.

이러한 설정에 대한 자세한 정보는 CodeDeploy AppSpec 파일 참조 단원을 참조하세요.

중요

이 파일에 있는 각 항목 사이의 공백 위치와 개수는 중요합니다. 간격이 올바르지 않으면 디버깅하기 어려울 수 있는 오류가 CodeDeploy 발생합니다. 자세한 내용은 AppSpec 파일 간격 단원을 참조하십시오.