

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

# CodeDeploy에서 배포 모니터링
<a name="monitoring"></a>

모니터링은 CodeDeploy 및 AWS 솔루션의 안정성, 가용성 및 성능을 유지하는 데 중요한 부분입니다. 다중 지점 장애가 발생할 경우 보다 쉽게 디버깅할 수 있도록 AWS 솔루션의 모든 부분으로부터 모니터링 데이터를 수집해야 합니다. 하지만 CodeDeploy 모니터링을 시작하기 전에 다음 질문에 대한 답변을 포함하는 모니터링 계획을 작성해야 합니다.
+ 모니터링의 목표
+ 모니터링할 리소스
+ 이러한 리소스를 모니터링하는 빈도
+ 사용할 모니터링 도구
+ 모니터링 작업을 수행할 사람
+ 문제 발생 시 알려야 할 대상

다음 단계에서는 다양한 시간과 다양한 부하 조건에서 성능을 측정하여 환경에서 일반 CodeDeploy 성능의 기준선을 설정합니다. CodeDeploy가 과거 모니터링 데이터를 저장하는 것을 모니터링하면서 현재 성능 데이터를 이 과거 데이터와 비교하면 일반적인 성능 패턴과 성능 이상을 식별하고 이를 해결할 방법을 고안할 수 있습니다.

예를 들어 CodeDeploy를 사용하는 경우 배포 및 대상 인스턴스 상태를 모니터링할 수 있습니다. 배포 또는 인스턴스가 실패할 경우 애플리케이션 사양 파일을 재구성하거나, CodeDeploy 에이전트를 다시 설치 또는 업데이트하거나, 애플리케이션 또는 배포 그룹의 설정을 업데이트하거나, 인스턴스 설정 또는 AppSpec 파일을 변경해야 할 수 있습니다.

기준선을 설정하려면 최소한 다음 항목을 모니터링해야 합니다.
+ 배포 이벤트 및 상태
+ 인스턴스 이벤트 및 상태

## 자동 모니터링 도구
<a name="monitoring_automated_tools"></a>

AWS 는 CodeDeploy를 모니터링하는 데 사용할 수 있는 다양한 도구를 제공합니다. 이들 도구 중에는 모니터링을 자동으로 수행하도록 구성할 수 있는 도구도 있지만, 수동 작업이 필요한 도구도 있습니다. 모니터링 작업은 최대한 자동화하는 것이 좋습니다.

다음과 같은 자동 모니터링 도구를 사용하여 CodeDeploy를 관찰하고 문제 발생 시 보고할 수 있습니다.
+ **Amazon CloudWatch 경보** – 지정한 기간 동안 단일 지표를 감시하고, 여러 기간에 대해 지정된 임곗값과 관련하여 지표 값을 기준으로 하나 이상의 작업을 수행합니다. 이 작업은 Amazon Simple Notification Service(Amazon SNS) 주제 또는 Amazon EC2 Auto Scaling 정책에 전송되는 알림입니다. CloudWatch 경보는 특정 상태에 있다는 이유만으로는 작업을 호출하지 않습니다. 상태가 변경되고 지정한 기간 동안 유지되어야 합니다. 자세한 내용은 [Amazon CloudWatch 도구를 사용하여 배포 모니터링](monitoring-cloudwatch.md) 단원을 참조하십시오.

  CloudWatch 경보 모니터링을 사용하도록 서비스 역할을 업데이트하는 방법에 대한 자세한 내용은 [CodeDeploy 서비스 역할에 CloudWatch 권한 부여](monitoring-create-alarms-grant-permissions.md) 단원을 참조하세요. CloudWatch 경보 모니터링을 CodeDeploy 작업에 추가하는 방법에 대한 자세한 내용은 [CodeDeploy를 사용하여 애플리케이션 생성](applications-create.md), [CodeDeploy에서 배포 그룹 만들기](deployment-groups-create.md) 또는 [CodeDeploy에서 배포 그룹 설정 변경](deployment-groups-edit.md) 단원을 참조하세요.

  
+ **Amazon CloudWatch Logs** – AWS CloudTrail 또는 기타 소스의 로그 파일을 모니터링, 저장 및 액세스합니다. 자세한 내용은 Amazon CloudWatch 사용 설명서**의 [로그 파일 모니터링](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)을 참조하세요.

  CloudWatch 콘솔을 사용하여 CodeDeploy 로그를 보는 방법에 대한 자세한 내용은 [CloudWatch Logs 콘솔에서 CodeDeploy 로그 보기](https://aws.amazon.com/blogs/devops/view-aws-codedeploy-logs-in-amazon-cloudwatch-console/)를 참조하세요.
+ **Amazon CloudWatch Events** – 이벤트를 일치시키고 하나 이상의 대상 함수 또는 스트림으로 라우팅하여 값을 변경하거나 상태 정보를 캡처하거나 수정 작업을 수행합니다. 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Amazon CloudWatch Events란 무엇인가요](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchEvents.html)를 참조하세요.

  CodeDeploy 작업에서 CloudWatch Events를 사용하는 방법에 대한 자세한 내용은 [Amazon CloudWatch Events를 사용하여 배포 모니터링](monitoring-cloudwatch-events.md) 단원을 참조하세요.
