티스토리 뷰

반응형

 

 

 

최근 진행했던 프로젝트에서 애플리케이션의 API를 호출하는 이벤트를 생성하고 효율적으로 관리하기 위해 AWS Amazon EventBridge를 도입하게 되었습니다. EventBridge는 AWS의 서버리스 이벤트 버스 서비스로, 다양한 AWS 서비스와 외부 SaaS 애플리케이션 간의 이벤트를 쉽게 연결하고 관리할 수 있게 해줍니다.

 


1. Amazon EventBridge란?

Amazon EventBridge는 이벤트 기반 아키텍처를 지원하는 서비스로, 이벤트 버스 와 파이프라는 두 가지 이벤트 처리 방법을 제공합니다. 

 

  • 이벤트 버스(Event Bus)
    • 이벤트 버스는 이벤트를 수신하고 라우팅하는 기본 구성 요소입니다. 여러 이벤트 소스에서 발생한 이벤트를 중앙에서 수집하고, 규칙에 따라 적절한 대상으로 전달합니다.
    • 기본적으로 AWS에서 제공하는 이벤트 버스와 사용자 정의 이벤트 버스를 생성하여 사용할 수 있습니다.예를 들어, AWS 서비스에서 발생한 이벤트를 자동으로 수집하고 처리할 수 있습니다.
  • 파이프(Pipes)
    • 파이프는 이벤트를 처리하고 전달하는 데 필요한 여러 단계를 정의할 수 있는 기능입니다. 파이프를 사용하면 이벤트가 발생했을 때 여러 서비스를 연결하여 복잡한 이벤트 처리 로직을 구현할 수 있습니다.
    • 예를 들어, 이벤트가 발생하면 SQS에 메시지를 전송하고, Lambda 함수를 호출하여 추가적인 처리를 수행한 후, 최종적으로 다른 서비스로 결과를 전달하는 방식입니다.
    • 파이프를 통해 이벤트 흐름을 시각적으로 설계하고 관리할 수 있어, 더욱 직관적인 이벤트 처리 아키텍처를 구축할 수 있습니다.

 

 

2. Amazon EventBridge의 이벤트 버스 개념

https://docs.aws.amazon.com/eventbridge/

 

 

 

  • 이벤트 버스(Event buses) : 이벤트를 수신하고 전달하는 중앙 통로 역할을 합니다. 기본적으로 AWS 서비스와 사용자 정의 애플리케이션에서 발생하는 이벤트를 수집합니다.
  • 이벤트 소스(Event sources) : 이벤트를 생성하는 서비스나 애플리케이션으로, AWS 서비스, SaaS 애플리케이션, 또는 사용자 정의 애플리케이션이 포함됩니다.
  • 이벤트 규칙(Rules) : 수신한 이벤트를 필터링하고, 조건에 따라 대상에 전달하는 규칙입니다.
  • 대상(Targets) : EventBridge가 이벤트를 전송하는 리소스 또는 엔드포인트로, AWS Lambda, SNS, SQS, API Gateway, 또는 다른 AWS 서비스가 될 수 있습니다.

 

 

3. 실습

1) AWS Management Console에 로그인

  • AWS Management Console에 로그인하여 EventBridge 대시보드로 이동합니다.

 

 

 

 

2) 연결생성

 

  • 이제 API 호출을 위한 연결을 먼저 생성합니다.
  • 통합 섹션으로 이동 > 연결 >  "연결 생성" 버튼
  • 연결의 이름, API의 URL, 인증 정보 등을 입력합니다.

 

 

 

 

3) API 대상 생성

  • EventBridge에서 API를 호출하기 위해 먼저 API 대상을 생성해야 합니다.
  • 통합 섹션으로 이동 > API 대상 >  "API 대상 생성" 버튼
  • API의 이름, URL, 인증 정보 등을 입력합니다.

  • 기존 연결 사용 옵션을 선택하면 이미 설정된 연결을 사용할 수 있습니다.
    (2번 단계를 진행했다면 기존 연결 사용 옵션을 선택해주세요.)
  • 새 연결 생성 옵션을 선택하면 API와의 연결을 새로 설정할 수 있습니다. 이를 통해 필요한 인증 정보 및 연결 세부사항을 입력합니다.

 


4) 규칙 생성

 

  • API 대상이 생성되었다면, 이제 EventBridge 규칙을 생성하여 일정에 따라 API를 호출할 수 있습니다.
  • 버스 섹션으로 이동 > 규칙 >  "규칙 생성" 버튼
  • 규칙 세부 정보(이름, 규칙유형 등)를 입력합니다.
  • "일정" 옵션을 선택하고  "규칙 생성으로 이동" 버튼을 클릭 합니다.

 

 

 

 

  • 대상 선택 > EventBridge API 대상을 선택합니다.
  • 드롭다운 목록에서 사전에 설정한 API 대상을 선택합니다.
  • 설정을 검토한 후 규칙을 생성하여 저장합니다.

 

 


5) API 호출 확인(모니터링)

 

 

 

  • MatchedEvents : EventBusName 또는 EventSourceName이 지정된 경우 모든 규칙과 일치하는 이벤트 수입니다. RuleName이 지정된 경우 특정 규칙과 일치하는 이벤트 수입니다.
  • Invocations : 이벤트에 대한 응답으로 규칙에 의해 대상이 호출되는 횟수입니다. 여기에는 성공 및 실패한 호출이 포함되지만 영구적으로 실패할 때까지 제한되거나 재시도된 시도는 포함되지 않습니다. DeadLetterInvocations은 포함되지 않습니다.
  • TriggeredRules : 이벤트와 일치하여 실행된 규칙의 수입니다.
  • FailedInvocations : 영구적으로 실패한 호출 수. 여기에는 재시도된 호출이나 재시도 후 성공한 호출은 포함되지 않습니다. 또한 DeadLetterInvocations에서 계산된 실패한 호출도 포함되지 않습니다.

 

 

 

  • IngestiontoInvocationCompleteLatency : 이벤트 수집부터 첫 번째 호출 시도가 완료될 때까지 걸리는 시간입니다.
  • IngestiontoInvocationStartLatency : 이벤트 처리 시간은 EventBridge가 이벤트를 수집한 후부터 대상을 처음 호출할 때까지 측정됩니다.
  • ThrottledRules : 규칙 실행이 제한되는 횟수입니다. 해당 규칙에 대한 호출이 지연될 수 있습니다.
  • DeadLetterInvocations : 이벤트에 대한 응답으로 규칙의 대상이 호출되지 않는 횟수입니다. 여기에는 동일한 규칙을 다시 실행하여 무한 루프를 유발하는 호출이 포함됩니다.
  • InvocationsSentToDlq : 전송 못한 이벤트 대기열로 이동된 호출 수입니다.

 



4. 결론


Amazon EventBridge를 통해 다양한 이벤트를 관리하고 API를 호출하는 방법을 알아보았습니다. 실제로 프로젝트를 진행하면서 EventBridge를 구축해보았는데, 생각보다 어렵지 않게 이벤트를 설정하고 모니터링할 수 있어서 너무 만족스러웠습니다.


특히, 직관적인 인터페이스 덕분에 복잡한 설정 없이도 손쉽게 이벤트를 생성하고, 필요한 규칙을 적용할 수 있었고 이벤트가 발생할 때마다 실시간으로 모니터링할 수 있는 기능도 매우 유용했어요. 아직 생성한 이벤트에 대해 큰 문제가 없었지만 문제가 발생했을 때 이벤트 흐름을 쉽게 추적하고, 즉시 대응하는데 많은 도움이 될것 같습니다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함