[AWS Cloud 구축 및 운영 Mini Project] 04. AWS Cloudwatch & Slack 알람 연동

leny·2021년 6월 1일
0
post-thumbnail

이번 포스팅에서는 AWS Cloudwatch 통해, slack 알람 받기를 주제로, 진행한 프로젝트에 대해 요약해볼 것이다.

✏️ 글의 구성

주제: CloudWatch → Slack 알람 전송

  1. CloudWatch를 통해 실시간으로 AWS 자원을 모니터링합니다.
  2. CloudWatch에서 설정한 알람이 “정상 → 경보” 상태로 변경되면 연결된 Slack 채널로 알람이 전송되어 24*365 관제할 수 있습니다.




시스템 구성

  • Slack - 채널 기반 messaging 플랫폼, 채널 고유의 webhook url을 통해서 알람 수신
  • Cloudwatch - AWS 리소스 및 실행 중인 어플리케이션 모니터링
  • SNS - Publisher <-> Subscriber 간 통신 채널, 지원되는 프로토콜을 이용해 클라이언트에 메시지 발송
  • Lambda - 서버리스 컴퓨팅 서비스로, 서버를 관리하지 않아도 코드를 실행할 수 있게 하는 컴퓨팅 서비스
  • KMS - 데이터 암호화에서 사용되는 암호화 키, 인터넷 전송 시에 암호화 통신에 사용한다



1. Slack 설정하기

  • 로그인 & workspace & channel 생성 한 후에, 설정 및 관리 > 앱 관리 > 앱에 들어간다.

  • 검색창에 web hook 검색해서, 수신 웹후크 Slack에 추가한다.

  • 채널 선택하고, 앱 추가한다.

  • 설정 저장 > 웹 후크 복사 (키 암호화에 사용 예정) > cURL 복사 > EC2 인스턴스에 붙여넣기

  • Slack message 수신 된 것 확인

2. SNS 토픽 생성하기

SNS란?

  1. 메세지 브로커
  2. 구독 중인 클라이언트(subscirber)에 메시지 전달을 조정 및 관리
  3. Publish - 게시자, 이벤트 생산
  4. Subscriber - 구독자, 이벤트 구독
  5. Cloudwatch에서 알람 발생 -> SNS 푸시 서비스 호출 -> Lambda 함수 트리거 -> 연동된 Slack 채널로 알람 전송

SNS 토픽 생성하는 방법 1단계

  • SNS > 주제 > 주제 생성

3. Lambda 함수 생성하기

Lambda란?
1. serverless computing service
2. application을 실행하기 위한 별도의 server setup 없이 곧바로 code를 실행해주는 서비스
3. 고정비용 없이 사용 시간에 대해서만 비용 지불(pay as you go/ 종량제)
4. Cloudwatch에서 알람 발생 -> SNS 푸시 서비스 호출 -> Lambda 함수 트리거 -> 연동된 Slack 채널로 알람 전송

Lambda 함수 생성
1. 블루프린트를 이용해 람다함수 생성

  • aws 콘솔에서 lambda 검색 > 함수 생성

  • blueprint(블루프린트) 사용 > slack 검색 > cloudwatch-alarm-to-slack-python 선택

  • 기본정보 입력 (함수 이름, 실행 역할)
  • SNS 트리거 (mission-sns 선택, 트리거 활성화)

  • 환경 변수 설정


4. KMS 키 설정하기

KMS (Key Management Service)란?

데이터를 암호화하는데 사용되는 암호화 키인 고객 마스터 키(CMKs) 관리
Lambda 함수에서 slack으로 메시지 전송할 때 web hook 암호화
Cloudwatch에서 알람 발생 -> SNS 푸시 서비스 호출 -> lambda 함수 트리거 -> 연동된 slack 채널로 알람 전송

  • KMS 키 생성

  • KMS > 고객 관리형 키 > 키 생성 확인

 aws kms create-key --region ap-northeast-2 // 키 생성
  • KMS 키 별칭 생성
aws kms create-alias --alias-name alias/mission-kms-key --target-key-id 00c6fff7-ce8b04e2e-b221-89ed6d6c2600 --region ap-northeast-2
  • KMS 키 별칭 생성 확인

  • KMS 키 암호화

AWS CLI version 2 일때

aws kms encrypt --key-id alias/mission-kms-key --plaintext fileb://<(echo 
"hooks.slack.com/services/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") --region ap-northeast-2 
--encryption-context LambdaFunctionName=mission-lambda

profile
행복과 성장에 대해 고민하는 사람🤓 , 포스팅 주기가 잦지 않을 수 있습니다만, 항상 좋은 내용을 담고자 합니다🙇🏼

0개의 댓글