+ **AWS CloudTrail 로그 모니터링** - 계정 간에 로그 파일을 공유하고, CloudTrail 로그 파일을 CloudWatch Logs로 전송하여 실시간으로 모니터링하고, Java로 로그 처리 애플리케이션을 작성하고, CloudTrail에서 전송한 후 로그 파일이 변경되지 않았는지 확인합니다. 자세한 내용은AWS CloudTrail 사용 설명서**의 [CloudTrail 로그 파일 작업](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-working-with-log-files.html)을 참조하세요.

  CodeDeploy에서 CloudTrail 사용에 관한 자세한 내용은 [를 사용하여 배포 모니터링 AWS CloudTrail](monitoring-cloudtrail.md) 단원을 참조하세요.
+ **Amazon Simple Notification Service** — 성공 또는 실패와 같은 배포 및 인스턴스 이벤트에 대한 SMS 또는 이메일 알림을 수신하도록 이벤트 기반 트리거를 구성합니다. 자세한 내용은 [주제 생성](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) 및 [Amazon Simple Notification Service는 무엇입니까](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)를 참조하세요.

  CodeDeploy에 대한 Amazon SNS 알림을 설정하는 방법에 대한 자세한 내용은 [Amazon SNS 이벤트 알림으로 배포 모니터링](monitoring-sns-event-notifications.md) 단원을 참조하세요.

## 수동 모니터링 도구
<a name="monitoring_manual_tools"></a>

CodeDeploy 모니터링의 또 한 가지 중요한 부분은 CloudWatch 경보에 포함되지 않는 항목을 수동으로 모니터링해야 한다는 점입니다. CodeDeploy, CloudWatch 및 기타 AWS 콘솔 대시보드는 AWS 환경 상태를 at-a-glance 볼 수 있습니다. 또한 CodeDeploy 배포에서 로그 파일을 확인하는 것이 좋습니다.
+ CodeDeploy 콘솔에는 다음이 표시됩니다.
  + 배포 상태
  + 수정 버전의 마지막 배포 시도 및 마지막으로 성공한 각 날짜 및 시간
  + 배포에서 성공, 실패, 건너뛴 인스턴스 또는 진행 중인 인스턴스 수
  + 온프레미스 인스턴스 상태
  + 온프레미스 인스턴스 등록 또는 등록 취소된 날짜 및 시간
+ CloudWatch 홈 페이지에 표시되는 항목은 다음과 같습니다.
  + 현재 경보 및 상태
  + 경보 및 리소스 그래프
  + 서비스 상태

  또한 CloudWatch를 사용하여 다음을 수행할 수 있습니다.
  + [맞춤 대시보드](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CloudWatch_Dashboards.html)를 생성하여 관심 있는 서비스 모니터링
  + 지표 데이터를 그래프로 작성하여 문제를 해결하고 추세 파악
  + 모든 AWS 리소스 지표 검색 및 찾아보기
  + 문제에 대해 알려주는 경보 생성 및 편집

**주제**
+ [Monitoring Deployments with Amazon CloudWatch Tools](monitoring-cloudwatch.md)
+ [Monitoring Deployments](monitoring-cloudtrail.md)
+ [Monitoring Deployments with Amazon SNS Event Notifications](monitoring-sns-event-notifications.md)

# 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)**을 선택하세요.

# 를 사용하여 배포 모니터링 AWS CloudTrail
<a name="monitoring-cloudtrail"></a>

CodeDeploy는 AWS 계정에서 CodeDeploy에 의해 또는 이를 대신하여 수행된 API 호출을 캡처하고 지정한 Amazon S3 버킷에 로그 파일을 전송하는 서비스인 CloudTrail과 통합됩니다. CloudTrail은 CodeDeploy 콘솔,를 통한 CodeDeploy 명령 AWS CLI또는 CodeDeploy API에서 직접 APIs. CloudTrail에서 수집하는 정보를 사용하여 CodeDeploy에 어떤 요청이 이루어졌는지, 어떤 소스 IP 주소에서 요청했는지, 누가 언제 요청했는지 등을 확인할 수 있습니다. 구성 및 사용 방법을 포함하여 CloudTrail에 대한 자세한 내용은 [AWS CloudTrail 사용 설명서](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)를 참조하세요.

