아키텍처 개요
왜 EventBridge인가요? EventBridge는 내장 재시도 로직, 데드 레터 큐, IAM 기반 보안을 갖추고 웹훅에 깨끗한 JSON을 직접 전송합니다. 구독 확인 핸드셰이크가 필요하지 않으며(SNS와 달리), 페이로드 변환을 위한 Lambda 함수도 필요하지 않습니다.
사전 요구 사항
- EventBridge 규칙, API 대상, 연결을 생성할 권한이 있는 AWS 계정
- 모니터링할 메트릭에 대해 구성된 CloudWatch 알람
- CloudThinker 웹훅 URL (아래 단계에서 생성)
설정 가이드
CloudThinker 웹훅 생성
- CloudThinker에서 Deep Response Engine → Settings → Integrations로 이동합니다
- AWS CloudWatch 카드에서 Connect를 클릭합니다
- 이름을 입력합니다 (예: “Production CloudWatch Alerts”)
- 미리 구성된 필드 매핑을 검토합니다 — EventBridge 형식에 맞게 설정되어 있습니다:
| 인시던트 필드 | JSONPath | 추출 내용 |
|---|---|---|
| Title | $.detail.alarmName | 알람 이름 |
| Description | $.detail.state.reason | 상태 변경 이유 |
| Severity | $.detail.state.value | 알람 상태 (ALARM, OK, INSUFFICIENT_DATA) |
| Services | $.detail.configuration.metrics[0].metricStat.metric.namespace | AWS 서비스 네임스페이스 (예: AWS/EC2) |
- 기본 인증 방법은 헤더
x-api-key가 있는 API Key입니다 — EventBridge 연결 설정과 일치합니다 - 필요에 따라 심각도 매핑 및 자동 트리거 설정을 구성합니다
- Create를 클릭하고 Secret Key를 저장합니다 — EventBridge 연결에 필요합니다
EventBridge 연결 생성
- AWS 콘솔에서 Amazon EventBridge → Integration → Connections로 이동합니다
- Create connection을 클릭합니다
- 연결을 구성합니다:
- Name:
cloudthinker-webhook - Authorization type: API Key
- API key name:
x-api-key - API key value: CloudThinker 웹훅 생성 대화 상자의 Secret Key 붙여넣기
- Name:
API 대상 생성
- Amazon EventBridge → Integration → API destinations로 이동합니다
- Create API destination을 클릭합니다
- 구성합니다:
- Name:
cloudthinker-incidents - API destination endpoint: CloudThinker 웹훅 URL 붙여넣기
- HTTP method:
POST - Connection: 위에서 생성한
cloudthinker-webhook연결 선택 - Invocation rate limit: 초당
100(필요에 따라 조정)
- Name:
EventBridge 규칙 생성
- Amazon EventBridge → Rules로 이동합니다
- default 이벤트 버스를 선택합니다
- Create rule을 클릭합니다
-
구성합니다:
- Name:
cloudwatch-alarms-to-cloudthinker - Description: Route CloudWatch alarm state changes to CloudThinker
- Event bus: default
- Rule type: Rule with an event pattern
- Name:
- 이벤트 패턴을 정의합니다:
-
대상을 선택합니다:
- Target type: EventBridge API destination
- API destination:
cloudthinker-incidents선택 - Execution role:
events:InvokeApiDestination권한이 있는 새 역할 생성 또는 기존 역할 사용
- Create rule을 클릭합니다
이벤트 페이로드
EventBridge는 다음 형식으로 CloudWatch 알람 이벤트를 전달합니다. CloudThinker의 필드 매핑이 이 구조에서 인시던트 데이터를 자동으로 추출합니다.심각도 매핑
CloudWatch 알람 상태는 CloudThinker 심각도 수준에 매핑됩니다. 기본 매핑은 다음과 같습니다:| CloudWatch 상태 | CloudThinker 심각도 |
|---|---|
ALARM | Critical |
INSUFFICIENT_DATA | Medium |
OK | Info |
알람 필터링
EventBridge 규칙의 이벤트 패턴을 세밀하게 조정하여 어떤 알람이 인시던트를 트리거할지 제어할 수 있습니다. 알람 이름 접두사 기준:멀티 리전 설정
CloudWatch 이벤트는 리전별입니다 — 알람은 자신이 있는 리전의 EventBridge 버스에만 이벤트를 내보냅니다. 멀티 리전 모니터링의 경우:- 옵션 A: 리전 간 이벤트 포워딩 — 각 소스 리전에 CloudWatch 알람 이벤트를 중앙 리전의 이벤트 버스로 포워딩하는 EventBridge 규칙을 만든 다음, 그곳에서 CloudThinker로 라우팅합니다.
- 옵션 B: 리전별 규칙 — 동일한 CloudThinker 웹훅 URL을 가리키는 API 대상과 규칙을 각 리전에 만듭니다. 더 간단하지만 리전 전반에 걸쳐 규칙을 유지 관리해야 합니다.
문제 해결
인시던트가 생성되지 않는 경우
인시던트가 생성되지 않는 경우
- EventBridge 규칙 확인 — EventBridge → Rules → 규칙 선택 → Monitoring 탭으로 이동합니다. 규칙이 이벤트와 일치하는지 확인합니다(
Invocations메트릭 > 0) - API 대상 확인 — API destinations → 선택 → 엔드포인트 URL이 CloudThinker 웹훅 URL과 일치하는지 확인합니다
- CloudThinker 로그 확인 — Deep Response Engine → Settings → Integrations → 웹훅 선택 → 전달 기록을 위한 Logs 탭
- CLI로 테스트 —
aws cloudwatch set-alarm-state를 실행하여 알람을 시뮬레이션하고 전체 체인을 확인합니다
이벤트는 수신되지만 필드가 누락된 경우
이벤트는 수신되지만 필드가 누락된 경우
필드 매핑이 EventBridge 이벤트 형식과 일치하는지 확인합니다. EventBridge를 통해 라우팅된 CloudWatch 이벤트는
$.detail.* 접두사를 사용합니다:- Title:
$.detail.alarmName($.AlarmName이 아님) - Severity:
$.detail.state.value($.NewStateValue가 아님) - Description:
$.detail.state.reason($.NewStateReason이 아님)
규칙이 이벤트와 일치하지 않는 경우
규칙이 이벤트와 일치하지 않는 경우
- 이벤트 패턴이
"detail-type": ["CloudWatch Alarm State Change"]를 사용하는지 확인합니다 (정확한 문자열, 대소문자 구분) - 규칙이 default 이벤트 버스에 있는지 확인합니다 — CloudWatch는 default 버스에 이벤트를 보냅니다
- 알람이 EventBridge 규칙과 동일한 리전에 있는지 확인합니다
API 대상에서 오류가 반환되는 경우
API 대상에서 오류가 반환되는 경우
- 401/403: EventBridge 연결의 API 키 값이 웹훅의 비밀 키와 일치하는지, 키 이름이
x-api-key인지 확인합니다 - 422: 페이로드 형식이 예상된 필드 매핑과 일치하지 않을 수 있습니다 — 이벤트 페이로드 구조를 확인합니다
- 429: 웹훅 전송률 제한을 초과했습니다 — CloudThinker 웹훅 설정에서 전송률 제한을 높입니다
대안: SNS 라우트
CloudThinker는 SNS를 통한 CloudWatch 알람 수신도 지원합니다. 이 경로는 알람에 대한 SNS 토픽이 이미 구성되어 있는 경우 유용합니다.- SNS 구독을 확인합니다 (수동 확인 불필요)
- SNS 알림 봉투를 언래핑하여 알람 페이로드를 추출합니다
EventBridge 라우트는 더 깨끗한 이벤트 형식, 네이티브 필터링을 제공하고 구독 핸드셰이크가 필요하지 않기 때문에 SNS보다 권장됩니다.
관련 문서
웹훅 통합 개요
지원되는 모든 플랫폼과 일반 웹훅 구성에 대해 알아봅니다.
근본 원인 분석
CloudWatch 인시던트를 위한 자동 AI 기반 조사를 구성합니다.