

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

# 4단계: WordPress 애플리케이션 배포
<a name="tutorials-wordpress-deploy-application"></a>

이제 Amazon S3에 업로드한 샘플 WordPress 애플리케이션 수정 버전을 배포합니다. AWS CLI 또는 CodeDeploy 콘솔을 사용하여 개정을 배포하고 배포 진행 상황을 모니터링할 수 있습니다. 애플리케이션 수정 배포에 성공한 후에는 결과를 확인합니다.

**Topics**
+ [CodeDeploy로 애플리케이션 수정 버전 배포](#tutorials-wordpress-deploy-application-create-deployment)
+ [배포 모니터링 및 문제 해결](#tutorials-wordpress-deploy-application-monitor)
+ [배포 확인](#tutorials-wordpress-deploy-application-verify-deployment)

## CodeDeploy로 애플리케이션 수정 버전 배포
<a name="tutorials-wordpress-deploy-application-create-deployment"></a>

 AWS CLI 또는 콘솔을 사용하여 애플리케이션 개정을 배포합니다.

**Topics**
+ [애플리케이션 수정을 배포하려면(CLI)](#tutorials-wordpress-deploy-application-create-deployment-cli)
+ [애플리케이션 수정을 배포하려면(콘솔)](#tutorials-wordpress-deploy-application-create-deployment-console)

### 애플리케이션 수정을 배포하려면(CLI)
<a name="tutorials-wordpress-deploy-application-create-deployment-cli"></a>

1. 배포에는 배포 그룹이 필요합니다. 그러나 배포 그룹을 만들기 전에 서비스 역할 ARN이 필요합니다. 서비스 역할은 서비스에 사용자를 대신할 수 있는 권한을 부여하는 IAM 역할입니다. 이 경우에 서비스 역할은 CodeDeploy에 Amazon EC2 인스턴스에 액세스하여 Amazon EC2 인스턴스 태그를 확장할(읽을) 수 있는 권한을 부여합니다.

   [서비스 역할 생성(CLI)](getting-started-create-service-role.md#getting-started-create-service-role-cli)의 지침에 따라 앞에서 서비스 역할을 생성했습니다. 서비스 역할의 ARN을 확인하려면 [서비스 역할 ARN 확인(CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli) 단원을 참조하세요.

1. 이제 ARN이 있으므로 **create-deployment-group** 명령을 호출하고, **CodeDeployDemo**(이)라는 Amazon EC2 인스턴스와 **CodeDeployDefault.OneAtATime**(이)라는 배포 구성을 사용하여 **WordPress\$1App**(이)라는 애플리케이션과 연결된 **WordPress\$1DepGroup**(이)라는 배포 그룹을 만듭니다.

   ```
   aws deploy create-deployment-group \
     --application-name WordPress_App \
     --deployment-group-name WordPress_DepGroup \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE \
     --service-role-arn serviceRoleARN
   ```

   
**참고**  
[create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) 명령은 배포 및 인스턴스의 지정된 이벤트에 대해 주제의 구독자에게 Amazon SNS 알림을 전송하게 하는 트리거를 생성합니다. 또한 해당 명령은 Amazon CloudWatch 경보 모니터링 임계값에 도달한 경우 자동으로 배포를 롤백하고 배포를 중지하도록 경보를 설정하는 옵션을 지원합니다. 이 작업에 대한 명령은 이 자습서에 포함되지 않습니다.

1. 배포를 만들기 전에 배포 그룹의 인스턴스에 CodeDeploy 에이전트가 설치되어 있어야 합니다. AWS Systems Manager 를 사용하여 명령줄에서 다음 명령으로 에이전트를 설치할 수 있습니다.

   ```
   aws ssm create-association \
     --name AWS-ConfigureAWSPackage \
     --targets Key=tag:Name,Values=CodeDeployDemo \
     --parameters action=Install,name=AWSCodeDeployAgent \
     --schedule-expression "cron(0 2 ? * SUN *)"
   ```

   이 명령은 Systems Manager 상태 관리자에 연결을 생성하여 CodeDeploy 에이전트를 설치하고 매주 일요일 오전 2시에 업데이트를 시도합니다. CodeDeploy 에이전트에 대한 자세한 내용은 [CodeDeploy 에이전트 작업](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent.html)을 참조하세요. Systems Manager에 대한 자세한 내용은 [AWS Systems Manager란 무엇입니까](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)를 참조하세요.

1. 이제 **create-deployment** 명령을 호출하고 **WordPress\$1App**이라는 버킷에 있는 **CodeDeployDefault.OneAtATime**이라는 애플리케이션 수정을 사용하여 **WordPress\$1DepGroup**이라는 애플리케이션, **WordPressApp.zip**이라는 배포 구성 및 **amzn-s3-demo-bucket**이라는 배포 그룹과 연결된 배포를 만듭니다.

   ```
   aws deploy create-deployment \
     --application-name WordPress_App \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --deployment-group-name WordPress_DepGroup \
     --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,key=WordPressApp.zip
   ```

### 애플리케이션 수정을 배포하려면(콘솔)
<a name="tutorials-wordpress-deploy-application-create-deployment-console"></a>

1. CodeDeploy 콘솔을 사용하여 애플리케이션 수정을 배포하기 전에 서비스 역할 ARN이 필요합니다. 서비스 역할은 서비스에 사용자를 대신할 수 있는 권한을 부여하는 IAM 역할입니다. 이 경우에 서비스 역할은 CodeDeploy에 Amazon EC2 인스턴스에 액세스하여 Amazon EC2 인스턴스 태그를 확장할(읽을) 수 있는 권한을 부여합니다.

   [서비스 역할 생성(콘솔)](getting-started-create-service-role.md#getting-started-create-service-role-console)의 지침에 따라 앞에서 서비스 역할을 생성했습니다. 서비스 역할의 ARN을 확인하려면 [서비스 역할 ARN 확인(콘솔)](getting-started-create-service-role.md#getting-started-get-service-role-console) 단원을 참조하세요.

1. 이제 ARN이 있으므로 CodeDeploy 콘솔을 사용하여 애플리케이션 수정 버전을 배포할 수 있습니다.

   에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) CodeDeploy 콘솔을 엽니다.
**참고**  
[CodeDeploy 시작하기](getting-started-codedeploy.md)에서 설정한 사용자와 동일한 사용자로 로그인합니다.

1. 탐색 창에서 **배포**를 확장하고 **애플리케이션**을 선택합니다.

1. 애플리케이션 목록에서 **WordPress\$1App**을 선택합니다.

1. **배포 그룹** 탭에서 **Create deployment group(배포 그룹 생성)**을 선택합니다.

1. **Deployment group name(배포 그룹 이름)**에 **WordPress\$1DepGroup**을 입력합니다.

1. **배포 유형** 아래에서 **인 플레이스(In-place) 배포**를 선택합니다.

1. **환경 구성**에서 **Amazon EC2 인스턴스**를 선택합니다.

1. 를 **사용한 에이전트 구성 AWS Systems Manager**에서 기본값을 유지합니다.

1. **키**에 **Name**을(를) 입력합니다.

1. **값**에 **CodeDeployDemo**을(를) 입력합니다.
**참고**  
**CodeDeployDemo**을(를) 입력한 후 CodeDeploy가 일치하는 Amazon EC2 인스턴스를 하나 찾았는지 확인할 수 있도록 **1**이 **일치하는 인스턴스** 아래에 표시되어야 합니다.

1. **배포 구성**에서 **CodeDeployDefault.OneAtATime**을 선택합니다.

1. **서비스 역할 ARN**에서 서비스 역할 ARN을 선택한 후**배포 그룹 생성**을 선택합니다.

1. **배포 만들기**를 선택합니다.

1. **배포 그룹**에서 **WordPress\$1DepGroup**을(를) 선택합니다.

1. **리포지토리 유형** 옆의 **내 애플리케이션이 Amazon S3에 저장되어 있음**을 선택합니다. **수정 버전 위치**에 이전에 Amazon S3에 업로드한 샘플 WordPress 애플리케이션 수정 버전의 위치를 입력합니다. 위치를 가져오려면:

   1. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 S3 콘솔을 엽니다.

   1. 버킷 목록에서 **amzn-s3-demo-bucket**(또는 애플리케이션 수정 버전을 업로드한 버킷 이름)을 선택합니다.

   1. 객체 목록에서 **WordPressApp.zip**을 선택합니다.

   1. **개요** 탭에서 **링크** 필드의 값을 클립보드에 복사합니다.

      값이 다음과 같을 것입니다.

      **https://s3.amazonaws.com/amzn-s3-demo-bucket/WordPressApp.zip**

   1. CodeDeploy 콘솔로 돌아가서 **수정 버전 위치**에 **링크** 필드 값을 붙여 넣습니다.

1. **파일 형식**에서 파일 형식을 찾을 수 없다는 메시지가 표시되는 경우, **.Zip**을 선택합니다.

1. (선택 사항) **배포 설명** 상자에 설명을 입력합니다.

1. **배포 그룹 재정의**를 확장하고 **배포 구성**에서 **CodeDeployDefault.OneAtATime**을 선택합니다.

1. **Start deployment(배포 시작)**를 선택합니다. 새로 만든 배포에 대한 정보가 [**Deployments**] 페이지에 표시됩니다.

## 배포 모니터링 및 문제 해결
<a name="tutorials-wordpress-deploy-application-monitor"></a>

 AWS CLI 또는 콘솔을 사용하여 배포를 모니터링하고 문제를 해결합니다.

**Topics**
+ [배포를 모니터링하고 문제를 해결하려면(CLI)](#tutorials-wordpress-deploy-application-monitor-cli)
+ [배포를 모니터링하고 문제를 해결하려면(콘솔)](#tutorials-wordpress-deploy-application-monitor-console)

### 배포를 모니터링하고 문제를 해결하려면(CLI)
<a name="tutorials-wordpress-deploy-application-monitor-cli"></a>

1. **WordPress\$1App**이라는 애플리케이션 및 **WordPress\$1DepGroup**이라는 배포 그룹에 대해 **list-deployments** 명령을 호출하여 배포 ID를 가져옵니다.

   ```
   aws deploy list-deployments --application-name WordPress_App --deployment-group-name WordPress_DepGroup --query 'deployments' --output text
   ```

1. 배포 ID로 **get-deployment** 명령을 호출합니다.

   ```
   aws deploy get-deployment --deployment-id deploymentID --query 'deploymentInfo.status' --output text
   ```

1. 이 명령으로 배포의 전체 상태가 반환됩니다. 성공하면 `Succeeded` 값이 반환됩니다.

   전체 상태가 `Failed`이면 [list-deployment-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-instances.html) 및 [get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html)와 같은 명령을 호출하여 문제를 해결할 수 있습니다. 문제 해결 옵션을 더 보려면 [인스턴스에 대한 배포 실패를 조사하기 위해 로그 파일 분석](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures)을 참조하세요.

### 배포를 모니터링하고 문제를 해결하려면(콘솔)
<a name="tutorials-wordpress-deploy-application-monitor-console"></a>

CodeDeploy 콘솔의 **배포 ** 페이지에 있는 **상태** 열에서 배포 상태를 모니터링할 수 있습니다.

배포에 대한 자세한 정보를 확인하려면(특히, [**Status**] 열 값이 [**Succeeded**]가 아닌 경우):

1. **배포** 테이블에서 배포 이름을 선택합니다. 배포에 실패하면 실패 원인을 설명하는 메시지가 표시됩니다.

1. **인스턴스 활동**에서 배포에 대한 자세한 정보가 표시됩니다. 배포에 실패한 후 배포에 실패한 Amazon EC2 인스턴스와 해당 단계를 확인할 수 있습니다.

1. 문제 해결을 더 수행해야 할 경우 [CodeDeploy에서 인스턴스 정보 보기](instances-view-details.md)에 설명된 것과 같은 기능을 사용할 수 있습니다. 또한 Amazon EC2 인스턴스의 배포 로그 파일을 분석할 수도 있습니다. 자세한 내용은 [인스턴스에 대한 배포 실패를 조사하기 위해 로그 파일 분석](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures) 단원을 참조하세요.

## 배포 확인
<a name="tutorials-wordpress-deploy-application-verify-deployment"></a>

배포에 성공한 후 WordPress 설치가 작동 중인지 확인합니다. Amazon EC2 인스턴스의 퍼블릭 DNS 주소(뒤에 `/WordPress`이 옴)를 사용해 웹 브라우저에서 사이트를 확인합니다. (퍼블릭 DNS 값을 확인하려면 Amazon EC2 콘솔에서 Amazon EC2 인스턴스를 선택하고 **설명** 탭에서 **퍼블릭 DNS**의 값을 찾습니다.)

예를 들어, Amazon EC2 인스턴스의 퍼블릭 DNS 주소가 **ec2-01-234-567-890.compute-1.amazonaws.com**이면 다음 URL을 사용합니다.

```
http://ec2-01-234-567-890.compute-1.amazonaws.com/WordPress
```

브라우저에서 사이트를 볼 때 다음과 유사한 WordPress 시작 페이지가 표시됩니다.

![\[WordPress 시작 페이지\]](http://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/images/WordPress-Welcome-Page-013118.png)


 Amazon EC2 인스턴스에 HTTP 인바운드 규칙이 보안 그룹에 추가되지 않은 경우 WordPress 시작 페이지가 나타나지 않습니다. 원격 서버가 응답하지 않는다는 메시지가 표시되면 Amazon EC2 인스턴스의 보안 그룹에 인바운드 규칙이 있는지 확인합니다. 자세한 내용은 [Amazon Linux 또는 RHEL Amazon EC2 인스턴스에 HTTP 트래픽을 허용하는 인바운드 규칙 추가Windows Server Amazon EC2 인스턴스에 HTTP 트래픽을 허용하는 인바운드 규칙 추가](tutorials-wordpress-launch-instance.md#tutorials-wordpress-launch-instance-add-inbound-rule) 단원을 참조하십시오.