Amazon EventBridge
- EventBridge는 CloudWatch Events의 다음 버전
- CloudWatch Events를 이용할 때 기본 이벤트 버스를 사용하게 되는데 그 버스는 계정 내 AWS 서비스가 생성한 버스이며
CloudWatch Events와 EventBridge에는 기본 이벤트 버스 뿐만 아니라 여러 버스가 확장되어 있음
- 파트너 이벤트 버스 : AWS에서 이벤트를 받는 것이 아니라 서비스 제공자나 애플리케이션 같은 소프트웨어에서 받음
즉, AWS 서비스가 아닌 제3자가 AWS 계정으로 이벤트를 보내는 것이며 실시간으로 이벤트에 대해 대응할 수 있음 - 사용자 지정 이벤트 버스 : 한 애플리케이션의 고유의 이벤트를 생성하고 다른 애플리케이션이 그 이벤트에 대응하게 함
- 이벤트 버스들은 다른 AWS 계정으로 접근 가능하기 때문에 교차 계정 이벤트 버스가 가능
- 또한 EventBridge는 CloudWatch Events 규칙과 비슷한 규칙도 생성할 수 있으며
규칙을 통해 이벤트의 작동 방식을 정의
Amazon EventBridge Schema Registry
- EventBridge의 기능인 Schema Registry
- EventBridge는 버스 내 이벤트를 분석하고 데이터 구성 방식인 스키마를 추론해낼 수 있음
따라서 스키마 레지스트리는 애플리케이션의 코드를 생성할 수 있게 하며
이 애플리케이션은 이벤트 버스 내 데이터 구성 방식을 파악해 시간을 아끼고 안정성도 확보할 수 있음
Amazon EventBridge vs CloudWatch Events
- EventBridge와 CloudWatch Events의 차이점
- EventBridge는 CloudWatch Events의 연장선이며
공식 문서에는 동일한 서비스 API와 엔드 포인트, 동일한 서비스 인프라를 사용한다고 나와있음
하지만 추가적인 기능이 있기 때문에 새로운 이름을 가진 새 서비스인 EventBridge가 나온 것 - EventBridge는 사용자 지정 애플리케이션과 타사 SaaS 애플리케이션의 이벤트 버스를 추가할 수 있으며
스키마 레지스트리라는 기능도 추가됨 - 즉, 비슷한 서비스이지만 EventBridge가 더 많은 기능을 가짐
<EventBridge 실습>
- 사용자 지정 Event bus 개요 및 생성
기본 Default event bus가 있으며 사용자 지정 event bus도 만들 수 있음
이름을 custom-bus로 하며 사용자 지정 이벤트 버스를 연동해서 다른 계정에 접근권을 줄 수도 있지만 이 실습에서는 하지 않음
이후 생성하면 애플리케이션이 이벤트를 보낼 사용자 지정 이벤트 버스가 생성되게 됨
- 파트너 이벤트 소스 개요
EventBridge의 파트너들이며 현재까지는 26개가 존재하며 각 파트너의 설치 설명서를 볼 수 있음
Symantec의 설명서 경우 AWS 계정 정보를 복사해 Symantec을 위한 이벤트 버스를 만들어야 함
그리고 이를 완료하면 AWS 계정에 새 이벤트 버스가 생기게 됨
- 기본 이벤트 버스
기본 이벤트 버스에 규칙이 두 개 있으며 CloudWatch Events에서 본 규칙과 같은 규칙임
왜냐하면 이 서비스와 CloudWatch Events 서비스는 같은 인프라를 기반으로 하기 때문에 같은 규칙이 존재
- 규칙 생성
DemoCodePipeline으로 이름을 한 후 생성하며
EventBridge를 예약하고 싶을 때면 Scehdule을 선택하여 설정할 수 있으며
시간 또는 일 단위로 간격을 정하거나 또는 Cron 표현식을 사용할 수 있음
Event pattern은 사용자 지정 패턴이나 서비스가 미리 정의한 패턴을 사용할 수 있음
Event pattern을 설정하고 미리 정의한 패턴을 클릭한 후 AWS를 넣으면 CodePipeline을 검색할 수 있으며
이벤트 유형도 Pipeline Execution State Chage와 같은 이벤트 유형으로 설정할 수 있음
AWS 뿐만 아니라 서비스 파트너도 있어서 파트너 이벤트 소스로도 이벤트에 대응할 수 있음
마지막으로 이벤트 버스로 AWS 기본 Event bus를 선택하며
Target으로는 대상으로 하나를 골라도 되며 다중 선택도 가능하며 SNS Topic, SQS 대기열, 람다 함수 등을 고를 수 있음
이 중에서 SNS Topic을 고르고 원하는 Topic을 골라서 태그를 만들고 생성을 누르면 됨
새로 생성한 EventBridge의 DemoCodePipeline은 CloudWatch Events의 CodePipeline과 동일
- 스키마 레지스트리
스키마 레지스트리에는 정말 많은 스키마가 있어 모든 스키마에서 검색해볼 수 있고
AWS 이벤트 스키마에서만 검색해 볼 수 있고 사용자 지정 이벤트 버스 내의 스키마를 찾아낼 수도 있음
또한 사용자 지정 스키마 레지스트리를 생성할 수 있음
모든 스키마로 가서 aws.codepipeline을 찾아보면 CodePipleline ActionExecutionStateChange가 있으며
버전 숫자가 1이라고 되어 있으며 스키마 유형은 OpenAPI 3.0이며 모든 정보를 볼 수 있음
또한 이 이벤트 유형의 CodePipeline에서 나올 수 있는 이벤트에서 생성된 모든 필드를 설명해 줌
이에 대한 코드를 직접 가지고 있으면 더 유용하므로 코드 바인딩을 다운로드하여 Java, Python, TypeScript로 얻을 수 있음
이를 통해 EventBridge에서 이벤트에 대한 프로그래밍을 할 때 시간을 단축할 수 있음
'Cloud > AWS' 카테고리의 다른 글
[SAA] Config 개요 (0) | 2022.04.20 |
---|---|
[SAA] CloudTrail 개요 (0) | 2022.04.20 |
[SAA] CloudWatch 이벤트 (0) | 2022.04.18 |
[SAA] CloudWatch 경보를 사용한 EC2 인스턴스 복구 (0) | 2022.04.18 |
[SAA] CloudWatch 경보 (0) | 2022.04.18 |