## CloudTrail의 CodeDeploy 정보
<a name="service-name-info-in-cloudtrail"></a>

 AWS 계정에서 CloudTrail 로깅이 활성화되면 CodeDeploy 작업에 대한 API 호출이 로그 파일에서 추적됩니다. CodeDeploy 레코드는 로그 파일의 다른 AWS 서비스 레코드와 함께 작성됩니다. CloudTrail은 기간 및 파일 크기를 기준으로 새 파일을 만들고 기록하는 시점을 결정합니다.

모든 CodeDeploy 작업은 [AWS CodeDeploy 명령줄 레퍼런스](https://docs.aws.amazon.com/cli/latest/reference/deploy/index.html) 및 [AWS CodeDeploy API 참조](https://docs.aws.amazon.com/codedeploy/latest/APIReference/)에 로깅되고 문서화됩니다. 예를 들어, 배포를 생성하고, 애플리케이션을 삭제하고, 애플리케이션 개정 버전을 등록하도록 호출하면 CloudTrail 로그 파일에 항목이 생성됩니다.

모든 로그 항목은 누가 요청을 생성했는가에 대한 정보가 들어 있습니다. 로그의 사용자 자격 증명 정보는 요청이 루트 또는 사용자 자격 증명, 역할 또는 페더레이션 사용자에 대한 임시 보안 자격 증명 또는 다른 AWS 서비스에 의해 이루어졌는지 확인하는 데 도움이 됩니다. 자세한 내용은 [CloudTrail 이벤트 참조](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/event_reference_top_level.html)의 **userIdentity** 필드를 참조하세요.

원하는 기간만큼 버킷에 로그 파일을 저장할 수 있습니다. 그러나 Amazon S3 수명 주기 규칙을 정의하여 자동으로 로그 파일을 보관하거나 삭제할 수도 있습니다. 기본적으로 로그 파일은 Amazon S3 서버측 암호화(SSE)를 사용하여 암호화합니다.

새 로그 파일이 전송될 때 CloudTrail에서 Amazon SNS 알림을 게시하도록 할 수 있습니다. 자세한 내용은 [CloudTrail용 Amazon SNS 알림 구성](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)을 참조하십시오.

또한 여러 AWS 리전 및 여러 AWS 계정의 CodeDeploy 로그 파일을 단일 Amazon S3 버킷으로 집계할 수 있습니다. 자세한 내용은 [여러 리전에서 CloudTrail 로그 파일 받기](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/aggregating_logs_top_level.html)를 참조하세요.

## CodeDeploy 로그 파일 항목 이해
<a name="understanding-service-name-entries"></a>

CloudTrail 로그 파일은 하나 이상의 로그 항목이 있으며, 각 항목은 여러 개의 JSON 형식 이벤트로 구성됩니다. 로그 항목은 어떤 소스로부터의 요청 하나를 나타내며 요청된 작업, 모든 파라미터, 작업 날짜와 시간 등에 대한 정보가 들어 있습니다. 로그 항목의 순서가 정해져 있는 것은 아닙니다. 즉 순서가 지정된 퍼블릭 API 호출의 스택 추적이 아닙니다.

다음은 CodeDeploy가 배포 그룹을 생성하는 작업을 보여 주는 CloudTrail 로그 항목이 나타낸 예제입니다.

```
{
	"Records": [{
		"eventVersion": "1.02",
		"userIdentity": {
			"type": "AssumedRole",
			"principalId": "AKIAI44QH8DHBEXAMPLE:203.0.113.11",
			"arn": "arn:aws:sts::123456789012:assumed-role/example-role/203.0.113.11",
			"accountId": "123456789012",
			"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
			"sessionContext": {
				"attributes": {
					"mfaAuthenticated": "false",
					"creationDate": "2014-11-27T03:57:36Z"
				},
				"sessionIssuer": {
					"type": "Role",
					"principalId": "AKIAI44QH8DHBEXAMPLE",
					"arn": "arn:aws:iam::123456789012:role/example-role",
					"accountId": "123456789012",
					"userName": "example-role"
				}
			}
		},
		"eventTime": "2014-11-27T03:57:36Z",
		"eventSource": "codedeploy.amazonaws.com",
		"eventName": "CreateDeploymentGroup",
		"awsRegion": "us-west-2",
		"sourceIPAddress": "203.0.113.11",
		"userAgent": "example-user-agent-string",
		"requestParameters": {
			"applicationName": "ExampleApplication",
			"serviceRoleArn": "arn:aws:iam::123456789012:role/example-instance-group-role",
			"deploymentGroupName": "ExampleDeploymentGroup",
			"ec2TagFilters": [{
                "value": "CodeDeployDemo",
				"type": "KEY_AND_VALUE",
				"key": "Name"
            }],
            "deploymentConfigName": "CodeDeployDefault.HalfAtATime"
		},
		"responseElements": {
			"deploymentGroupId": "7d64e680-e6f4-4c07-b10a-9e117EXAMPLE"
		},
		"requestID": "86168559-75e9-11e4-8cf8-75d18EXAMPLE",
		"eventID": "832b82d5-d474-44e8-a51d-093ccEXAMPLE",
		"eventType": "AwsApiCall",
		"recipientAccountId": "123456789012"
	},
    ... additional entries ...
    ]
}
```

# Amazon SNS 이벤트 알림으로 배포 모니터링
<a name="monitoring-sns-event-notifications"></a>

CodeDeploy 배포 그룹에 트리거를 추가하여 배포 또는 배포 그룹의 인스턴스와 관련된 이벤트에 대한 알림을 수신할 수 있습니다. 이러한 알림은 트리거 작업의 일부로 만든 Amazon SNS 주제를 구독하는 수신자에게 전송됩니다.

CodeDeploy 이벤트에 대한 알림은 SMS 메시지 또는 이메일 메시지로 수신할 수 있습니다. 지정된 이벤트가 발생할 때 생성되는 JSON 데이터는 Amazon SQS 대기열로 메시지 보내기 또는 AWS Lambda의 함수 호출 등 다른 방법으로 사용할 수 있습니다. 배포 및 인스턴스 트리거에 대해 제공되는 JSON 데이터의 구조를 보려면 [CodeDeploy 트리거에 대한 JSON 데이터 형식](monitoring-sns-event-notifications-json-format.md) 단원을 참조하세요.

다음과 같은 경우 트리거를 사용하여 알림을 수신하도록 선택할 수 있습니다.
+ 문제를 해결할 수 있도록 배포에 실패하거나 배포가 중지된 경우를 알아야 하는 개발자인 경우
+ Amazon EC2 플릿의 상태를 모니터링하기 위해 실패한 인스턴스 수를 알아야 하는 시스템 관리자인 경우
+ 배포 및 인스턴스 이벤트의 개수를 한 눈에 파악하길 원하는 관리자인 경우. 이러한 정보는 여러 알림 유형을 데스크톱 이메일 클라이언트의 폴더로 라우팅하는 규칙을 필터링해 파악할 수 있습니다.

다음 모든 이벤트 유형에 대해 각 CodeDeploy 배포 그룹에 트리거를 최대 10개까지 만들 수 있습니다.


| 배포 이벤트 | 인스턴스 이벤트 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/monitoring-sns-event-notifications.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/monitoring-sns-event-notifications.html)  | 
| ¹블루/그린 배포에만 적용됩니다. 대체 환경의 인스턴스에 최신 애플리케이션 수정이 설치되었으며 원본 환경에서의 트래픽을 이제 로드 밸런서 뒤로 다시 라우팅할 수 있음을 나타냅니다. 자세한 내용은 [CodeDeploy에서 배포 작업](deployments.md) 단원을 참조하세요. | 

