본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

AWS Ambassador

SLACK을 활용한 AWS 모니터링 환경 구성하기

2023.02.01

1. 개요

AWS Cloudwatch에서는 AWS 내 Resource에 대한 모니터링 지표의 데이터가 수집되고 있습니다. 이런 모니터링 지표 데이터는 사용자의 필요에 따라 경보를 설정하고 AWS SNS(Simple Notification Service)를 이용하여 다양한 채널로 전달할 수 있습니다.

이번 포스트에서는 AWS Cloudwatch에서 생성된 경보를 AWS SNS를 통하여 최근 가장 보편적으로 사용되고 있는 커뮤니케이션 채널인 SLACK을 통해 받아 볼 수 있도록 구성해 보겠습니다.

2. 관련된 서비스

  1. AWS Cloudwatch
  2. AWS Simple Notification Service
  3. AWS Lambda
  4. AWS Key Management Service
  5. AWS IAM

3. 내용

3.1 아키텍처

3.2 목차

  1. Amazon SNS(Simple Notification Service) 구성
  2. Amazon KMS(Key Management Service) 구성
  3. SLACK Webhook URL 생성
  4. AWS Lambda 구성
  5. CloudWatch 경보 설정
  6. 동작 확인

3.3 수행

3.3.1 Amazon SNS(Simple Notification Service) 구성
SLACK으로 경보를 전달하기 위한 Lambda Function이 구독할 수 있는 Topic을 생성합니다.

3.3.1.1 Topic 생성
• Type : Standard
• Name : $$$$

3.3.2 Amazon KMS(Key Management Service) 구성
SLACK Webhook URL을 암호화하기 위해 KMS Key 및 Key Alias를 생성합니다.

3.3.2.1 Key 생성

3.3.2.2 Key Alias 생성

3.3.3 SLACK Web Hook URL 생성
경보를 받고자 하는 SLACK 채널에 수신 웹 후크 앱을 추가하고 Webhook URL을 발급받습니다.

3.3.3.1 앱 추가 메뉴

3.3.3.2 수신 웹 후크 추가

3.3.3.3 Webhook URL 확인

3.3.4 AWS Lambda 구성
SLACK으로 경보를 전송하는 Lambda Function을 구성합니다.

3.3.4.1 Lambda function 생성
AWS에서는 SNS를 통해 Cloudwatch 경보를 전송하는 Lambda function blueprint를 제공합니다.

• Function name : $$$$
• SNS topic : 이전 Step에서 생성한 SNS topic

• 환경변수
o slackChannel : #SLACK 채널명
o kmsEncryptedHookUrl : https://를 제외한 Webhook URL

3.3.4.2 Lambda function IAM Policy 추가
Lambda function에서 Cloudwatch를 읽을 수 있도록 CloudWatch Read 정책을 추가해 줍니다.
또한, 본 Lambda function을 동작하기 위해선 Webhook URL을 암호화하여야 합니다.
이를 위해 Lambda function이 KMS Key를 사용할 수 있도록 IAM Policy 를 추가해 주어야 합니다.

• 추가 Policy
o CloudWatchReadOnlyAccess
o KMS Decrypt Policy

• KMS Decrypt Policy 내용 (이전 Step에서 생성한 KMS Key의 arn을 사용합니다.)

3.3.4.3 Lambda functino 환경 변수 암호화
암호화 구성을 드롭 다운하여 ‘전송 암호화’ 및 이전 Step에서 생성한 KMS Key를 선택합니다.
환경 변수에 kmsEncryptedHookUrl을 암호화합니다.

3.3.5 CloudWatch 경보 생성
경보 생성 시, 이전 Step에서 생성한 SNS 알림을 선택합니다.

3.3.6 동작 확인
임계치 경보가 발생하여 SLACK을 통해 알림을 받아볼 수 있음을 확인합니다.

4. 마무리

이번 포스트를 통해 SLACK을 활용한 AWS 모니터링 구성 방법에 대해 알아볼 수 있었습니다.

Amazon SNS에 E-mail 구독을 구성할 수도 있지만 E-mail을 실시간으로 Push 받아서 확인하는 것보다 최근 보편적으로 사용되는 커뮤니케이션 채널인 SLACK을 통한 구성으로 비싼 모니터링 솔루션 구매가 어려운 프로젝트 혹은 스타트업과 같은 사이트에선 위와 같은 구성을 통해 시스템 모니터링을 강화하여 보다 안정적인 서비스를 제공할 수 있습니다.

일반적으로 대형 사이트나 엔터프라이즈 기업 내에는 모니터링 솔루션이 별도로 존재하여 위와 같은 구성이 필요하지 않을 수 있습니다.
하지만 그러한 사이트도 운영 조직으로 인수인계되기 전 혹은 개발 기간 동안의 모니터링을 위해 위와 같이 간편하고 비용 효율적인 구성을 통해 시스템 모니터링을 구성할 수 있습니다.

챗봇과 대화를 할 수 있어요