Amazon EventBridge - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EventBridge

Amazon EventBridge는 서버리스 이벤트 버스 서비스로, 이벤트 기반 아키텍처(EDA)의 기반으로 자주 사용됩니다. 또한 마이크로서비스 간 메시지를 비동기적으로 라우팅하고 전달하는 데 활용할 수 있습니다. EventBridge를 사용하면 생산자가 이벤트를 버스에 게시하고, 이벤트 내용에 따라 매칭되는 규칙을 구성하며, 해당 규칙에 맞는 이벤트가 전달될 하나 이상의 대상을 선택할 수 있습니다. EventBridge는 다양한 규칙 대상을 지원합니다. 이벤트 버스를 사용하면 생산자와 소비자를 분리하고 라우팅 및 전달 로직을 통합할 수 있습니다.

EventBridge에서는 예약 규칙도 생성할 수 있어 특정 시간에 작업을 수행하도록 설정할 수 있습니다. 이벤트는 크론(cron) 기반 표현식이나 속도(rate) 기반 표현식을 사용해 정의할 수 있습니다.

EventBridge Pipes를 사용하면 AWS Lambda와 같은 컴퓨팅 서비스를 사용하지 않고도 메시지를 소스에서 대상으로 전달할 수 있습니다. 예를 들어, 메시지를 수신하는 SQS 대기열이 있고, 이 메시지가 AWS Step Functions 상태 머신을 트리거해야 한다고 가정해 보겠습니다. 기존에는 Lambda 함수를 생성하여 이벤트 소스 매핑을 통해 대기열의 메시지를 처리하고, AWS SDK를 사용해 상태 머신을 호출하는 코드를 작성해야 했습니다. EventBridge Pipes를 사용하면 이러한 사용자 지정 코드를 작성하지 않고도 메시지를 대상 상태 머신으로 전달할 수 있습니다.

EventBridge는 Amazon SQS, Amazon SNS와 같은 다른 메시징 서비스와 함께 사용되는 경우가 많습니다. 예를 들어, 이벤트를 SQS 대기열로 전달하면 수신 서비스에서 이벤트 생성 속도와 무관한 속도로 메시지를 유연하게 소비할 수 있습니다. 마찬가지로, 많은 구독자에게 이벤트를 퍼뜨려야 하는 경우 SNS 주제로 전달할 수도 있습니다.

지침

다음과 같은 경우 EventBridge 사용을 권장합니다.

  • 서비스 간 동기 통신이 필요하지 않은 경우

  • 메시지 라우팅 로직을 마이크로서비스와 분리하고자 하는 경우. 마이크로서비스는 이벤트만 생성하여 이벤트 버스에 게시하고, 관심 있는 서비스가 해당 이벤트와 매칭되는 규칙을 생성하여 전달하도록 구성합니다.

  • 한 지원 서비스에서 다른 지원 서비스로 메시지를 전달해야 하는 경우.

다음과 같은 상황에서는 다른 서비스를 고려합니다.

  • 이벤트의 엄격한 순서가 필요한 경우. 이 경우 Amazon SQS FIFO 대기열 또는 Amazon SNS FIFO 주제를 사용합니다. 또는 Amazon Kinesis Data Streams나 Amazon Managed Streaming for Apache Kafka(Amazon MSK)와 같은 이벤트 스트림 서비스를 고려합니다.