**Topics**
+ [서비스 역할에 Amazon SNS 권한 부여](monitoring-sns-event-notifications-permisssions.md)
+ [CodeDeploy 이벤트에 대한 트리거 만들기](monitoring-sns-event-notifications-create-trigger.md)
+ [배포 그룹에서 트리거 편집](monitoring-sns-event-notifications-edit-trigger.md)
+ [배포 그룹에서 트리거 삭제](monitoring-sns-event-notifications-delete-trigger.md)
+ [트리거의 JSON 데이터 형식](monitoring-sns-event-notifications-json-format.md)

# CodeDeploy 서비스 역할에 Amazon SNS 권한 부여
<a name="monitoring-sns-event-notifications-permisssions"></a>

트리거가 알림을 생성하려면 CodeDeploy 작업에서 사용하는 서비스 역할에 Amazon SNS 리소스에 액세스할 수 있는 권한이 부여되어 있어야 합니다.

**서비스 역할에 Amazon SNS 권한을 부여하려면**

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

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

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

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

   -또는-

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

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

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

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

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

****  

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

------

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

# CodeDeploy 이벤트에 대한 트리거 만들기
<a name="monitoring-sns-event-notifications-create-trigger"></a>

 AWS CodeDeploy 배포 또는 인스턴스 이벤트에 대해 Amazon Simple Notification Service(Amazon SNS) 주제를 게시하는 트리거를 생성할 수 있습니다. 그런 다음, 해당 이벤트가 발생하면 연결된 주제의 모든 구독자가 주제에 지정된 엔드포인트(예: SMS 메시지 또는 이메일 메시지)를 통해 알림을 수신합니다. Amazon SNS 주제를 구독하기 위한 다양한 방법을 제공합니다.

트리거를 생성하기 전에 트리거가 가리키도록 Amazon SNS 주제를 설정해야 합니다. 자세한 내용은 [주제 만들기](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)를 참조하세요. 주제를 만들면 목적을 식별하는 이름을 `Topic-group-us-west-3-deploy-fail` 또는 `Topic-group-project-2-instance-stop` 등의 형식으로 지정하는 것이 좋습니다.

