본문 바로가기
INFRA/DevOps

AWS Chatbot을 이용한 ChatOps 모니터링

by BTC_Crong 2023. 12. 4.

베하~!! 안녕하세요 1-Tier팀 입니다.

시스템을 운영 하다보면 다양한 장애를 마주하게 됩니다.

각 장애는 어디서 발생했고, 어떻게 처리 되어야 할지 빠르게 파악하는 것이 중요합니다. 이번 포스팅에서는

장애 상황을 인지하고 분석하고 문제 해결을 위한 여러 툴을 사용하고 있는데 그 중에서 AWS Chatbot을 이용하여 모니터링 솔루션에 대해 알아보겠습니다.

 

Amazon Bedrock
최근에는 대규모 언어 모델(LLM)의 발전으로 장애 상황을 생성형 AI (Generative AI) 에게 질문하고 답변받을 수 있습니다.

또한, 다양한 생성형 AI를 이용하면 기존에 직접 검색을 통한 해결 방법 대비 빠르게 문제해결이 가능합니다.
AWS에서는 지난 23년 10월 23일, Amazon Bedrock이 정식 출시되어, 강력한 생성형 AI의 기능을 API 호출 방식으로 활용할 수 있습니다.

 

RAG (Retrieval Augmented Generation)
RAG는 LLM에게 미리 질문과 관련된 참고자료를 알려주어, GPT의 가장 큰 단점인 환각을 줄이고 보다 정확하게 대답을 생성할 수 있도록 합니다.

 

ChatOps

ChatOps는 채팅 플랫폼을 통해 IT 운영을 자동화하고 협업할 수 있도록 도와줍니다.

DevOps 팀이 채팅 플랫폼 내에서 직접 명령을 입력하거나 결과를 볼 수 있게 함으로써 운영 생산성을 높일 수 있습니다. 운영중인 서비스에서 에러가 발생했을 때, 에러 상황과 관련된 알림을 채팅 플랫폼으로 자동으로 받아보는 것도 ChatOps의 대표적인 기능 중 하나입니다.

 

서비스 장애 상황에서 발생하는 에러 로그를 RAG를 통한 내부 위키 페이지 컨텍스트와 함께 Amazon Bedrock에게 질문하고, 장애에 대한 솔루션을 생성합니다. 에러 로그와 생성된 솔루션을 자동으로 Slack 채널이나 Microsoft Teams 메세지를 통해 알림 받아 서비스 운영 효율성을 높일 수 있습니다.

워크플로우

1. 운영 리소스에서 로그가 발생

2. 로그가 CloudWatch의 Log Group에 저장

3. 저장 된 로그에서 에러 로그만 kinesis로 전송

4. kinesis로 전송된 에러 로그가 lambda로 전송

5. 에러로그에 trigger된 kendra와 bedrock을 활용한 RAG 워크플로우를 거쳐 에러 로그에 대한 솔루션을 생성

6. 생성된 솔루션을 에러로그와 함께 sns에 publish

7. AWS Chatbot은 사용자의 Slack 채널에 에러로그와 솔루션에 대한 메세지 송신

 

리소스 설명

CloudWatch

  • CloudWatch Subscription Filter를 사용하여 CloudWatch Logs에 발생한 로그 이벤트의 실시간 피드에 액세스하고, 다른 시스템으로의 로드를 위해 다른 서비스에 전송할 수 있습니다.
  • 로그 이벤트는 base64로 인코딩되고 gzip 형식으로 압축되어 수신 서비스로 전송됩니다.

Amazon Kinesis

  • 여러개의 CloudWatch Log Group 으로부터 로그 이벤트를 실시간으로 수집합니다.

Amazon EventBridge Pipe

  • 이벤트 소스(Kinesis)로부터 수신한 로그를 필터링하고 전처리하여 타겟(lambda)으로 전송합니다.

Lambda

  • RAG아키텍쳐로 구성된 GenAI(Bedrock)에게 수신된 에러 로그를 질문하여 솔루션을 생성하고, 원본 로그 이벤트와 생성된 솔루션을 SNS토픽에 publish합니다.

Amazon Bedrock

  • Amazon Bedrock은 API를 통해 Amazon 및 주요 AI 스타트업의 파운데이션 모델(FM)을 사용할 수 있게 하는 완전관리형 서비스입니다. 로그 이벤트를 분석하여 솔루션을 제안합니다.

Amazon Kendra

  • Amazon Kendra 의 Web Crawler 2.0을 사용하여 wiki의 데이터를 crawling하고 data source로서 사용합니다.

Amazon SNS

  • SNS Topic에 이벤트 로그가 publish됩니다. SNS Topic은 AWS Chatbot에 의해 구독됩니다.

AWS Chatbot

  • SNS Topic에 메세지가 publish되면 이를 사용자의 Slack이나 Teams에 메세지로 전송합니다.
  • 최근, AWS Chatbot에서 사용자 지정 알림 기능이 정식 출시되었습니다. 이를 이용해 고객은 원하는 정보를 알림에 담아 Slack 채널 및 Microsoft Teams에 전송함으로서 다양하게 활용할 수 있습니다.

아래 튜토리얼을 통해 직접 위 워크플로우를 생성해보면 좋을 것 같습니다.

그럼 다음 포스팅에서 만나요!! 베빠~

Tutorial

'INFRA > DevOps' 카테고리의 다른 글

[K8S] ConfigMap  (1) 2023.12.08
[DevOps] Django  (0) 2023.12.07
[K8S] CronJob  (1) 2023.11.25
[DevOps] React  (2) 2023.11.24
[K8S] Environment  (1) 2023.11.12

댓글