애플리케이션 생성, 업로드 및 배포 - AMS 고급 애플리케이션 개발자 안내서

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

애플리케이션 생성, 업로드 및 배포

먼저 WordPress 애플리케이션 번들을 생성한 다음 CodeDeploy CTs를 사용하여 애플리케이션을 생성하고 배포합니다.

  1. WordPress를 다운로드하고 파일을 추출한 다음 ./scripts 디렉터리를 생성합니다.

    Linux 명령:

    wget https://github.com/WordPress/WordPress/archive/master.zip

    Windows: 브라우저 창에 붙여https://github.com/WordPress/WordPress/archive/master.zip넣고 zip 파일을 다운로드합니다.

    패키지를 어셈블할 임시 디렉터리를 생성합니다.

    Linux:

    mkdir /tmp/WordPress

    Windows: "WordPress" 디렉터리를 생성합니다. 나중에 디렉터리 경로를 사용합니다.

  2. WordPress 소스를 "WordPress" 디렉터리로 추출하고 ./scripts 디렉터리를 생성합니다.

    Linux:

    unzip master.zip -d /tmp/WordPress_Temp cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress rm -rf /tmp/WordPress_Temp rm -f master cd /tmp/WordPress mkdir scripts

    Windows: 생성한 "WordPress" 디렉터리로 이동하여 여기에 "scripts" 디렉터리를 생성합니다.

    Windows 환경에 있는 경우 스크립트 파일의 브레이크 유형을 Unix(LF)로 설정해야 합니다. 메모장 ++에서 창 오른쪽 하단에 있는 옵션입니다.

  3. WordPress 디렉터리에서 CodeDeploy appspec.yml 파일을 생성합니다(예제를 복사하는 경우 들여쓰기를 확인하고 각 공간을 계산합니다). 중요: WordPress 파일(이 경우 WordPress 디렉터리)을 예상 대상(/var/www/html/WordPress)으로 복사하기 위해 "소WordPress" 경로가 올바른지 확인합니다. 예제에서 appspec.yml 파일은 WordPress 파일이 있는 디렉터리에 있으므로 "/"만 있으면 됩니다. 또한 Auto Scaling 그룹에 RHEL AMI를 사용했더라도 "os: linux" 줄을 그대로 둡니다. 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/config_wordpress.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root
  4. WordPress ./scripts 디렉터리에서 bash 파일 스크립트를 생성합니다.

    먼저 다음 콘텐츠config_wordpress.sh로를 생성합니다(원하는 경우 wp-config.php 파일을 직접 편집할 수 있음).

    참고

    DBName을 HA 스택 RFC에 지정된 값으로 바꿉니다(예: wordpress).

    DB_MasterUsername을 HA 스택 RFC에 지정된 MasterUsername 값으로 바꿉니다(예: admin).

    DB_MasterUserPassword를 HA 스택 RFC에 지정된 MasterUserPassword 값으로 바꿉니다(예: p4ssw0rd).

    DB_ENDPOINT를 HA 스택 RFC의 실행 출력에서 엔드포인트 DNS 이름으로 바꿉니다(예: srt1cz23n45sfg.clgvd67uvydk.us-east-1.rds.amazonaws.com). GetRfc 작업(CLI: get-rfc --rfc-id RFC_ID) 또는 이전에 제출한 HA 스택 RFC의 AMS 콘솔 RFC 세부 정보 페이지에서 이를 찾을 수 있습니다.

    #!/bin/bash chmod -R 755 /var/www/html/WordPress cp /var/www/html/WordPress/wp-config-sample.php /var/www/html/WordPress/wp-config.php cd /var/www/html/WordPress sed -i "s/database_name_here/DBName/g" wp-config.php sed -i "s/username_here/DB_MasterUsername/g" wp-config.php sed -i "s/password_here/DB_MasterUserPassword/g" wp-config.php sed -i "s/localhost/DB_ENDPOINT/g" wp-config.php
  5. 동일한 디렉터리에서 다음 콘텐츠install_dependencies.sh로를 생성합니다.

    #!/bin/bash yum install -y php yum install -y php-mysql yum install -y mysql service httpd restart
    참고

    HTTPS는 상태 확인이 처음부터 작동하도록 시작 시 사용자 데이터의 일부로 설치됩니다.

  6. 동일한 디렉터리에서 다음 콘텐츠start_server.sh로를 생성합니다.

    • Amazon Linux 인스턴스의 경우 다음을 사용합니다.

      #!/bin/bash service httpd start
    • RHEL 인스턴스의 경우 다음을 사용합니다(추가 명령은 SELINUX가 WordPress를 수락하도록 허용하는 정책임).

      #!/bin/bash setsebool -P httpd_can_network_connect_db 1 setsebool -P httpd_can_network_connect 1 chcon -t httpd_sys_rw_content_t /var/www/html/WordPress/wp-content -R restorecon -Rv /var/www/html service httpd start
  7. 동일한 디렉터리에서 다음 콘텐츠stop_server.sh로를 생성합니다.

    #!/bin/bash service httpd stop
  8. zip 번들을 생성합니다.

    Linux:

    $ cd /tmp/WordPress $ zip -r wordpress.zip .

    Windows: "WordPress" 디렉터리로 이동하여 모든 파일을 선택하고 zip 파일을 생성합니다. 이름을 wordpress.zip으로 지정해야 합니다.

  1. 애플리케이션 번들을 S3 버킷에 업로드

    스택을 계속 배포하려면 패키지가 있어야 합니다.

    생성한 모든 S3 버킷 인스턴스에 자동으로 액세스할 수 있습니다. Bastions(인스턴스 액세스 참조) 또는 S3 콘솔을 통해 액세스하고 drag-and-drop 또는 파일을 찾아 선택하여 CodeDeploy 패키지를 업로드할 수 있습니다.

    쉘 창에서 다음 명령을 사용할 수도 있습니다. zip 파일의 경로가 올바른지 확인하세요.

    aws s3 cp wordpress/wordpress.zip s3://BUCKET_NAME/
  2. WordPress CodeDeploy 애플리케이션 번들 배포

    필수 데이터 코드 배포 애플리케이션 배포:

    • CodeDeployApplicationName: CodeDeploy 애플리케이션에 지정한 이름입니다.

    • CodeDeployGroupName: CodeDeploy 애플리케이션과 그룹은 모두 HA 스택 RFC에서 CodeDeploy 애플리케이션에 부여한 이름으로 생성되었으므로 CodeDeployApplicationName과 동일한 이름입니다.

    • S3Bucket: S3 버킷에 지정한 이름입니다.

    • S3BundleTypeS3Key: 배포한 WordPress 애플리케이션 번들의 일부입니다.

    • VpcId: 관련 VPC입니다.

    1. RFC 생성 페이지의 RFC CT 선택 목록에서 범주 배포, 하위 범주 애플리케이션, 항목 CodeDeploy 애플리케이션배포를 선택합니다.

    2. 기본 옵션을 유지하고 표시된 대로 값을 설정합니다.

      참고

      이전에 생성한 CodeDeploy 애플리케이션, CodeDeploy 배포 그룹, S3 버킷 및 번들을 참조하세요.

      Subject: WP-CD-Deploy-RFC Description: DeployWordPress S3Bucket: BUCKET_NAME S3Key: wordpress.zip S3BundleType: zip CodeDeployApplicationName: WordPress CodeDeployDeploymentGroupName: WordPress CodeDeployIgnoreApplicationStopFailures: false RevisionType: S3 VpcId: VPC_ID Name: WP-CD-Deploy-Op TimeoutInMinutes: 60
    3. 완료되면 제출을 클릭합니다.