또한 트리거에 대한 알림을 보내려면 CodeDeploy 서비스 역할에 Amazon SNS 권한을 부여해야 합니다. 자세한 내용은 [CodeDeploy 서비스 역할에 Amazon SNS 권한 부여](monitoring-sns-event-notifications-permisssions.md) 단원을 참조하세요.

주제를 만든 후에는 구독자를 추가할 수 있습니다. 주제 생성, 관리 및 구독에 대한 자세한 내용은 [Amazon Simple Notification Service란 무엇입니까?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)을 참조하세요.



## CodeDeploy 이벤트에 대한 알림을 전송하는 트리거 만들기(콘솔)
<a name="monitoring-sns-event-notifications-create-trigger-console"></a>

CodeDeploy 콘솔을 사용하여 CodeDeploy 이벤트에 대한 트리거를 만들 수 있습니다. 설정 프로세스를 마치면 권한 및 트리거 세부 정보가 둘 다 제대로 설정되었는지 확인하기 위해 테스트 알림 메시지가 전송됩니다.

**CodeDeploy 이벤트에 대한 트리거를 만들려면**

1. 에서 AWS CodeDeploy 콘솔을 AWS Management Console엽니다.

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

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

1. **애플리케이션** 페이지에서 트리거를 추가할 배포 그룹과 연결된 애플리케이션 이름을 선택합니다.

1. **애플리케이션 세부 정보** 페이지에서 트리거를 추가할 배포 그룹을 선택합니다.

1.  **편집**을 선택합니다.

1.  **고급 옵션**을 확장합니다.

1.  **트리거** 영역에서 **트리거 생성**을 선택합니다.

1. **배포 트리거 생성** 창에서 다음을 수행합니다.

   1. **트리거 이름**에 용도를 쉽게 식별할 수 있도록 트리거 이름을 입력합니다. `Trigger-group-us-west-3-deploy-fail` 또는 `Trigger-group-eu-central-instance-stop` 등의 형식이 좋습니다.

   1. **이벤트**에서 Amazon SNS 주제가 알림을 전송하도록 트리거할 이벤트 유형을 선택합니다.

   1. **Amazon SNS 주제**에서 이 트리거에 대한 알림을 전송하기 위해 만든 주제 이름을 선택합니다.

   1.  **트리거 생성**을 선택합니다. CodeDeploy는 테스트 알림을 전송하여 CodeDeploy와 Amazon SNS 주제 간의 액세스 구성이 올바른지 확인합니다. 선택한 주제 엔드포인트 유형에 따라 주제를 구독하는 경우, SMS 메시지 또는 이메일 메시지로 확인 메시지가 수신됩니다.

1.  **변경 사항 저장**을 선택합니다.

## CodeDeploy 이벤트에 대한 알림을 전송하는 트리거 만들기(CLI)
<a name="monitoring-sns-event-notifications-create-trigger-cli"></a>

CLI를 사용하면 배포 그룹을 만들 때 트리거를 포함하거나 기본 배포 그룹에 트리거를 추가할 수 있습니다.

### 새 배포 그룹에 대한 알림을 전송하는 트리거를 만들려면
<a name="monitoring-sns-event-notifications-create-trigger-cli-new"></a>

JSON 파일을 만들어 배포 그룹을 구성한 다음 `--cli-input-json` 옵션을 사용하여 [create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) 명령을 실행합니다.

`--generate-cli-skeleton` 옵션을 통해 JSON 형식의 사본을 가져와 일반 텍스트 편집기에 필수 값을 입력하면 JSON 파일을 아주 쉽게 만들 수 있습니다.

1. 다음 명령을 실행한 후 일반 텍스트 편집기에 결과를 복사합니다.

   ```
   aws deploy create-deployment-group --generate-cli-skeleton
   ```

