Amazon Web Services 한국 블로그

Amazon EventBridge Pipes – 이벤트 생산자와 소비자 간의 종단간 통합 기능 출시

최신 이벤트 기반 애플리케이션을 구성하기 위해 여러 클라우드 서비스를 빌딩 블록으로 사용하는 것이 점점 더 보편화되고 있습니다. 목적별 서비스를 사용하여 특정 태스크를 수행하면 개발자가 사용 사례에 가장 적합한 기능을 확보할 수 있습니다. 그러나 서로 다른 기술을 사용하여 통신하는 경우 서비스 간 통신이 어려울 수 있습니다. 즉, 각 서비스의 미세한 차이와 서비스를 서로 통합하는 방법을 익혀야 합니다. 일반적으로 서비스 간 통신을 연결하고 갭을 메우려면 통합 코드(또는 ‘글루’ 코드)를 만들어야 합니다. 글루 코드를 작성하면 속도가 느려지고 버그가 발생할 위험이 증가합니다. 즉, 고객을 위한 더 나은 환경을 구축하는 대신 획일적인 코드를 작성하는 데 시간을 할애해야 합니다.

Amazon EventBridge Pipes 소개
오늘 Amazon EventBridge의 새로운 기능인 Amazon EventBridge Pipes를 발표하게 되어 기쁩니다. Amazon EventBridge Pipes는 이벤트 생산자와 소비자 간에 포인트 투 포인트 통합을 생성할 수 있는 간단하고 일관되며 비용 효율적인 방법을 제공하여 이벤트 기반 애플리케이션을 손쉽게 빌드할 수 있도록 하므로 획일적인 글루 코드를 작성할 필요가 없습니다.

가장 단순한 파이프는 소스와 대상으로 구성됩니다. 선택적 필터링 단계는 특정 소스 이벤트만 파이프로 유입되도록 허용하고, AWS Lambda, AWS Step Functions, Amazon EventBridge API Destinations 또는 Amazon API Gateway를 사용하는 선택적 보강 단계는 이벤트가 대상에 도달하기 전에 이벤트를 보강 또는 변환합니다. Amazon EventBridge Pipes를 사용하면 지원되는 AWS 및 자체 관리형 서비스를 이벤트 생산자 및 이벤트 소비자로서 간단하고 안정적이며 일관되고 비용 효율적인 방식으로 애플리케이션에 통합할 수 있습니다.

Amazon EventBridge Pipes는 이벤트 필터링, 14개 이상의 AWS 서비스와의 통합, 자동 전송 재시도 등 Amazon EventBridge 이벤트 버스의 가장 인기 있는 기능을 제공합니다.

Amazon EventBridge Pipes의 작동 방식
Amazon EventBridge Pipes는 지원되는 AWS와 자체 관리형 서비스를 원활하게 통합할 수 있는 수단을 제공하므로 코드보다 구성을 우선시합니다. EventBridge Pipes와 서비스 통합을 시작하려면 다음 단계를 따라야 합니다.

  1. 이벤트를 생산하는 소스를 선택합니다. 지원되는 소스로는 Amazon DynamoDB, Amazon Kinesis Data Streams, Amazon SQS, Amazon Managed Streaming for Apache Kafka, Amazon MQ(ActiveMQ와 RabbitMQ 모두)가 있습니다.
  2. (선택 사항) 필터와 일치하는 이벤트만 처리하도록 이벤트 필터를 지정합니다(필터로 인해 제외된 이벤트에는 요금이 부과되지 않음).
  3. (선택 사항) 내장된 무료 변환을 사용하여 이벤트를 변환하고 보강하거나 AWS Lambda, AWS Step Functions, Amazon API Gateway 또는 EventBridge API Destinations을 사용하여 고급 변환 및 보강을 수행합니다.
  4. Amazon Step Functions, Kinesis Data Streams, AWS Lambda 및 EventBridge API Destinations을 통한 타사 API를 비롯한 14개 이상의 AWS 서비스 중에서 대상을 선택합니다.

Amazon EventBridge Pipes는 안정적이고 일관된 통합을 위해 서비스를 학습하고 통합 코드를 작성하는 데 필요한 시간을 단축하여 개발 속도를 가속화할 수 있는 단순함을 제공합니다.

