AWS Event Fork Pipelines로 팬아웃 - Amazon Simple Notification Service

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

AWS Event Fork Pipelines로 팬아웃

이제 Amazon SNS는 이벤트 보관 및 분석을 위해 Amazon Data Firehose와의 네이티브 통합 사용을 권장합니다. Firehose 전송 스트림을 SNS 주제로 구독하면 Amazon Simple Storage Service (Amazon S3) 버킷, Amazon Redshift 테이블, OpenSearch Amazon 서비스 (서비스) 등과 같은 보관 및 분석 엔드포인트에 알림을 보낼 수 있습니다. OpenSearch Firehose 전송 스트림과 함께 Amazon SNS를 사용하면 함수를 사용할 필요가 없는 완전 관리형 코드 없는 솔루션입니다. AWS Lambda 자세한 설명은 팬아웃에서 Firehose로의 전송 스트림 섹션을 참조하세요.

Amazon SNS를 사용하여 게시자 서비스에 의해 트리거되는 이벤트에 응답하여 자동으로 작업을 수행하는 구독자 서비스를 사용하는 이벤트 기반 애플리케이션을 빌드할 수 있습니다. 이 아키텍처 패턴은 서비스에서 재사용성, 상호 작용성 및 확장성을 향상할 수 있습니다. 하지만 이벤트 저장, 백업, 검색, 분석, 다시 보기 등 일반적인 이벤트 처리 요구 사항을 해결하는 파이프라인으로 이벤트 처리를 분기하는 것은 공수가 많이 들어갈 수 있습니다.

이벤트 기반 애플리케이션 개발을 가속화하기 위해 AWS Event Fork Pipelines에 의해 제공되는 이벤트 처리 파이프라인에서 Amazon SNS 주제를 구독할 수 있습니다. AWS Event Fork Pipelines는 AWS Serverless Application Model(AWS SAM)을 기반으로 하는 오픈 소스 중첩 애플리케이션 제품군으로, AWS Event Fork Pipelines 제품군(사용자 지정 IAM 역할 또는 리소스 정책을 생성하는 앱 표시 선택)에서 AWS 계정으로 직접 배포할 수 있습니다.

AWS Event Fork Pipelines 사용 사례는 AWS Event Fork Pipelines 샘플 애플리케이션 배포 및 테스트에서 확인하세요.

AWS Event Fork Pipelines 작동 방식

AWS Event Fork Pipelines는 서버리스 설계 패턴입니다. 하지만 AWS SAM을 기반으로 하는 중첩 서버리스 애플리케이션의 모음이기도 합니다(이벤트 기반 플랫폼을 보강하기 위해 AWS Serverless Application Repository(AWS SAR)에서 직접 AWS 계정으로 배포할 수 있음). 아키텍처에서 필요할 경우 이러한 중첩 애플리케이션을 개별적으로 배포할 수 있습니다.

다음 다이어그램은 3개의 중첩 애플리케이션에 의해 보완된 AWS Event Fork Pipelines 애플리케이션입니다. 아키텍처에서 필요할 경우 AWS SAR의 AWS Event Fork Pipelines 제푼군에 포함된 어떤 파이프라인도 개별적으로 배포할 수 있습니다.

각 파이프라인은 동일한 Amazon SNS 주제를 구독하여 이러한 이벤트가 주제에 게시될 경우 동시에 이벤트를 처리할 수 있습니다. 각 파이프라인은 독립적이며 각각 구독 필터 정책을 설정할 수 있습니다. 그러므로 특정 파이프라인이 주제에 게시되는 모든 이벤트가 아니라 이벤트 하위 집합만 처리할 수 있습니다.

참고

정규 이벤트 처리 파이프라인(아마도 이미 Amazon SNS 주제를 구독)과 함께 3개의 AWS Event Fork Pipelines를 배치하므로 기존 워크로드에서 AWS Event Fork Pipelines를 활용하기 위해 현재 메시지 게시자의 어떤 부분도 변경할 필요가 없습니다.

이벤트 저장 및 백업 파이프라인

다음 다이어그램은 이벤트 저장 및 백업 파이프라인입니다. 이 파이프라인에서 Amazon SNS 주제를 구독하여 시스템을 통과하는 이벤트를 자동으로 백업할 수 있습니다.

이 파이프라인은 Amazon SNS 주제에 의해 전송된 이벤트를 버퍼링하는 Amazon SQS 대기열, AWS Lambda 대기열에서 이러한 이벤트를 자동으로 폴링하여 Amazon Data Firehose 스트림으로 푸시하는 함수, 스트림에서 로드된 이벤트를 안정적으로 백업하는 Amazon S3 버킷으로 구성됩니다.

Firehose 스트림의 동작을 미세 조정하려면 버킷으로 로드하기 전에 이벤트를 버퍼링, 변환 및 압축하도록 구성할 수 있습니다. 이벤트가 로드될 때 Amazon Athena를 사용하여 표준 SQL 쿼리로 버킷을 쿼리할 수 있습니다. 또한 기존 Amazon S3 버킷을 재사용하거나 새 버킷을 생성하도록 파이프라인을 구성할 수 있습니다.