1. 출력에 기존 CodeDeploy 애플리케이션의 이름을 추가합니다.

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentGroupName": "",
       "deploymentConfigName": "",
       "ec2TagFilters": [
           {
               "Key": "",
               "Value": "",
               "Type": ""
           }
       ],
       "onPremisesInstanceTagFilters": [
           {
               "Key": "",
               "Value": "",
               "Type": ""
           }
       ],
       "autoScalingGroups": [
           ""
       ],
       "serviceRoleArn": "",
       "triggerConfigurations": [
           {
               "triggerName": "",
               "triggerTargetArn": "",
               "triggerEvents": [
                   ""
               ]
           }
       ]
   }
   ```

1. 구성할 파라미터 값을 입력합니다.

   [create-deployment-group](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentGroup.html) 명령을 사용할 때 최소한 다음 파라미터 값을 입력해야 합니다.
   + `applicationName`: 이미 계정에 생성된 애플리케이션 이름 
   + `deploymentGroupName`: 생성 중인 배포 그룹의 이름
   + `serviceRoleArn`: 계정에서 CodeDeploy에 대해 설정된 기존 서비스 역할의 ARN 자세한 내용은 [2단계: CodeDeploy에 대한 서비스 역할 생성](getting-started-create-service-role.md) 단원을 참조하세요.

   `triggerConfigurations` 섹션에서 다음 파라미터 값을 입력합니다.
   + `triggerName`: 쉽게 식별할 수 있도록 트리거 이름을 지정합니다. `Trigger-group-us-west-3-deploy-fail` 또는 `Trigger-group-eu-central-instance-stop` 등의 형식이 좋습니다.
   + `triggerTargetArn`: 트리거에 연결하기 위해 생성한 Amazon SNS주제의 ARN으로, 형식은 `arn:aws:sns:us-east-2:444455556666:NewTestTopic`입니다.
   + `triggerEvents`: 알림을 트리거하려는 이벤트 유형 하나 이상의 이벤트 유형을 지정할 수 있으며, 이벤트 유형 이름이 여러 개인 경우 쉼표로 구분합니다(예: `"triggerEvents":["DeploymentSuccess","DeploymentFailure","InstanceFailure"]`). 하나 이상의 이벤트 유형을 추가할 때, 해당되는 모든 유형 알림이 각기 다른 주제가 아닌 지정된 주제로 전송됩니다. 다음 이벤트 유형 중에서 선택할 수 있습니다.
     + DeploymentStart
     + DeploymentSuccess
     + DeploymentFailure
     + DeploymentStop
     + DeploymentRollback
     + DeploymentReady(블루/그린 배포의 대체 인스턴스에만 적용됨)
     + InstanceStart
     + InstanceSuccess
     + InstanceFailure
     + InstanceReady(블루/그린 배포의 대체 인스턴스에만 적용됨)

   다음 구성 예제는 `TestApp-us-east-2`라는 애플리케이션에 대해 `dep-group-ghi-789-2`라는 배포 그룹을 생성하고, 배포가 시작, 성공 또는 실패할 때마다 알림 메시지를 전송하는 트리거를 생성합니다.

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "deploymentGroupName": "dep-group-ghi-789-2",
       "ec2TagFilters": [
           {
               "Key": "Name",
               "Value": "Project-ABC",
               "Type": "KEY_AND_VALUE"
           }
       ],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "triggerConfigurations": [
           {
               "triggerName": "Trigger-group-us-east-2",
               "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments",
               "triggerEvents": [
                   "DeploymentStart",
                   "DeploymentSuccess",
                   "DeploymentFailure"
               ]
           }
       ]
   }
   ```

1. 업데이트를 JSON 파일로 저장한 후 **create-deployment-group** 명령을 실행할 때 `--cli-input-json` 옵션을 사용하여 해당 파일을 호출합니다.
**중요**  
파일 이름 앞에 `file://`를 포함해야 합니다. 이 명령에 필수적입니다.

   ```
   aws deploy create-deployment-group --cli-input-json file://filename.json
   ```

   만들기 프로세스를 마치면 권한 및 트리거 세부 정보가 둘 다 제대로 설정되었음을 나타내는 테스트 알림 메시지가 수신됩니다.

### 기존 배포 그룹에 대한 알림을 전송하는 트리거를 만들려면
<a name="monitoring-sns-event-notifications-create-trigger-cli-existing"></a>

 AWS CLI 를 사용하여 CodeDeploy 이벤트에 대한 트리거를 기존 배포 그룹에 추가하려면 JSON 파일을 생성하여 배포 그룹을 업데이트한 다음 `--cli-input-json` 옵션을 사용하여 [update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) 명령을 실행합니다.

**get-deployment-group** 명령을 실행하여 배포 그룹 구성의 사본을 JSON 형식으로 가져온 다음 일반 텍스트 편집기에서 파라미터 값을 업데이트하면 JSON 파일을 아주 쉽게 만들 수 있습니다.

1.  다음 명령을 실행한 후 일반 텍스트 편집기에 결과를 복사합니다.

   ```
   aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group
   ```