EventBridge Pipes에는 이벤트 기반 애플리케이션을 구축하는 데 도움이 될 수 있는 추가 기능도 함께 제공됩니다. 예를 들어, Pipes는 이벤트 필터링을 통해 관심 있는 이벤트만 처리하여 이벤트 기반 애플리케이션의 비용 효율성을 높일 수 있습니다.

Amazon EventBridge Pipes 시작하기
Amazon EventBridge Pipes를 시작하는 방법을 알아보겠습니다. 이 게시물에서는 Amazon EventBridge Pipes를 사용하여 Amazon SQS 대기열을 AWS Step Functions와 통합하는 방법을 보여 드리겠습니다.

다음 스크린샷은 기존 Amazon SQS 대기열과 AWS Step Functions 상태 머신입니다. 제 경우에는 대기열에 있는 모든 이벤트에 대해 상태 머신을 실행해야 합니다. 그러려면 SQS 대기열과 Step Functions 상태 머신을 EventBridge Pipes와 연결해야 합니다.

기존 Amazon SQS 대기열 및 AWS Step Functions 상태 머신

먼저 Amazon EventBridge 콘솔을 엽니다. 탐색 섹션에서 파이프를 선택합니다. 그런 다음 파이프 생성을 선택합니다.

이 페이지에서 파이프 구성을 시작하고 AWS Identity and Access Management(IAM) 권한을 설정하고 파이프 설정 탭으로 이동할 수 있습니다.

파이프 설정으로 이동

권한 섹션에서 이 파이프의 새 IAM 역할을 정의하거나 기존 역할을 사용할 수 있습니다. 개발자 경험을 개선하기 위해 EventBridge Pipes 콘솔에서 필요한 IAM 역할을 알아내므로 필요한 권한을 수동으로 구성할 필요가 없이 EventBridge Pipes에서 IAM 역할에 대한 최소 권한을 구성하게 합니다. 파이프를 생성하는 것은 이번이 처음이므로 이 특정 리소스에 대해 새 역할 생성을 선택합니다.

파이프에 대한 IAM 권한 설정

그런 다음 파이프 만들기 섹션으로 돌아갑니다. 이 페이지에서는 EventBridge Pipes에서 지원하는 사용 가능한 이벤트 소스를 볼 수 있습니다.

이벤트 소스로 사용할 수 있는 서비스 목록

SQS를 선택하고 기존 SQS 대기열을 선택합니다. 배치 처리가 필요한 경우 추가 설정을 선택하여 배치 크기배치 창 정의를 시작할 수 있습니다. 그러고 나서 다음을 선택합니다.

SQS 대기열을 이벤트 소스로 선택

다음 페이지에서는 방금 선택한 이벤트 소스에서 이벤트 필터링을 정의할 수 있기 때문에 더욱 흥미로워집니다. 이 단계는 선택 사항이지만 이벤트 필터링 기능을 사용하면 손쉽게 이벤트 기반 애플리케이션에서 처리해야 하는 이벤트만 처리할 수 있습니다. 또한 이 이벤트 필터링 기능은 이 파이프가 불필요한 이벤트를 처리하지 않기 때문에 비용 효율성을 높이는 데도 도움이 됩니다. 예를 들어 Step Functions를 대상으로 사용하는 경우 이벤트 필터링은 필터와 일치하는 이벤트만 실행합니다.

Amazon EventBridge Pipes의 이벤트 필터링

AWS 이벤트샘플 이벤트를 사용하거나 사용자 지정 이벤트를 정의할 수 있습니다. 예를 들어, 값이 100 이상인 반품된 구매 품목에 대한 이벤트를 처리하려고 합니다. 다음은 JSON 형식의 샘플 이벤트입니다.

{
   "event-type":"RETURN_PURCHASE",
   "value":100
}

그런 다음 이벤트 패턴 섹션에서 Amazon EventBridge 이벤트 패턴의 콘텐츠 필터링 설명서를 참조하여 패턴을 정의할 수 있습니다. 이벤트 패턴을 다음과 같이 정의합니다.

{
   "event-type": ["RETURN_PURCHASE"],
   "value": [{
      "numeric": [">=", 100]
   }]
}

테스트 패턴을 선택하여 이 이벤트 패턴이 제가 사용할 사용자 지정 이벤트와 일치하는지 테스트할 수도 있습니다. 원하는 이벤트 패턴이 맞다고 확신하면 다음을 선택합니다.