이벤트 검색 및 분석 파이프라인

다음 다이어그램은 이벤트 검색 및 분석 파이프라인입니다. 이 파이프라인에서 Amazon SNS 주제를 구독하여 검색 도메인에서 시스템을 통과하는 이벤트를 인덱싱한 후 이들 이벤트에 대해 분석을 실행할 수 있습니다.

이 파이프라인은 Amazon SNS 주제에 의해 전송된 이벤트를 버퍼링하는 Amazon SQS 대기열, AWS Lambda 대기열에서 이벤트를 폴링하여 Amazon Data Firehose 스트림으로 푸시하는 함수, Firehose 스트림에서 로드된 이벤트를 인덱싱하는 Amazon 서비스 도메인, OpenSearch 도메인 검색에서 인덱싱할 수 없는 데드레터 이벤트를 저장하는 Amazon S3 버킷으로 구성됩니다..

이벤트 버퍼링, 변환 및 압축에서 Firehose 스트림을 미세 조정하기 위해 이 파이프라인을 구성할 수 있습니다.

파이프라인에서 기존 OpenSearch 도메인을 재사용할지 AWS 계정 아니면 새 도메인을 생성할지 구성할 수도 있습니다. 검색 도메인에서 이벤트가 인덱싱될 때 Kibana를 사용하여 이벤트에 대한 분석을 실행하고 시각적 대시보드를 실시간으로 업데이트할 수 있습니다.

이벤트 다시 보기 파이프라인

다음 다이어그램은 이벤트 다시 보기 파이프라인입니다. 시스템에서 지난 14일간 처리한 이벤트를 기록하려면 이 파이프라인에서 Amazon SNS 주제를 구독한 후 이벤트를 다시 처리할 수 있습니다(예를 들어 플랫폼이 장애로부터 복구해야 할 경우).

이 파이프라인은 Amazon SNS 주제로부터 전달된 이벤트를 버퍼링하는 Amazon SQS 대기열과 대기열에서 이벤트를 폴링하여 같은 주제를 구독하는 정규 이벤트 처리 파이프라인으로 리드라이브하는 AWS Lambda 함수로 구성됩니다.

참고

기본적으로 다시 보기 함수는 비활성화되어 이벤트를 리드라이브하지 않습니다. 이벤트를 다시 처리해야 할 경우 AWS Lambda 다시 보기 함수용 이벤트 소스로 Amazon SQS 다시 보기 대기열을 활성화해야 합니다.

AWS Event Fork Pipelines 배포

AWS Event Fork Pipelines 제품군(S사용자 지정 IAM 역할 또는 리소스 정책을 생성하는 앱 표시를 선택)은 AWS Serverless Application Repository에서 퍼블릭 애플리케이션 그룹으로 사용할 수 있으며, 여기에서 AWS Lambda 콘솔을 사용하여 수동으로 배포 및 테스트할 수 있습니다. AWS Lambda 콘솔을 사용하여 파이프라인을 배포하는 자세한 내용은 AWS Event Fork Pipelines에서 Amazon SNS 주제 구독에서 확인하세요.

프로덕션 시나리오에서는 전체 애플리케이션의 AWS SAM 템플릿에 AWS Event Fork Pipelines를 포함하는 것이 좋습니다. 중첩 애플리케이션 기능을 사용하면 리소스 AWS::Serverless::Application을 AWS SAM 템플릿에 추가하고 중첩 애플리케이션의 AWS SAR ApplicationIdSemanticVersion을 참조하여 이렇게 할 수 있습니다.

예를 들어 다음 YAML 코드 조각을 AWS SAM 템플릿의 Resources 섹션에 추가하여 이벤트 저장 및 백업 파이프라인을 중첩 애플리케이션으로 사용할 수 있습니다.

Backup: Type: AWS::Serverless::Application Properties: Location: ApplicationId: arn:aws:serverlessrepo:us-east-2:123456789012:applications/fork-event-storage-backup-pipeline SemanticVersion: 1.0.0 Parameters: #The ARN of the Amazon SNS topic whose messages should be backed up to the Amazon S3 bucket. TopicArn: !Ref MySNSTopic

파라미터 값을 지정할 때 AWS CloudFormation 내장 함수를 사용하여 템플릿의 다른 리소스를 참조할 수 있습니다. 예를 들어, 위 YAML 코드 조각에서 TopicArn 파라미터는 AWS SAM 템플릿의 다른 위치에서 정의된 AWS::SNS::Topic 리소스 MySNSTopic을 참조합니다. 자세한 정보는 AWS CloudFormation 사용 설명서내장 함수 참조를 확인하세요.

참고

AWS SAR 애플리케이션의 AWS Lambda 콘솔 페이지에는 Copy as SAM Resource(SAM 리소스로 복사) 버튼이 포함되어 있습니다. 이 버튼은 AWS SAR 앱을 클립보드로 중첩하는 데 필요한 YAML을 복사합니다.