1. 출력에서 다음을 삭제합니다.
   + 출력 시작 부분에서 `{ "deploymentGroupInfo":`를 삭제합니다.
   + 출력 끝부분에서 `}`를 삭제합니다.
   + `deploymentGroupId`을 포함하는 행을 삭제합니다.
   + `deploymentGroupName`을 포함하는 행을 삭제합니다.

   텍스트 파일의 내용이 다음과 같아야 합니다.

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "autoScalingGroups": [],
       "ec2TagFilters": [
           {
               "Type": "KEY_AND_VALUE",
               "Value": "Project-ABC",
               "Key": "Name"
           }
       ],
       "triggerConfigurations": [],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "onPremisesInstanceTagFilters": []
   }
   ```

1. `triggerConfigurations` 섹션에, `triggerEvents`, `triggerTargetArn` 및 `triggerName` 파라미터에 대한 데이터를 추가합니다. 트리거 구성 파라미터에 대한 자세한 내용은 [TriggerConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_TriggerConfig.html)를 참조하세요.

   텍스트 파일의 내용이 다음과 같아야 합니다. 이 코드는 배포가 시작, 성공 또는 실패할 때마다 전송할 알림 메시지를 표시합니다.

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "autoScalingGroups": [],
       "ec2TagFilters": [
           {
               "Type": "KEY_AND_VALUE",
               "Value": "Project-ABC",
               "Key": "Name"
           }
       ],
       "triggerConfigurations": [
           {
               "triggerEvents": [
                   "DeploymentStart",
                   "DeploymentSuccess",
                   "DeploymentFailure"
               ],
               "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments",
               "triggerName": "Trigger-group-us-east-2"
           }
       ],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "onPremisesInstanceTagFilters": []
   }
   ```

1. 업데이트를 JSON 파일로 저장한 후 `--cli-input-json` 옵션을 사용하여 [update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) 명령을 실행합니다. `--current-deployment-group-name` 옵션을 포함하고 *filename*을 JSON 파일 이름으로 바꿔야 합니다.
**중요**  
파일 이름 앞에 `file://`를 포함해야 합니다. 이 명령에 필수적입니다.

   ```
   aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json
   ```

   만들기 프로세스를 마치면 권한 및 트리거 세부 정보가 둘 다 제대로 설정되었음을 나타내는 테스트 알림 메시지가 수신됩니다.

# CodeDeploy 배포 그룹에서 트리거 편집
<a name="monitoring-sns-event-notifications-edit-trigger"></a>

알림 요구 사항을 변경한 경우 트리거를 새로 만드는 대신 트리거를 수정할 수 있습니다.

## CodeDeploy 수정(CLI)
<a name="monitoring-sns-event-notifications-edit-trigger-cli"></a>

 배포 그룹을 업데이트할 때 AWS CLI 를 사용하여 CodeDeploy 이벤트의 트리거 세부 정보를 변경하려면 JSON 파일을 생성하여 배포 그룹의 속성에 대한 변경 사항을 정의한 다음 `--cli-input-json` 옵션을 사용하여 [update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/update-deployment-group.html) 명령을 실행합니다.

**get-deployment-group** 명령을 실행하여 현재 배포 그룹 세부 정보를 JSON 형식으로 가져온 다음 일반 텍스트 편집기에서 필수 값을 편집하면 JSON 파일을 아주 쉽게 만들 수 있습니다.

1. 다음 명령을 실행하고 *application* 및 *deployment-group*을 해당 애플리케이션 및 배포 그룹의 이름으로 바꿉니다.

   ```
   aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group
   ```

1. 일반 텍스트 편집기에 명령 결과를 복사한 후 다음을 삭제합니다.
   + 출력 시작 부분에서 `{ "deploymentGroupInfo":`를 삭제합니다.
   + 출력 끝부분에서 `}`를 삭제합니다.
   + `deploymentGroupId`을 포함하는 행을 삭제합니다.
   + `deploymentGroupName`을 포함하는 행을 삭제합니다.

   텍스트 파일의 내용이 다음과 같아야 합니다.

   ```
   {
       "applicationName": "TestApp-us-east-2",
       "deploymentConfigName": "CodeDeployDefault.OneAtATime",
       "autoScalingGroups": [],
       "ec2TagFilters": [
           {
               "Type": "KEY_AND_VALUE",
               "Value": "East-1-Instances",
               "Key": "Name"
           }
       ],
       "triggerConfigurations": [
           {
               "triggerEvents": [
                   "DeploymentStart",
                   "DeploymentSuccess",
                   "DeploymentFailure",
                   "DeploymentStop"
               ],
               "triggerTargetArn": "arn:aws:sns:us-east-2:111222333444:Trigger-group-us-east-2",
               "triggerName": "Trigger-group-us-east-2"
           }
       ],
       "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role",
       "onPremisesInstanceTagFilters": []
   }
   ```

1. 필요한 경우 파라미터를 변경합니다. 트리거 구성 파라미터에 대한 자세한 내용은 [TriggerConfig](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_TriggerConfig.html)를 참조하세요.

1. 업데이트를 JSON 파일로 저장한 후 `--cli-input-json` 옵션을 사용하여 [update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/update-deployment-group.html) 명령을 실행합니다. `--current-deployment-group-name` 옵션을 포함하고 *filename*을 JSON 파일 이름으로 바꿔야 합니다.
**중요**  
파일 이름 앞에 `file://`를 포함해야 합니다. 이 명령에 필수적입니다.

   ```
   aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json
   ```

만들기 프로세스를 마치면 권한 및 트리거 세부 정보가 둘 다 제대로 설정되었음을 나타내는 테스트 알림 메시지가 수신됩니다.