필터링을 위한 이벤트 패턴 정의 및 테스트

다음 선택 사항 단계에서는 이벤트를 대상으로 보내기 전에 이벤트를 보강, 변환 또는 확장하는 보강을 사용할 수 있습니다. 이 보강은 기존 AWS Lambda 함수 또는 Destination API를 사용하는 외부 SaaS API를 통해 이벤트를 보강해야 할 때 유용합니다. 또한 보강 입력 변환기를 사용하여 이벤트를 구성할 수 있습니다.

마지막 단계는 이 파이프에서 전달한 이벤트를 처리하기 위한 대상을 정의하는 것입니다.

대상 서비스 정의

여기서는 EventBridge Pipes에서 지원하는 다양한 AWS 서비스를 선택할 수 있습니다.

pipes-statemachine이라는 이름의 기존 AWS Step Functions 상태 머신을 선택합니다.

또한 Amazon EventBridge 대상 입력 변환 설명서를 참조하여 대상 입력 변환기를 사용할 수도 있습니다. 제 경우에는 이 대상에 들어가는 이벤트의 우선 순위를 높게 정의해야 합니다. 이를 위해 샘플 이벤트/이벤트 페이로드에서 샘플 사용자 지정 이벤트를 정의하고 변환기 섹션에 priority: HIGH를 추가합니다. 그러면 출력 섹션에서 대상 서비스에 전달될 최종 이벤트를 볼 수 있습니다. 그런 다음 파이프 생성을 선택합니다.

1분 이내에 파이프가 생성되었습니다.

파이프 생성 완료

이 파이프를 테스트하려면 Amazon SQS 대기열에 이벤트를 넣어야 합니다.

Amazon SQS 대기열로 메시지 전송

Step Functions에서 이벤트가 처리되었는지 확인하려면 Step Functions에서 상태 머신을 살펴봅니다. 이 페이지에서 이벤트가 처리된 것을 볼 수 있습니다.

Amazon CloudWatch Logs로 이동하여 더 자세한 로그를 확인할 수도 있습니다.

주요 사항
이벤트 소스
– 출시 당시부터 Amazon EventBridge Pipes는 Amazon DynamoDB, Amazon Kinesis, Amazon Managed Streaming for Apache Kafka(Amazon MSK)와 함께 자체 관리형 Apache Kafka, Amazon SQS(표준 및 FIFO), Amazon MQ(ActiveMQ 및 RabbitMQ 모두)를 이벤트 소스로 지원합니다.

이벤트 대상 – Amazon EventBridge Pipes는 AWS Lambda, Amazon API Gateway, Amazon SNS, Amazon SQS 및 AWS Step Functions를 비롯하여 15개의 Amazon EventBridge 대상을 지원합니다. 개발자는 임의의 HTTPS 엔드포인트에 이벤트를 전송하기 위해 API Destinations을 대상으로 사용할 수 있습니다.

이벤트 순서 지정 – EventBridge Pipes는 대상 서비스에 이벤트를 보낼 때 순서 지정을 지원하는 이벤트 소스에서 받은 이벤트의 순서를 유지합니다.

프로그래밍 방식 액세스 – 또한 AWS Command Line Interface(CLI), AWS CloudFormationAWS Cloud Development Kit(AWS CDK)를 사용하여 Amazon EventBridge Pipes와 상호 작용하고 파이프를 생성할 수 있습니다.

독립적 사용 – EventBridge Pipes는 Amazon EventBridge 버스 및 Amazon EventBridge Scheduler와 별도로 사용할 수 있습니다. 이러한 유연성을 통해 개발자는 Amazon EventBridge 이벤트 버스 없이도 지원되는 AWS 및 자체 관리형 서비스의 소스 이벤트를 이벤트 소스로 정의할 수 있습니다.

가용성 – Amazon EventBridge Pipes는 이제 아시아 태평양(하이데라바드) 및 유럽(취리히)을 제외한 모든 AWS 상용 리전에서 정식 버전으로 사용할 수 있습니다.

Amazon EventBridge Pipes 페이지를 방문하여 이 기능 및 요금에 대해 자세히 알아보세요. 설명서 페이지를 방문하여 시작하는 방법에 대해 자세히 알아볼 수도 있습니다.

즐겁게 만들어 보세요!

— Donnie