AWS/AWS_Service

[AWS] Slack을 사용한 CodePipeline 알림 설정

달콤한달팽이 2024. 4. 15. 16:33
반응형

안녕하세요, 달콤한달팽이입니다.🐌🙂


오늘은 CodePipeline과 Slack을 연동하여 Pipeline의 알림을 받는 방법을 알아보겠습니다.

 

이 과정에선 AWS Chatbot이라는 서비스가 사용되므로, Chatbot이 무엇인지부터 알아보겠습니다.


AWS Chatbot이란?

Chatbot이란, Slack 또는 Amazon Chime과의 ChatOps를 설정하고 다양한 AWS 서비스와의 상호작용을 지원하는 대화영 에이전트입니다.

 

이를 통해 사용자들은 AWS 관리 도구로 전환하지 않고도 AWS 리소스를 안정하게 구성하고, 작업을 실행하는 명령을 실행할 수 있게됩니다.


1) Chatbot - Client 생성

AWS Chatbot 서비스의 Configured clients탭에서 Configure new client를 통해 새로운 클라이언트를 생성합니다.

여기서 Client란 Slack, Amazon Chime과 같은 워크스페이스를 의미합니다.

 

이후 연동하고자 하는 워크스페이스에 대한 엑세스 권한을 Chatbot에게 허용해줍니다.

 

허용이 완료되었다면 Chatbot 서비스의 Configured clients 탭에 Slack이 하나 추가된 것을 볼 수 있습니다!

 

이후 Slack에서 "/invite @aws"를 입력하여 AWS를 초대해주세요.

 

2) Chatbot - Channel 연동

이제 AWS Chatbot에서 Channel을 연동해보도록 하겠습니다.

여기서 Channel이란 Client 워크스페이스에 존재하는 소통을 위한 채널을 의미합니다.

 

앞서 생성한 Slack Client에 들어가 Configure new channel을 선택합니다.

 

Channel의 이름과 Slack에 생성해둔 채널을 선택합니다.

 

해당 Channel이 사용할 Role의 이름과 Role에 부여할 Policy를 선택합니다.

Chatbot의 기능 중 알람을 전달받는 기능만 사용할 것이므로 "Notification permissions" Policy만 사용하도록 하겠습니다.

 

이후 Channel guardrail policies를 통해 채널 멤버가 수행할 수 있는 작업을 세부적으로 제어합니다.

Pipeline의 알람을 SNS를 통해 전달하므로 SNS에 대한 전체 권한을 부여하였습니다!

 

3) CodePipeline - Notification Rule 생성

Notification Rule이란, AWS CodeSeries(AWS CodeCommit, AWS CodeBuild, AWS CodeDeploy, AWS CodePipeline)의 이벤트 구독을 위한 알림 관리자를 의미합니다.

 

AWS 리소스에 대한 알림 규칙을 설정하면 알람 기능이 설정된 이벤트를 모니터링하는 EventBridge 규칙이 생성됩니다.

 

이후 이벤트가 발생할 경우 알림 규칙에 따라 지정된 SNS로 알림을 전달함으로써, 구독자는 이벤트에 대한 알림을 전달받게됩니다!

 

알람을 설정하고자 하는 Pipeline의 우상단에 위치한 Notify를 선택해주세요.

 

Notification Rule에 대한 이름을 설정하고, 알림 수준에 대하여 선택해주세요.

 

이제, 어떠한 이벤트에 대한 알람을 받을 것인지에 대해 설정해주세요!

(저는 Action 실패, 파이프라인 시작/성공/실패, 수동승인 요청일 때에 알림을 받을 수 있도록 설정했습니다.)

 

마지막으로 이벤트가 발생했을 때, 어떤 대상으로 이를 전달할지 선택해주도록 합니다.

(저희는 앞서 생성한 Slack Channel을 선택해주도록 하겠습니다!)

 

이후 정상적으로 생성이 되었다면 Pipeline의 Notifications 탭에서 Notification Rule을 확인할 수 있습니다.

 

이제 정상적으로 Pipeline에 대한 알람이 Slack으로 전달되는지 확인해보도록 하겠습니다!

 

4) Slack - 결과확인

Notification Rule이 등록된 파이프라인을 실행한 후, Slack을 확인해보도록 하겠습니다.

 

아래와 같이 정해진 이벤트에 대한 알림이 발생한다면 성공입니다!

 


지금까지 CodePipeline과 Slack을 연동하여 Pipeline의 알림을 받는 방법을 알아보았습니다.

 

감사합니다!

반응형