

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

# Amazon CloudWatch 도구를 사용하여 배포 모니터링
<a name="monitoring-cloudwatch"></a>

CodeDeploy 배포는 Amazon CloudWatch Events, CloudWatch 경보 및 Amazon CloudWatch Logs 등의 CloudWatch 도구를 사용하여 모니터링할 수 있습니다.

CodeDeploy 에이전트 및 배포에서 생성된 로그를 검토하면 배포 실패의 원인을 파악해 문제를 해결할 수 있습니다. 한 번에 하나의 인스턴스에 대해 CodeDeploy 로그를 검토하는 대신 CloudWatch Logs를 사용하여 중앙 위치에서 모든 로그를 모니터링할 수 있습니다.

CloudWatch 경보 및 CloudWatch Events를 사용하여 CodeDeploy의 배포를 모니터링하는 방법을 자세히 알아보려면 다음 주제를 참조하세요.

**Topics**
+ [CodeDeploy에서 CloudWatch 경보를 사용하여 배포 모니터링](monitoring-create-alarms.md)
+ [Amazon CloudWatch Events를 사용하여 배포 모니터링](monitoring-cloudwatch-events.md)

# CodeDeploy에서 CloudWatch 경보를 사용하여 배포 모니터링
<a name="monitoring-create-alarms"></a>

CodeDeploy 작업에서 사용 중인 인스턴스 또는 Amazon EC2 Auto Scaling 그룹에 대한 CloudWatch 경보를 만들 수 있습니다. 경보는 지정한 기간에 단일 지표를 감시하고 여러 기간에 지정된 임계값에 대한 지표 값을 기준으로 작업을 하나 이상 수행합니다. CloudWatch 경보는 상태가 변경(예: `OK`에서 `ALARM`으로)될 때 작업을 호출합니다.

기본 CloudWatch 경보 기능을 사용하면 배포에 사용 중인 인스턴스가 실패할 경우 CloudWatch에서 지원하는 어느 작업이든지 지정할 수 있습니다(예: Amazon SNS 알림 보내기 또는 인스턴스 중지, 종료, 재부팅 또는 복구). CodeDeploy 작업의 경우 배포 그룹과 연결한 CloudWatch 경보 중 어느 것이든지 활성화될 때마다 배포가 중지되도록 배포 그룹을 구성할 수 있습니다.

CodeDeploy 배포 그룹 하나에 CloudWatch 경보를 최대 10개까지 연결할 수 있습니다. 지정한 경보 중 하나가 활성화되면 배포가 중지되고 상태가 중지됨으로 업데이트됩니다. 이 옵션을 사용하려면 CodeDeploy 서비스 역할에 CloudWatch 권한을 부여해야 합니다.

CloudWatch 콘솔에서 CloudWatch 경보를 설정하는 방법에 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Amazon CloudWatch 경보 생성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/AlarmThatSendsEmail.html)을 참조하세요.

CodeDeploy에서 CloudWatch 경보를 배포 그룹과 연결하는 방법은 [CodeDeploy에서 배포 그룹 만들기](deployment-groups-create.md) 및 [CodeDeploy에서 배포 그룹 설정 변경](deployment-groups-edit.md) 섹션을 참조하세요.

**Topics**
+ [CodeDeploy 서비스 역할에 CloudWatch 권한 부여](monitoring-create-alarms-grant-permissions.md)

# CodeDeploy 서비스 역할에 CloudWatch 권한 부여
<a name="monitoring-create-alarms-grant-permissions"></a>

배포에 CloudWatch 경보 모니터링을 사용하려면 먼저 CodeDeploy 작업에서 사용하는 서비스 역할에 CloudWatch 리소스에 액세스할 수 있는 권한을 부여해야 합니다.

**서비스 역할에 CloudWatch 권한 부여하기**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

1. IAM 콘솔의 탐색 창에서 **역할**을 선택합니다.

1.  AWS CodeDeploy 작업에 사용하는 서비스 역할의 이름을 선택합니다.

1. [**Permissions**] 탭의 [**Inline Policies**]에서, [**Create Role Policy**]를 선택합니다.

   -또는-

   [**Create Role Policy**] 버튼을 사용할 수 없으면 [**Inline Policies**] 영역을 확장한 후 [**click here**]를 선택합니다.

1. [**Set Permissions**] 페이지에서 [**Custom Policy**]와 [**Select**]를 차례로 선택합니다.

1. **정책 검토** 페이지의 **정책 이름** 필드에 이 정책을 식별할 수 있는 이름을 입력합니다(예: `CWAlarms`).

1. 다음 내용을 [**Policy Document**] 필드에 붙여 넣습니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "cloudwatch:DescribeAlarms",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. **정책 적용**을 선택합니다.

# Amazon CloudWatch Events를 사용하여 배포 모니터링
<a name="monitoring-cloudwatch-events"></a>

Amazon CloudWatch Events를 사용하여 CodeDeploy 작업에서 인스턴스 또는 배포의 상태 변화("이벤트")를 감지하고 그에 대응할 수 있습니다. 그런 다음 CloudWatch Events는 사용자가 만든 규칙에 따라 배포 또는 인스턴스가 규칙에서 지정된 상태로 전환되면 하나 이상의 대상 작업을 호출합니다. 상태 변경 유형에 따라 알림을 보내거나, 상태 정보를 캡처하거나, 교정 작업을 수행하거나, 이벤트를 시작하거나, 기타 작업을 수행할 수 있습니다. CloudWatch Events를 CodeDeploy 작업의 일부로 사용하는 경우 다음과 같은 대상 유형을 선택할 수 있습니다.
+ AWS Lambda 함수
+  Kinesis 스트림
+ Amazon SQS 대기열
+ 기본 제공 대상(`EC2 CreateSnapshot API call`, `EC2 RebootInstances API call`, `EC2 StopInstances API call`, `EC2 TerminateInstances API call`)
+ Amazon SNS 주제

