Amazon EventBridge Pipes
1. 개요
1. 개요
Amazon EventBridge Pipes는 Amazon Web Services가 제공하는 서비스 간 통합을 단순화하는 서비스이다. 2022년 11월 30일에 처음 소개되었다. 이 서비스는 서버리스 컴퓨팅 환경에서 다양한 AWS 서비스 간의 데이터 흐름을 쉽게 구성하고, 데이터를 변환하며, 연결하는 데 주로 사용된다.
EventBridge Pipes는 이벤트 기반 아키텍처와 데이터 통합을 구현하는 데 핵심적인 역할을 한다. 사용자는 복잡한 코드 작성 없이 시각적 편집기를 통해 소스 서비스에서 대상 서비스로 이벤트나 데이터를 라우팅하는 파이프라인을 빠르게 구축할 수 있다. 이를 통해 마이크로서비스 간 통합, 스트림 처리, 실시간 알림 파이프라인 등 다양한 사용 사례를 지원한다.
이 서비스는 Amazon Simple Queue Service, Amazon Kinesis, Amazon DynamoDB 스트림과 같은 소스로부터 데이터를 수신하고, AWS Lambda 함수를 통한 변환 또는 강화를 거친 후, Amazon EventBridge, Amazon Simple Notification Service 또는 다른 AWS 서비스와 같은 대상으로 전달하는 구조를 가진다. 코드를 최소화하면서도 강력한 통합 흐름을 만들 수 있어 개발 생산성을 크게 높여준다.
2. 주요 구성 요소
2. 주요 구성 요소
2.1. 소스
2.1. 소스
소스는 파이프라인의 시작점으로, 이벤트를 생성하는 서비스나 애플리케이션을 의미한다. Amazon EventBridge Pipes는 다양한 AWS 서비스를 소스로 지원하여, 해당 서비스에서 발생하는 데이터나 이벤트를 파이프라인으로 가져올 수 있게 한다. 이를 통해 사용자는 여러 소스로부터의 데이터 흐름을 하나의 통합된 방식으로 처리할 수 있다.
주요 지원 소스에는 Amazon Simple Queue Service, Amazon Kinesis Data Streams, Amazon DynamoDB Streams, Amazon Managed Streaming for Apache Kafka 등이 포함된다. 또한 Amazon EventBridge 자체의 이벤트 버스나 Amazon CloudWatch 로그 그룹과 같은 모니터링 서비스도 소스로 활용할 수 있다. 각 소스는 고유한 방식으로 데이터를 생성하거나 전달하며, 파이프는 이를 표준화된 형태로 수신하여 후속 처리 단계로 전달한다.
소스를 구성할 때는 해당 AWS 서비스의 특정 리소스(예: 특정 SQS 대기열이나 Kinesis 데이터 스트림)를 지정해야 한다. 이는 파이프가 어디서 데이터를 끌어올지를 정의하는 중요한 단계이다. 소스 설정을 통해 파이프는 해당 리소스를 지속적으로 폴링하거나, 이벤트를 실시간으로 수신하여 파이프라인의 다음 단계인 필터로 전달하게 된다.
2.2. 필터
2.2. 필터
필터는 Amazon EventBridge Pipes 파이프라인에서 소스로부터 수신한 이벤트나 메시지를 조건에 따라 선택적으로 처리하거나 차단하는 기능이다. 파이프의 핵심 구성 요소 중 하나로, 특정 규칙을 충족하는 데이터만 다음 단계인 인리처나 대상으로 전달되도록 한다. 이를 통해 불필요한 데이터 처리로 인한 비용과 리소스 낭비를 방지하고, 다운스트림 서비스의 부하를 효과적으로 관리할 수 있다.
필터링은 JSON 형식의 이벤트 페이로드를 기준으로 이루어지며, Amazon EventBridge의 이벤트 패턴과 유사한 구문을 사용한다. 사용자는 원하는 조건을 정의한 필터 규칙을 설정하여, 예를 들어 특정 이벤트 유형, 특정 값 범위, 또는 특정 키워드를 포함하는 메시지만 파이프라인을 통과하도록 구성할 수 있다. 필터 규칙과 일치하지 않는 이벤트는 자동으로 폐기된다.
이 기능은 특히 높은 볼륨의 데이터를 생성하는 소스(Amazon Kinesis Data Streams, Amazon DynamoDB Streams 등)를 사용할 때 유용하다. 모든 원본 데이터를 처리하는 대신 사전에 정의된 비즈니스 로직에 관련된 이벤트만 선별적으로 추출하여 후속 변환 또는 라우팅 작업을 수행할 수 있기 때문이다. 결과적으로 AWS Lambda 함수의 불필요한 실행을 줄이거나, Amazon SQS 대기열에 전송되는 메시지 수를 최소화하는 등 전반적인 비용 효율성을 높이는 데 기여한다.
2.3. 인리처
2.3. 인리처
인리처는 Amazon EventBridge Pipes 파이프라인의 선택적 구성 요소로, 소스에서 추출한 이벤트 데이터를 추가 정보로 보강하거나 변환하는 역할을 한다. 파이프라인의 데이터 흐름에서 필터 단계 이후, 대상으로 전달되기 직전에 위치하며, 원본 이벤트 페이로드에 필요한 컨텍스트를 추가하거나 형식을 변환한다.
주요 인리처로는 AWS Lambda 함수와 Amazon API Gateway의 HTTP API 엔드포인트가 있다. 예를 들어, Lambda 함수를 인리처로 지정하면, 필터링을 통과한 이벤트가 해당 함수로 전달된다. 함수는 이벤트 데이터를 입력받아 외부 API를 호출하거나 다른 AWS 서비스를 조회하여 추가 데이터를 가져온 후, 원본 이벤트와 병합하거나 완전히 새로운 형식으로 변환하여 출력한다. 이를 통해 대상 서비스가 요구하는 정확한 데이터 구조를 갖춘 이벤트를 생성할 수 있다.
인리처를 사용하는 대표적인 사례는 데이터 보강이다. 소스에서 수신한 주문 이벤트에 고객 ID만 포함되어 있을 때, 인리처 Lambda 함수는 Amazon DynamoDB 테이블을 조회하여 해당 고객의 상세 프로필 정보를 가져와 이벤트에 추가할 수 있다. 또한, 서로 다른 소스 시스템의 이벤트 형식을 하나의 표준화된 형식으로 변환하는 데에도 활용되어, 하류의 대상 서비스가 일관된 데이터를 처리할 수 있도록 한다.
이러한 인리처 단계는 파이프라인의 유연성과 강력함을 크게 향상시킨다. 복잡한 비즈니스 로직이나 데이터 변환 작업을 별도의 서버리스 함수로 분리하여 관리함으로써, 파이프라인 본체의 구성은 단순하게 유지하면서도 풍부한 데이터 처리 기능을 구현할 수 있게 해준다.
2.4. 대상
2.4. 대상
Amazon EventBridge Pipes에서 대상은 파이프라인의 최종 단계로, 처리된 데이터가 전달되어 비즈니스 로직이 실행되는 AWS 서비스나 애플리케이션을 의미한다. 파이프는 다양한 AWS 서비스를 대상으로 지정할 수 있으며, 이는 사용 사례에 따라 유연하게 선택된다. 예를 들어, 변환된 데이터를 AWS Lambda 함수로 전송해 추가적인 코드 실행을 트리거하거나, Amazon Simple Notification Service를 통해 알림을 발송하거나, Amazon Kinesis Data Streams에 스트림 데이터를 기록할 수 있다.
주요 대상 서비스로는 AWS Step Functions, Amazon Simple Queue Service, Amazon CloudWatch, Amazon S3, Amazon DynamoDB 등이 포함된다. 각 대상 서비스는 특정한 목적을 수행하며, 파이프 구성 시 대상의 입력 형식에 맞게 데이터 페이로드를 자동으로 변환해 전달한다. 이를 통해 개발자는 복잡한 통합 코드를 작성하지 않고도 서버리스 방식으로 여러 서비스를 쉽게 연결할 수 있다.
3. 작동 방식
3. 작동 방식
Amazon EventBridge Pipes의 작동 방식은 사용자가 구성한 파이프라인을 따라 데이터가 순차적으로 처리되는 과정을 기반으로 한다. 사용자는 AWS Management Console, AWS CLI, 또는 AWS CloudFormation과 같은 도구를 통해 파이프를 생성하고 구성한다. 이 과정에서 소스, 선택적 필터와 인리처, 그리고 대상을 지정하게 되며, 이렇게 정의된 파이프는 완전히 관리되는 상태로 실행된다.
파이프가 실행되면, 지정된 소스(예: Amazon DynamoDB 스트림, Amazon Kinesis 데이터 스트림, Amazon SQS 대기열)로부터 이벤트나 메시지가 자동으로 수집된다. 수집된 데이터는 파이프라인의 다음 단계로 전달되기 전에 선택적으로 이벤트 필터링을 거친다. 사용자가 정의한 필터 패턴과 일치하는 이벤트만 후속 처리 단계로 진행되며, 그렇지 않은 이벤트는 자동으로 폐기되어 불필요한 처리 비용과 복잡성을 줄인다.
필터링을 통과한 이벤트는 필요에 따라 인리처 단계에서 추가적인 데이터로 강화되거나 변환될 수 있다. 가장 일반적인 인리처는 AWS Lambda 함수로, 사용자 정의 코드를 실행하여 원본 이벤트 페이로드를 변환하거나, 외부 API를 호출하거나, 다른 AWS 서비스를 조회하여 메타데이터를 추가하는 작업을 수행한다. 이 단계를 통해 대상 서비스가 요구하는 정확한 데이터 형식과 내용을 갖출 수 있다.
마지막으로, 처리 및 변환이 완료된 데이터는 사용자가 지정한 대상으로 라우팅된다. 지원되는 대상에는 AWS Lambda, Amazon SQS, Amazon SNS, Amazon EventBridge 이벤트 버스, Amazon API Gateway, Step Functions 상태 머신 등 다양한 AWS 서비스가 포함된다. 이 전체 과정은 완전히 서버리스로 운영되며, AWS가 인프라 관리, 확장, 모니터링, 고가용성을 보장한다.
4. 주요 특징 및 장점
4. 주요 특징 및 장점
4.1. 서버리스 통합
4.1. 서버리스 통합
Amazon EventBridge Pipes는 서버리스 통합을 위한 핵심 솔루션이다. 이 서비스는 사용자가 서버리스 컴퓨팅 환경에서 AWS의 다양한 서비스들을 코드 없이 연결하고 오케스트레이션할 수 있도록 설계되었다. 사용자는 Amazon SQS 대기열, Amazon Kinesis 데이터 스트림, Amazon DynamoDB 스트림과 같은 이벤트 소스를 AWS Lambda 함수나 Amazon SNS 주제 같은 대상으로 직접 연결하는 파이프라인을 쉽게 구성할 수 있다.
이를 통해 개발자와 아키텍트는 복잡한 통합 코드를 작성하거나 글로벌 이벤트 버스를 구성하는 번거로움 없이, 완전 관리형 서비스로서의 이점을 누리며 이벤트 기반 애플리케이션을 구축할 수 있다. 서비스의 모든 인프라 관리, 확장, 패치, 모니터링은 AWS가 담당하므로, 사용자는 비즈니스 로직과 데이터 흐름 구성에만 집중할 수 있다. 이는 전통적인 통합 미들웨어나 사용자 정의 코드를 유지 관리하는 데 드는 운영 부담을 크게 줄여준다.
4.2. 데이터 변환 및 강화
4.2. 데이터 변환 및 강화
Amazon EventBridge Pipes의 핵심 기능 중 하나는 파이프라인을 통해 흐르는 데이터를 변환하고 추가 정보로 강화하는 것이다. 이는 단순한 데이터 전달을 넘어, 하류 대상 서비스가 요구하는 형식으로 데이터를 가공하거나, 처리에 필요한 컨텍스트를 추가하는 데 필수적이다.
데이터 변환은 AWS Lambda 함수나 내장 템플릿을 통해 수행된다. 소스에서 수신한 원본 이벤트는 사용자가 정의한 변환 로직을 거쳐 대상 서비스가 이해할 수 있는 형태로 구조나 내용이 변경된다. 예를 들어, Amazon Kinesis 스트림의 레코드를 특정 필드만 추출하여 재구성하거나, Amazon Simple Queue Service 메시지의 페이로드를 다른 프로토콜 형식으로 변환할 수 있다.
데이터 강화는 인리처 단계에서 이루어지며, 외부 소스를 조회하여 원본 이벤트에 정보를 추가한다. 이는 주로 추가 AWS Lambda 함수를 호출하여 구현된다. 강화를 통해 이벤트에 사용자 프로필 정보, 참조 데이터, 지리적 위치 정보 등을 덧붙여 하류 처리 로직을 더 풍부하고 효율적으로 만들 수 있다. 이러한 변환과 강화 과정은 완전히 서버리스로 실행되어 인프라 관리 부담 없이 복잡한 데이터 처리 파이프라인을 구축할 수 있게 한다.
4.3. 이벤트 필터링
4.3. 이벤트 필터링
Amazon EventBridge Pipes의 핵심 기능 중 하나는 파이프라인 내에서 불필요한 이벤트 처리를 방지하고 비용을 절감할 수 있는 정교한 이벤트 필터링을 제공하는 것이다. 사용자는 JSON 형태의 이벤트 페이로드를 기반으로 특정 조건을 정의하여, 오직 그 조건에 맞는 이벤트만 후속 단계인 인리처나 대상으로 전달되도록 구성할 수 있다.
이 필터링 규칙은 Amazon EventBridge 자체의 이벤트 버스에서 사용하는 것과 동일한 문법과 구성을 사용한다. 이를 통해 개발자는 이미 익숙한 패턴 매칭 방식을 그대로 활용하여, 예를 들어 특정 이벤트 소스에서 발생했거나, 페이로드 내 특정 필드 값이 조건과 일치하는 이벤트만을 선별적으로 처리하도록 파이프를 설정할 수 있다. 이는 AWS Lambda 함수나 Amazon SQS 대기열과 같은 다운스트림 리소스가 관련 없는 이벤트로 인해 불필요하게 호출되는 것을 방지한다.
효율적인 이벤트 필터링은 직접적인 비용 절감으로 이어진다. 서버리스 컴퓨팅 환경에서는 실행 횟수와 처리된 데이터 양에 따라 비용이 발생하는 경우가 많다. EventBridge Pipes에서 초기 소스 단계에서 이벤트를 필터링하면, 이후 단계의 서비스 호출 횟수가 줄어들어 전체적인 운영 비용을 최적화할 수 있다. 또한, 필터링을 통해 핵심 비즈니스 로직에만 집중할 수 있어 애플리케이션의 효율성과 유지보수성이 향상된다는 장점도 있다.
4.4. 비용 효율성
4.4. 비용 효율성
Amazon EventBridge Pipes는 사용한 만큼만 비용을 지불하는 종량제 모델을 채택하여 비용 효율성을 제공한다. 파이프를 구성하는 데 필요한 컴퓨팅 리소스는 AWS가 완전히 관리하므로, 서버를 프로비저닝하거나 관리하는 데 따른 추가 비용이나 운영 부담이 발생하지 않는다. 이는 전통적인 통합 미들웨어나 사용자 정의 코드를 운영할 때 필요한 인프라 비용을 크게 절감할 수 있게 한다.
비용은 주로 파이프를 통해 처리된 이벤트의 수와 데이터 변환을 위해 실행된 AWS Lambda 함수의 호출 횟수 및 실행 시간에 기반하여 청구된다. Amazon EventBridge 이벤트 버스에서 이벤트를 소싱하는 경우, EventBridge의 표준 이벤트 버스 요금이 별도로 적용될 수 있다. 또한, 대상 서비스(예: Amazon SQS, Amazon Kinesis Data Streams)의 사용량에 따른 요금도 발생한다.
이러한 구조는 트래픽이 적을 때는 비용이 매우 낮게 유지되며, 트래픽이 급증할 때도 자동으로 확장되어 안정적인 성능을 제공하면서도 사용한 리소스에 대해서만 비용이 청구된다. 따라서 예측 불가능한 워크로드를 처리하는 이벤트 기반 아키텍처나 마이크로서비스 환경에서 특히 경제적인 선택이 될 수 있다.
5. 사용 사례
5. 사용 사례
5.1. 이벤트 기반 마이크로서비스 통합
5.1. 이벤트 기반 마이크로서비스 통합
Amazon EventBridge Pipes는 이벤트 기반 아키텍처를 채택한 마이크로서비스 환경에서 서비스 간 통합을 단순화하는 데 효과적으로 사용된다. 여러 개별 서비스가 서로 느슨하게 결합된 환경에서, 한 서비스에서 발생한 이벤트를 다른 서비스가 소비하여 반응하는 흐름을 쉽게 구성할 수 있다. 예를 들어, Amazon SQS 대기열에 새로운 메시지가 도착하거나 Amazon DynamoDB 테이블에 변경이 발생했을 때, 이를 AWS Lambda 함수나 다른 AWS 서비스로 자동으로 연결하는 파이프라인을 코드 없이 설정할 수 있다.
이를 통해 개발자는 서비스 간의 통합 로직을 직접 작성하고 관리하는 복잡한 작업을 줄일 수 있다. 각 마이크로서비스는 자신의 비즈니스 로직에만 집중하고, EventBridge Pipes가 이벤트의 라우팅, 변환, 전달을 담당한다. 이는 시스템의 유지보수성을 높이고, 새로운 통합 요구사항이 생겼을 때 빠르게 대응할 수 있는 유연성을 제공한다. 결과적으로 분산 시스템의 복잡성을 관리하는 데 큰 도움이 된다.
5.2. 스트림 데이터 처리
5.2. 스트림 데이터 처리
Amazon EventBridge Pipes는 스트림 데이터 처리 파이프라인을 구축하는 데 효과적으로 활용된다. Amazon Kinesis Data Streams나 Amazon DynamoDB Streams와 같은 실시간 데이터 스트림 소스를 연결하여, 들어오는 레코드나 변경 사항을 즉시 처리하고 다른 서비스로 라우팅할 수 있다. 이를 통해 사용자는 복잡한 애플리케이션 코드를 작성하지 않고도 스트림 데이터의 변환, 필터링, 강화 작업을 손쉽게 구성할 수 있다.
예를 들어, DynamoDB 테이블의 항목 변경 사항을 스트림으로 캡처한 후, EventBridge Pipes를 사용해 특정 조건에 맞는 변경 이벤트만 필터링하고, AWS Lambda 함수를 통해 데이터 형식을 변환한 뒤, 최종적으로 Amazon SNS를 통해 알림을 발송하거나 Amazon Redshift에 분석 데이터를 로드하는 파이프라인을 만들 수 있다. 이는 전통적으로 별도의 스트림 프로세서나 복잡한 글로벌 인프라 관리가 필요했던 작업을 단순화한다.
이러한 방식은 실시간 대시보드 업데이트, 이상 감지, 실시간 데이터 변환 및 로드(ETL)와 같은 사용 사례에 적합하다. 서버리스 방식으로 동작하므로 스트림 데이터의 처리량에 따라 자동으로 확장되며, 실제 사용한 리소스에 대해서만 비용을 지불하는 모델을 제공한다. 결과적으로 개발자는 데이터 흐름의 논리에 더 집중할 수 있고, 운영 부담은 크게 줄일 수 있다.
5.3. 알림 및 모니터링 파이프라인
5.3. 알림 및 모니터링 파이프라인
Amazon EventBridge Pipes는 알림 및 모니터링 파이프라인을 구축하는 데 효과적으로 활용된다. 이 서비스를 사용하면 AWS 환경 내에서 발생하는 다양한 이벤트나 로그 데이터를 중앙 집중식으로 수집하고, 필요한 처리를 거쳐 적절한 알림 채널로 전달하는 자동화된 흐름을 쉽게 구성할 수 있다. 예를 들어, Amazon CloudWatch 로그 그룹이나 AWS Health 이벤트를 소스로 지정하여 중요한 시스템 이벤트나 상태 변화를 실시간으로 감지할 수 있다.
이러한 파이프라인에서는 필터를 통해 특정 조건(예: 오류 메시지, 특정 지표 임계값 초과)을 만족하는 이벤트만 선별적으로 처리하도록 설정할 수 있다. 또한, 인리처 단계에서 AWS Lambda 함수를 호출하여 원본 이벤트 데이터에 추가적인 컨텍스트 정보를 강화하거나, Amazon Simple Notification Service 형식에 맞게 메시지를 가공할 수 있다. 최종적으로 처리된 데이터는 Amazon SNS를 통해 이메일이나 SMS로, 또는 Slack과 같은 협업 도구의 웹훅으로 전송되어 팀원들에게 즉시 알림이 전달된다.
이를 통해 운영 팀은 여러 서비스에서 분산되어 발생하는 이벤트를 수동으로 모니터링할 필요 없이, 중요한 사건에 대해서만 효율적으로 대응할 수 있다. 서버리스 방식으로 동작하기 때문에 인프라 관리 부담 없이 확장성 있고 비용 효율적인 모니터링 체계를 구축하는 데 기여한다.
6. 지원되는 소스 및 대상
6. 지원되는 소스 및 대상
Amazon EventBridge Pipes는 다양한 AWS 서비스와의 통합을 광범위하게 지원한다. 이 서비스는 파이프라인의 시작점인 소스와 종착점인 대상으로 사용할 수 있는 여러 AWS 서비스를 제공하여 유연한 이벤트 흐름 구성을 가능하게 한다.
주요 소스로는 Amazon Simple Queue Service, Amazon DynamoDB 스트림, Amazon Kinesis 데이터 스트림, Amazon Managed Streaming for Apache Kafka 등이 있다. 또한 Amazon Simple Notification Service 주제나 Amazon API Gateway와 같은 서비스도 소스로 활용할 수 있다. 이러한 소스들은 실시간 데이터 스트림이나 메시지 큐에서 이벤트를 수집하여 파이프라인으로 전달하는 역할을 한다.
대상으로는 AWS Lambda 함수, Amazon EventBridge 이벤트 버스, Amazon Simple Notification Service, Amazon Simple Queue Service, Amazon Kinesis Data Firehose 등이 포함된다. 또한 Amazon CloudWatch Logs, Amazon CloudWatch Evidently, Amazon Redshift 데이터 스트림, Amazon SageMaker 파이프라인, AWS Step Functions 상태 머신과 같은 분석 및 오케스트레이션 서비스도 대상으로 지정할 수 있다. 이를 통해 수집된 데이터를 처리, 저장, 분석하거나 다른 시스템으로 전파하는 것이 가능하다.
이처럼 EventBridge Pipes는 AWS 생태계 내의 핵심 서비스들을 소스와 대상으로 포괄적으로 지원한다. 이는 사용자가 복잡한 코드 작성 없이도 서비스 간의 데이터 흐름을 쉽게 연결하고, 서버리스 방식으로 이벤트 기반 마이크로서비스를 통합할 수 있는 기반을 마련해 준다.
7. 구성 및 설정 방법
7. 구성 및 설정 방법
Amazon EventBridge Pipes의 구성 및 설정은 AWS Management Console, AWS CLI, AWS CloudFormation 또는 AWS Cloud Development Kit을 통해 수행할 수 있다. 설정 과정은 기본적으로 파이프를 생성하고, 소스, 필터, 인리처, 대상이라는 네 가지 핵심 구성 요소를 순서대로 정의하는 방식으로 진행된다.
먼저 AWS Management Console에 로그인하여 Amazon EventBridge 서비스로 이동한 후, 왼쪽 탐색 창에서 '파이프'를 선택하고 '파이프 생성' 버튼을 클릭한다. 생성 단계에서는 파이프의 이름과 설명을 입력하고, 연결할 소스를 선택한다. 소스는 Amazon SQS, Amazon Kinesis, Amazon DynamoDB Streams 등 사전에 구성된 서비스 중 하나를 지정한다. 소스를 선택하면 해당 서비스의 특정 리소스(예: 특정 SQS 대기열 ARN)를 지정하여 연결해야 한다.
다음 단계에서는 선택적으로 이벤트 필터링 규칙을 JSON 형식으로 정의하여 원하는 이벤트만 다음 단계로 전달하도록 할 수 있다. 이후에는 인리처를 설정하는데, AWS Lambda 함수나 Amazon API Gateway HTTP API를 지정하여 이벤트 데이터를 변환하거나 추가 정보로 강화할 수 있다. 마지막으로 처리된 데이터를 전송할 대상을 선택하며, AWS Lambda, Amazon SNS, Amazon SQS, Amazon EventBridge 이벤트 버스 등 다양한 서비스를 대상으로 지정할 수 있다. 모든 설정을 마친 후 권한을 검토하고 파이프를 활성화하면 구성이 완료된다.
8. 관련 AWS 서비스
8. 관련 AWS 서비스
8.1. Amazon EventBridge
8.1. Amazon EventBridge
Amazon EventBridge는 AWS에서 제공하는 서비스 간 통합을 단순화하는 서비스이다. 이 서비스는 이벤트 기반 아키텍처를 구현하는 데 중추적인 역할을 하며, 서버리스 컴퓨팅 환경에서 다양한 애플리케이션과 마이크로서비스가 서로 통신할 수 있도록 돕는다.
Amazon EventBridge는 이벤트 버스를 중심으로 작동하여, AWS 서비스, 사용자 애플리케이션, 서드파티 SaaS 애플리케이션 등 다양한 소스에서 발생하는 이벤트를 수집한다. 수집된 이벤트는 미리 정의된 규칙에 따라 필터링되어 AWS Lambda, Amazon SQS, Amazon Kinesis 등과 같은 대상으로 라우팅된다. 이를 통해 복잡한 데이터 통합 작업을 코드 없이 선언적으로 구성할 수 있다.
이 서비스는 2022년 11월 30일에 처음 등장했으며, 주된 용도는 AWS 서비스 간의 데이터 흐름을 구성하고 변환하는 것이다. EventBridge를 사용하면 개발자는 애플리케이션 컴포넌트 간의 느슨한 결합을 유지하면서도 효율적인 이벤트 드리븐 시스템을 구축할 수 있다. 이는 클라우드 네이티브 애플리케이션 개발에 필수적인 요소로 자리 잡았다.
Amazon EventBridge Pipes는 EventBridge의 기능을 확장하여, 단일 소스에서 단일 대상으로의 직접적인 데이터 흐름 파이프라인을 더욱 간소화된 방식으로 생성할 수 있게 한다. Pipes는 필터링, 변환, 인리치먼트와 같은 중간 처리 단계를 파이프 내에 통합함으로써, 기존에 여러 서비스를 조합해야 했던 복잡한 통합 패턴을 단일 리소스로 구현하는 데 기여한다.
8.2. AWS Lambda
8.2. AWS Lambda
AWS Lambda는 Amazon EventBridge Pipes 파이프라인에서 중요한 역할을 수행하는 서버리스 컴퓨팅 서비스이다. EventBridge Pipes의 구성 요소 중 하나인 인리처 또는 대상으로 활용될 수 있다. 인리처로 사용될 경우, 파이프를 통해 전달된 이벤트 데이터를 받아 추가적인 비즈니스 로직을 실행하거나 외부 시스템과의 연동을 처리하여 데이터를 강화하는 데 사용된다.
대상으로 지정되면, 파이프라인의 최종 단계에서 변환 및 필터링을 거친 이벤트를 수신하여 완전한 애플리케이션 로직을 실행하는 엔드포인트가 된다. 이를 통해 복잡한 데이터 처리, API 호출, 데이터베이스 업데이트 등의 작업을 자동화할 수 있다. Lambda 함수는 Node.js, Python, Java, Go 등 다양한 프로그래밍 언어로 작성할 수 있어 유연성이 높다.
EventBridge Pipes와 Lambda의 조합은 이벤트 기반 아키텍처를 구현하는 강력한 도구이다. 예를 들어, Amazon SQS 대기열의 메시지가 Amazon DynamoDB 스트림의 변경 사항이 Lambda 함수를 트리거하도록 파이프를 구성하면, 개발자는 인프라 관리보다 비즈니스 로직 개발에 집중할 수 있다. 이는 서버리스 패턴의 핵심 장점을 구현하는 전형적인 사례이다.
8.3. Amazon SQS
8.3. Amazon SQS
Amazon SQS는 Amazon EventBridge Pipes가 지원하는 주요 소스 및 대상 중 하나이다. Amazon EventBridge Pipes는 Amazon SQS 대기열에서 메시지를 소비하여 다른 AWS 서비스로 라우팅하는 파이프라인을 쉽게 구성할 수 있게 해준다. 이를 통해 서버리스 애플리케이션 간의 비동기 통합을 간소화할 수 있다.
Amazon EventBridge Pipes는 Amazon SQS 대기열을 소스로 사용할 때, 대기열의 메시지를 자동으로 폴링하고 가져온다. 수신된 메시지는 파이프 내에서 정의된 필터 규칙을 통해 선택적으로 처리되거나, 인리처를 통해 외부 소스의 데이터로 보강될 수 있다. 최종적으로 변환된 메시지는 Amazon SQS를 포함한 다양한 대상으로 전달된다.
이 통합은 마이크로서비스 아키텍처에서 이벤트 기반 아키텍처를 구현하는 데 유용하다. 예를 들어, 주문 처리 시스템에서 주문 생성 이벤트를 Amazon SQS 대기열에 발행하면, EventBridge Pipes가 이를 감지하여 필요한 비즈니스 로직을 처리하는 AWS Lambda 함수를 호출하거나, 다른 Amazon SQS 대기열이나 Amazon Kinesis 스트림으로 전달하는 워크플로를 구축할 수 있다.
Amazon SQS는 완전관리형 메시지 대기열 서비스로, 애플리케이션 구성 요소 간에 메시지를 안정적으로 전송, 저장 및 수신할 수 있게 한다. Amazon EventBridge Pipes와의 연동을 통해, 단순한 메시지 전달을 넘어서 복잡한 데이터 변환과 라우팅 로직을 중앙에서 관리할 수 있는 장점이 있다.
8.4. Amazon Kinesis
8.4. Amazon Kinesis
Amazon Kinesis는 AWS에서 제공하는 실시간 스트리밍 데이터 처리 서비스이다. Amazon EventBridge Pipes는 Amazon Kinesis Data Streams를 중요한 소스 중 하나로 지원하며, 이를 통해 지속적으로 유입되는 대규모 데이터 스트림을 실시간으로 수집하고 처리할 수 있다. 예를 들어, 애플리케이션 로그, 소셜 미디어 피드, IoT 센서 데이터 등을 Kinesis Data Streams로 수집한 후, EventBridge Pipes를 사용해 쉽게 필터링하거나 변환하여 다른 AWS 서비스로 라우팅하는 파이프라인을 구축할 수 있다.
이 조합은 서버리스 이벤트 기반 아키텍처를 구현하는 데 유용하다. EventBridge Pipes는 Kinesis 스트림에서 레코드를 읽어 자동으로 배치 처리하며, 인리처를 통해 AWS Lambda 함수를 호출해 데이터를 변환하거나 외부 API를 호출해 정보를 보강할 수 있다. 처리된 데이터는 다시 Amazon S3에 저장하거나, Amazon DynamoDB 테이블을 업데이트하거나, Amazon SNS를 통해 알림을 발행하는 등 다양한 대상으로 전달될 수 있다. 이를 통해 개발자는 복잡한 컨슈머 애플리케이션을 작성하지 않고도 강력한 스트림 처리 파이프라인을 관리할 수 있다.
9. 여담
9. 여담
Amazon EventBridge Pipes는 Amazon Web Services가 서버리스 컴퓨팅과 이벤트 기반 아키텍처를 구현하는 개발자들에게 제공하는 통합 도구이다. 이 서비스는 2022년 11월 30일에 처음 공개되었으며, 기존에 복잡한 코드를 작성해야 했던 서비스 간 데이터 통합 작업을 선언적 방식으로 단순화하는 데 중점을 두고 설계되었다.
EventBridge Pipes의 등장은 AWS 생태계 내에서 이벤트 드리븐 애플리케이션을 구축하는 패러다임을 한 단계 진전시켰다고 평가받는다. 사용자는 Amazon SQS 대기열의 메시지, Amazon Kinesis 데이터 스트림, 또는 Amazon DynamoDB 스트림과 같은 소스에서 데이터를 가져와, 최소한의 구성만으로 AWS Lambda 함수를 거쳐 다른 대상 서비스로 라우팅할 수 있다. 이는 각 구성 요소를 연결하기 위한 보일러플레이트 코드의 필요성을 크게 줄여준다.
이 서비스는 특히 마이크로서비스 아키텍처에서 각 서비스의 결합도를 낮추고 유연성을 높이는 데 기여한다. 개발자는 파이프라인의 각 단계, 즉 소스, 필터, 인리처, 대상을 독립적으로 관리하고 수정할 수 있어, 시스템의 한 부분을 변경할 때 전체 흐름을 재구성할 필요가 없다. 이러한 설계는 애자일 개발 및 지속적 배포 환경에서 변경 사항을 빠르게 반영하는 데 유리하다.
EventBridge Pipes는 AWS의 포괄적인 이벤트 버스 서비스인 Amazon EventBridge와의 연계를 통해 그 위력을 더한다. EventBridge가 광범위한 이벤트 라우팅과 규칙 기반 처리를 담당한다면, Pipes는 두 서비스 간의 점대점 통합에 특화된 도구로 볼 수 있다. 두 서비스를 함께 사용하면 복잡한 이벤트 기반 애플리케이션을 보다 효율적으로 구축하고 운영할 수 있는 토대를 마련해 준다.
