AWS - Bedrock/Kendra/Chatbot 서비스를 활용한 ChatOps 구성
개요
본문에서는 AWS Bedrock 서비스를 활용한 간단한 ChatOps 구성 방법 및 절차에 대해 정리하였습니다.
서비스 운영 단계에 접어들면 엔지니어나 개발자는 여러 시스템과 서비스에서 발생하는 장애 상황을 해결하기 위해 우선 순위(긴급도)에 따라 에러를 실시간으로 보고하고, 상황에 따라 즉각적인 처리가 필요합니다.
장애 대응을 위해, 에러 로그를 AWS 공식 문서, Stack Overflow, Git Issue와 같은 기술 문서나 커뮤니티에 검색하거나 어느 정도 규모와 체계가 갖춰진 기업이라면 Wiki나 Confluence와 같은 KMS(Knowledge Management System)에서 조회하기도 합니다.
이러한 Toil 작업을 줄이고, 방대한 자료에서 짧은 시간 내에 필요한 데이터를 정확하게 검색할 수 있는 대안으로 AI 기술과 채팅 플랫폼이 융합된 ChatOps를 활용해 볼 수 있을 거 같습니다.
아래에서는 AWS 서비스에서 에러가 발생했을 때, RAG 기술을 사용하여 S3에 저장된 PDF 문서를 기반으로 에러 로그와 관련된 정보를 Amazon Bedrock 통해 질문하고, 장애에 대한 솔루션을 AWS Chatbot 서비스를 통해 Slack으로 자동으로 받아보는 간단한 ChatOps 구축 예시를 정리하였습니다.
1. 인공지능(AI) 관련 용어 간단 정리
2. AWS Bedrock 서비스란?
Amazon과 유명 AI 회사의 다양한 파운데이션 모델(FM)을 통합 API로 제공함으로써 생성형 AI 애플리케이션 구축을 보다 편리하게 할 수 있도록 도움을 주는 완전 관리형 서비스
3. AWS Bedrock 서비스 주요 기능
4. ChatOps 아키텍처(Architecture) 및 워크플로우(Workflow)
ChatOps 아키텍처(Architecture)
ChatOps 워크플로우
5. 인프라 구성 및 테스트
5-1. AWS SNS 구성
- 주제(Topic) 생성
5-2. AWS Chatbot 클라이언트 구성
- 챗봇(Chatbot) 클라이언트 구성
- 챗봇(Chatbot) 클라이언트 구성 확인
- 챗봇(Chatbot) 초대
5-3. AWS Chatbot 채널 구성
- 챗봇(Chatbot) 채널 구성 1
- 챗봇(Chatbot) 채널 구성 2
- 챗봇(Chatbot) 채널 구성 확인
5-4. Amazon S3 구성
- S3 버킷(Bucket) 생성
5-5. Amazon Kendra Index 구성
- Kendra 인덱스 정책(Policy) 생성 예시
- Kendra 인덱스 정책(Policy) 생성
- Kendra 인덱스 역할(Role) 생성
- Kendra 인덱스 역할(Role)에 정책(Policy) 연결
- Kendra 인덱스 생성
- Kendra 인덱스(Index) 생성 확인
5-6. Amazon Kendra Data Source 구성
- Kendra 데이터 소스(Data Source) 정책(Policy) 생성 예시
- Kendra 데이터 소스(Data Source) 정책(Policy) 생성
- Kendra 데이터 소스(Data Source) 역할(Role) 생성
- Kendra 데이터 소스(Data Source) 역할(Role)에 정책(Policy) 연결
- Kendra 데이터 소스(Data Source) 생성 - S3 Connector 사용 1
- Kendra 데이터 소스(Data Source) 생성 - S3 Connector 사용 2
- Kendra 데이터 소스(Data Source) 생성 - S3 Connector 사용 3
- Kendra 데이터 소스(Data Source) 생성 확인 및 훈련 데이터(Training Data) 업로드
- Kendra 데이터 소스(Data Source) 동기화 및 동기화(Sync) 확인
5-7. AWS Lambda 구성
- 람다(Lambda) 함수 정책(Policy) 생성 예시
- 람다(Lambda) 함수 정책(Policy) 생성
- 람다(Lambda) 함수 역할(Role) 생성
- 람다(Lambda) 함수 역할(Role)에 정책(Policy) 연결
- 람다(Lambda) 함수 생성
- 람다(Lambda) 함수 트리거 추가
- 람다(Lambda) 함수 Payload 추가
- 람다(Lambda) 함수 환경 변수 추가 및 제한 시간 수정
- 람다(Lambda) 계층(Layer) 생성
- 람다(Lambda) 함수 계층(Layer) 추가
5-8. 파일 업로드 스크립트 수정
- 에러 로그 파일 업로드용 스크립트(trigger.py) 수정
5-9. 테스트
- 에러 로그 파일 업로드용 스크립트(trigger.py) 실행 1
- 에러 로그 파일 업로드용 스크립트(trigger.py) 실행 2
6. 결론
AWS 기술 블로그를 참고하여 Amazon Bedrock, Amazon Kendra, AWS Chatbot 서비스를 활용한 ChatOps 솔루션을 간단히 구축을 해보았습니다.
테스트 결과와 같이 장애 해결 프로세스를 자동화함으로써 운영 측면에서 가용성과 효율성을 크게 높이고, 장애 복구 시간과 자원을 크게 절감할 수 있을 것입니다. 또한, 이러한 솔루션은 조직(팀)의 필요에 따라 추가 확장 및 지속적인 개선을 통해 더욱 정교한 운영 자동화를 실현할 수 있을 것이라 생각됩니다.
참고
https://aws.amazon.com/ko/blogs/tech/amazon-bedrock-aws-chatbot-chatops/
'Cloud > AWS' 카테고리의 다른 글
AWS - 리소스 탐색기(Resource Explorer) (0) | 2025.03.11 |
---|---|
AWS - 폐쇄망 환경 EC2 커널 업데이트 (0) | 2025.02.24 |
AWS - Amazon EC2(Elastic Compute Cloud) 생성 (0) | 2022.10.14 |
댓글
이 글 공유하기
다른 글
-
AWS - 리소스 탐색기(Resource Explorer)
AWS - 리소스 탐색기(Resource Explorer)
2025.03.11 -
AWS - 폐쇄망 환경 EC2 커널 업데이트
AWS - 폐쇄망 환경 EC2 커널 업데이트
2025.02.24 -
AWS - Amazon EC2(Elastic Compute Cloud) 생성
AWS - Amazon EC2(Elastic Compute Cloud) 생성
2022.10.14