다음은 몇 가지 사용 사례입니다.
+ 배포에 실패할 때마다 Lambda 함수를 사용하여 Slack 채널에 알림을 전달합니다.
+ 배포 또는 인스턴스에 대한 데이터를 Kinesis 스트림으로 푸시하여 포괄적인 실시간 상태 모니터링을 지원합니다.
+ CloudWatch 경보 작업을 사용하여 지정한 배포 또는 인스턴스 이벤트가 발생할 경우 Amazon EC2 인스턴스를 자동으로 중지, 종료, 재부팅 또는 복구할 수 있습니다.

이 주제의 나머지 부분에서는 CodeDeploy에 대한 CloudWatch Events 규칙을 만드는 기본 절차를 설명합니다. CodeDeploy 작업에 사용할 이벤트 규칙을 만들기 전에 다음을 수행해야 합니다.
+ CloudWatch Events 사전 요구 사항을 완료합니다. 자세한 내용은 [Amazon CloudWatch Events 사전 요구 사항](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CWE_Prerequisites.html)을 참조하세요.
+ CloudWatch Events의 이벤트, 규칙 및 대상을 익힙니다. 자세한 내용은 [ Amazon CloudWatch Events란 무엇입니까?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) 및 [새로운 CloudWatch Events – AWS 리소스 변경 사항 추적 및 대응을 참조하세요](https://aws.amazon.com/blogs/aws/new-cloudwatch-events-track-and-respond-to-changes-to-your-aws-resources/).
+ 대상, 즉 이벤트 규칙에 사용할 대상을 생성합니다.

**CodeDeploy에 대한 CloudWatch Events 규칙을 생성하려면**

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

1. 탐색 창에서 **이벤트**를 선택합니다.

1. **규칙 생성(Create rule)**을 선택한 다음 **이벤트 선택기(Event selector)**에서 **AWS CodeDeploy**를 선택합니다.

1. 세부 정보를 지정합니다.
   + 인스턴스 및 배포의 모든 상태 변경에 적용되는 규칙을 만들려면 **모든 세부 정보 유형(Any detail type)**을 선택한 다음 6단계로 건너뜁니다.
   + 인스턴스에만 적용되는 규칙을 만들려면 **특정 상세 유형(Specific detail type)**을 선택한 다음 **CodeDeploy 인스턴스 상태 변경 알림(CodeDeploy Instance State-change Notification)**을 선택합니다.
   + 배포에만 적용되는 규칙을 만들려면 **특정 상세 유형(Specific detail type)**을 선택한 다음 **CodeDeploy 배포 상태 변경 알림(CodeDeploy Deployment State-change Notification)**을 선택합니다.

1. 규칙을 적용할 상태 변경을 지정합니다.
   + 모든 상태 변경에 적용되는 규칙을 만들려면 **모든 상태(Any state)**를 선택합니다.
   + 일부 상태 변경에만 적용되는 규칙을 만들려면 **특정 상태(Specific state(s))**를 선택한 다음 목록에서 상태 값을 한 개 이상 선택합니다. 다음 표에서는 선택할 수 있는 상태 값을 나열합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/monitoring-cloudwatch-events.html)

1. 규칙을 적용할 CodeDeploy 애플리케이션을 지정합니다.
   + 모든 애플리케이션에 적용되는 규칙을 만들려면 **모든 애플리케이션(Any application)**을 선택한 다음 8단계로 건너뜁니다.
   + 하나의 애플리케이션에만 적용되는 규칙을 만들려면 **특정 애플리케이션(Specific application)**을 선택한 다음 목록에서 애플리케이션의 이름을 선택합니다.

1. 규칙을 적용할 배포 그룹을 지정합니다.
   + 선택한 애플리케이션과 연결된 모든 배포 그룹에 적용되는 규칙을 만들려면 **모든 배포 그룹(Any deployment group)**을 선택합니다.
   + 선택한 애플리케이션과 연결된 배포 그룹 중 하나에만 적용되는 규칙을 만들려면 **특정 배포 그룹(Specific deployment group(s))**을 선택한 후 목록에서 배포 그룹의 이름을 선택합니다.

1. 이벤트 모니터링 요구 사항을 충족하도록 규칙 설정을 검토하세요.

1. **대상(Targets)** 영역에서 **대상 추가(Add target)\$1**를 선택하세요.

1. [**Select target type**] 목록에서 이 규칙을 사용하도록 설정한 대상 유형을 선택한 후, 해당 유형에 필요한 모든 추가 옵션을 구성합니다.

1. **세부 정보 구성**을 선택합니다.

1. **규칙 세부 정보 구성(Configure rule details)** 페이지에서 해당 규칙의 이름과 설명을 입력한 후 **상태(State)** 상자를 선택하여 규칙을 바로 활성화합니다.

1. 규칙이 만족스러우면 **규칙 생성(Create rule)**을 선택하세요.