피드로 돌아가기
올리브영 테크블로그DevOps
원문 읽기
올리브영 QA의 AWS Lambda를 통한 On call 도입기
올리브영 QA팀이 AWS Lambda + CloudWatch Logs 트리거 연계로 인시던트 발생 시 슬랙 채널 자동 생성과 동시에 Jira 티켓 생성 및 온콜 웹훅 호출 자동화
AI 요약
Context
슬랙만으로 인시던트를 관리하던 기존 시스템에서 슬랙 알림이 꺼져 있으면 장애가 전파되지 않는 문제가 발생했습니다. 담당자가 슬랙을 확인하지 않으면 유선 전화 등 별도 연락망으로 수동 전파해야 하므로 장애 인지 시간이 길어지고 있었습니다.
Technical Solution
- 슬랙봇 명령어를 통한 인시던트 생성: 사용자가 슬랙 명령어로 인시던트를 트리거합니다.
- AWS Lambda 함수를 통한 인시던트 채널 자동 생성: 슬랙 요청의 Base64 디코딩 및 JSON 파싱으로 채널명을 추출하고, async.waterfall을 사용해 채널 생성 후 사전 정의된 슬랙 그룹의 사용자를 순차적으로 자동 초대합니다.
- CloudWatch Logs 기반 트리거 연계: 채널 생성 완료 로그를 CloudWatch Logs에 기록하여 다음 Lambda 함수의 트리거로 사용합니다.
- Jira 자동 티켓 생성: CloudWatch Logs 트리거로 활성화된 새로운 Lambda 함수가 로그를 파싱하여 Jira API를 호출하고 인시던트 채널명을 포함한 이슈 티켓을 자동 생성합니다.
- 온콜 웹훅 자동 호출: Jira 티켓 생성 완료 후 기존 온콜 웹훅을 호출하여 담당자에게 전화 알림을 발송합니다.
- 하드코딩 제거를 통한 유지보수성 개선: 초대 대상 사용자를 코드에 하드코딩하는 방식에서 슬랙 그룹의 사용자 리스트를 동적으로 조회하는 방식으로 변경했습니다.
Impact
Key Takeaway
Lambda의 이벤트 기반 트리거 특성과 CloudWatch Logs를 통한 순차 연계를 활용하면 복잡한 멀티스텝 워크플로우를 서버 관리 없이 자동화할 수 있습니다. 또한 긴 코드를 함수 단위로 분리하면 가독성과 안정성이 향상되고 유지보수 비용이 감소합니다.
실천 포인트
장애 관리 파이프라인이 있는 조직에서 AWS Lambda와 CloudWatch Logs 트리거를 조합하면, 수동 단계를 자동화하여 인시던트 대응 시간을 단축할 수 있습니다. 특히 Lambda 함수를 작은 단위로 분리하고 로그 이벤트를 다음 단계의 트리거로 활용하면 운영 복잡도를 관리하면서 확장 가능한 워크플로우를 구축할 수 있습니다.