# CodeDeploy 배포 그룹에서 트리거 삭제
<a name="monitoring-sns-event-notifications-delete-trigger"></a>

배포 그룹당 트리거 개수 제한이 10개이므로 더 이상 사용하지 않는 트리거를 삭제하려고 할 수 있습니다. 트리거 삭제는 실행 취소할 수 없지만 트리거를 다시 생성할 수 있습니다.

## 배포 그룹에서 트리거 삭제(콘솔)
<a name="monitoring-sns-event-notifications-delete-trigger-console"></a>

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

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

1. **애플리케이션** 페이지에서 트리거를 삭제할 배포 그룹과 연결된 애플리케이션 이름을 선택합니다.

1. **애플리케이션 세부 정보** 페이지에서 트리거를 삭제할 배포 그룹을 선택합니다.

1.  **편집**을 선택합니다.

1.  **고급 옵션**을 확장합니다.

1. **트리거** 영역에서 삭제할 트리거를 선택한 다음 **트리거 삭제**를 선택합니다.

1.  **변경 사항 저장**을 선택합니다.

## 배포 그룹에서 트리거 삭제(CLI)
<a name="monitoring-sns-event-notifications-delete-trigger-cli"></a>

CLI를 사용하여 트리거를 삭제하려면 빈 트리거 구성 파라미터를 사용하여 [update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/update-deployment-group.html) 명령을 호출해 다음을 지정합니다.
+ 배포 그룹과 연결된 애플리케이션 이름. 애플리케이션 이름 목록을 보려면 [list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html) 명령을 호출합니다.
+ 애플리케이션과 연결된 배포 그룹 이름. 배포 그룹 이름 목록을 보려면 [list-deployment-groups](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-groups.html) 명령을 호출합니다.

예:

```
aws deploy update-deployment-group --application-name application-name --current-deployment-group-name deployment-group-name --trigger-configurations
```

# CodeDeploy 트리거에 대한 JSON 데이터 형식
<a name="monitoring-sns-event-notifications-json-format"></a>

배포 또는 인스턴스에 대한 트리거가 사용자 지정 알림 워크플로우(예: Amazon SQS 대기열로 메시지 전송 또는 AWS Lambda에서 함수 호출)에서 활성화될 때 생성되는 JSON 출력을 사용할 수 있습니다.

**참고**  
이 설명서에서는 JSON을 사용하여 알림을 구성하는 방법을 다루지 않습니다. Amazon SNS를 사용하여 Amazon SQS 대기열에 메시지를 보내는 방법에 대한 자세한 내용은 [Amazon SQS 대기열로 Amazon SNS 메시지 전송](https://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.html)을 참조하세요. Amazon SNS 사용하여 Lambda 함수를 호출하는 방법에 대한 자세한 내용은 [Amazon SNS 알림을 사용하여 Lambda 함수 호출](https://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html)을 참조하세요.

다음 예에서는 CodeDeploy 트리거에서 사용할 수 있는 JSON 출력의 구조를 보여 줍니다.

**인스턴스 기반 트리거에 대한 샘플 JSON 출력**

```
{
    "region": "us-east-2",
    "accountId": "111222333444",
    "eventTriggerName": "trigger-group-us-east-instance-succeeded",
    "deploymentId": "d-75I7MBT7C",
    "instanceId": "arn:aws:ec2:us-east-2:444455556666:instance/i-496589f7",
    "lastUpdatedAt": "1446744207.564",
    "instanceStatus": "Succeeded",
    "lifecycleEvents": [
        {
            "LifecycleEvent": "ApplicationStop",
            "LifecycleEventStatus": "Succeeded",
            "StartTime": "1446744188.595",
            "EndTime": "1446744188.711"
        },
        {
            "LifecycleEvent": "BeforeInstall",
            "LifecycleEventStatus": "Succeeded",
            "StartTime": "1446744189.827",
            "EndTime": "1446744190.402"
        }
//More lifecycle events might be listed here
    ]
}
```

**배포 기반 트리거에 대한 샘플 JSON 출력**

```
{
    "region": "us-west-1",
    "accountId": "111222333444",
    "eventTriggerName": "Trigger-group-us-west-3-deploy-failed",
    "applicationName": "ProductionApp-us-west-3",
    "deploymentId": "d-75I7MBT7C",
    "deploymentGroupName": "dep-group-def-456",
    "createTime": "1446744188.595",
    "completeTime": "1446744190.402",
    "deploymentOverview": {
        "Failed": "10",
        "InProgress": "0",
        "Pending": "0",
        "Skipped": "0",
        "Succeeded": "0"
    },
    "status": "Failed",
    "errorInformation": {
        "ErrorCode": "IAM_ROLE_MISSING",
        "ErrorMessage": "IAM Role is missing for deployment group: dep-group-def-456"
    }
}
```