CodeCommit
AWS는 CodeCommit을 “AWS CodeCommit은 안전한 Git 기반 리포지토리를 호스팅하는 완전관리형 소스 제어 서비스입니다.” 라고 소개하고 있습니다. 즉 GitHub의 AWS 버전입니다. CodePipeline등 AWS의 CI/CD 서비스와도 긴밀하게 연결되었고 후술할 여러 이벤트 Hook이 있어 자동화도 편리하기까지 합니다. 그래서 현재 프로젝트는 모두 CodeCommit으로 형상관리를 하고 있습니다.
서론
Devops 업무를 하다보면 CodeCommit의 여러 이벤트를 자동화하여 처리하여 효율을 높히는 방법을 고민하게 됩니다.
예를들어 PR이 생성되거나 새로운 브렌치가 생성되면 관계자에게 슬랙으로 알림을 전달하는 것 부터 보안이 철저한 회사라면 허용된 IP이외에서 레포를 다운받는걸 알람으로 받는다던지(예시입니다. 사실 이 경우는 IAM Policy를 통해 원천적으로 차단이 가능합니다.) 여러 가지 시나리오를 처리할 수 있겠지요.
CodeCommit에서는 이러한 이벤트 알람을 처리하는 방법은 크게 3가지가 있습니다.
- CodeCommit에서 제공하는 알람을 통해 SNS호출
- CloudWatch(EventBridge) Event Rule로 CodeCommit 이벤트를 잡아 SNS 호출
- CloudWatch “AWS API Call via CloudTrail” 로 API 호출을 잡아 SNS호출
각 케이스에 대해서 간단히 살펴보겠습니다.