

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

# AWS Event Fork Pipelines에서 Amazon SNS 주제 구독
<a name="sns-subscribe-event-fork-pipelines"></a>

이벤트 기반 애플리케이션의 개발을 가속화하기 위해 AWS Event Fork Pipelines 기반 이벤트 처리 파이프라인에서 Amazon SNS 주제를 구독할 수 있습니다. AWS Event Fork Pipelines은 [AWS 서버리스 애플리케이션 모델](https://aws.amazon.com/serverless/sam/)(AWS SAM)을 기반으로 하는 오픈 소스 [중첩](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) 애플리케이션 제품군으로, [AWS Event Fork Pipelines 제품군](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines)(사용자 **지정 IAM 역할 또는 리소스 정책을 생성하는 앱 표시** 선택)에서 AWS 계정에 직접 배포할 수 있습니다. 자세한 내용은 [AWS Event Fork Pipelines 작동 방식](sns-fork-pipeline-as-subscriber.md#how-sns-fork-works) 단원을 참조하십시오.

이 섹션에서는를 사용하여 파이프라인 AWS Management Console 을 배포한 다음 AWS Event Fork Pipelines에서 Amazon SNS 주제를 구독하는 방법을 보여줍니다. 시작하기 전에 [Amazon SNS 주제를 생성](sns-create-topic.md)합니다.

파이프라인을 구성하는 리소스를 삭제하려면 AWS Lambda 콘솔의 **애플리케이션** 페이지에서 파이프라인을 찾아 **SAM 템플릿 섹션을** 확장하고 **CloudFormation 스택**을 선택한 다음 **기타 작업**, **스택 삭제를** 선택합니다.

# 이벤트 스토리지 및 백업 파이프라인을 Amazon SNS에 배포 및 구독
<a name="deploy-event-storage-backup-pipeline"></a>


|  | 
| --- |
| 이벤트 아카이빙 및 분석을 위해 Amazon SNS는 이제 Amazon Data Firehose와의 기본 통합 기능을 사용할 것을 권장합니다. Firehose 전송 스트림에서 SNS 주제를 구독하여 Amazon Simple Storage Service(Amazon S3) 버킷, Amazon Redshift 테이블, Amazon OpenSearch Service(OpenSearch Service) 등과 같은 아카이브 및 분석 엔드포인트에 알림을 보낼 수 있습니다. Firehose 전송 스트림에서 Amazon SNS를 사용하는 것은 AWS Lambda 함수를 사용할 필요가 없는 완전 관리형 코드 없는 솔루션입니다. 자세한 내용은 [Firehose 전송 스트림으로 팬아웃](sns-firehose-as-subscriber.md) 단원을 참조하십시오. | 

이 페이지에서는 [이벤트 저장 및 백업 파이프라인](sns-fork-pipeline-as-subscriber.md#sns-fork-event-storage-and-backup-pipeline)을 배포하여 Amazon SNS 주제를 구독하는 방법을 보여줍니다. 이 프로세스는 파이프라인과 연결된 AWS SAM 템플릿을 자동으로 CloudFormation 스택으로 변환한 다음 스택을에 배포합니다 AWS 계정. 또한 이 프로세스는 이벤트 저장 및 백업 파이프라인을 구성하는 다음과 같은 리소스 세트를 생성하고 구성합니다.
+ Amazon SQS 대기열
+ Lambda 함수
+ Firehose 전송 스트림
+ Amazon S3 백업 버킷

Amazon S3 버킷을 대상으로 하여 스트림을 구성하는 방법에 대한 자세한 정보는 *Amazon Data Firehose API 참조*의 `[S3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_S3DestinationConfiguration.html)` 섹션에서 확인하세요.

이벤트 변환 및 이벤트 버퍼링, 이벤트 압축 및 이벤트 암호화 구성에 대한 자세한 정보는 *Amazon Data Firehose 개발자 안내서*의 [전송 스트림 생성](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) 섹션을 참조하세요.

이벤트 필터링에 대한 자세한 정보는 이 설명서의 [Amazon SNS 구독 필터 정책](sns-subscription-filter-policies.md)에서 확인하세요.

1. [AWS Lambda 콘솔](https://console.aws.amazon.com/lambda/)에 로그인합니다.

1. 탐색 창에서 **함수**를 선택한 후 **함수 생성**을 선택합니다.

1. **함수 생성** 페이지에서 다음을 수행합니다.

   1. **서버리스 앱 리포지토리 찾아보기**, **퍼블릭 애플리케이션**, **사용자 지정 IAM 역할 또는 리소스 정책을 생성하는 앱 표시**를 선택합니다.

   1. `fork-event-storage-backup-pipeline`을 검색하여 이 애플리케이션을 선택합니다.

1. **fork-event-storage-backup-pipeline** 페이지에서 다음을 수행합니다.

   1. **Application settings(애플리케이션 설정)** 섹션에서 **애플리케이션 이름**을 입력합니다(예: `my-app-backup`).
**참고**  
각 배포에서 애플리케이션 이름이 고유해야 합니다. 애플리케이션 이름을 재사용하면 배포는 (새 스택을 생성하는 대신) 이전에 배포된 CloudFormation 스택만 업데이트합니다.

   1. (선택 사항) **BucketArn**에 수신 이벤트가 로드될 Amazon S3 버킷의 ARN을 입력합니다. 값을 입력하지 않으면 AWS 계정에 새 Amazon S3 버킷이 생성됩니다.

   1. (선택 사항) **DataTransformationFunctionArn**에 수신 이벤트를 변환할 Lambda 함수의 ARN을 입력합니다. 값을 입력하지 않을 경우 데이터 변환이 비활성화됩니다.

   1. (선택 사항) 애플리케이션의 Lambda 함수 실행을 위해 다음 **LogLevel** 설정 중 하나를 입력합니다.
      + `DEBUG`
      + `ERROR`
      + `INFO`(기본값)
      + `WARNING`

   1. **TopicArn**에 이 포크 파이프라인 인스턴스가 구독할 Amazon SNS 주제의 ARN을 입력합니다.

   1. (선택 사항) **StreamBufferingIntervalInSeconds** 및 **StreamBufferingSizeInMBs**에 수신 이벤트 버퍼링을 구성하기 위한 값을 입력합니다. 값을 입력하지 않을 경우 300초 및 5MB가 사용됩니다.

   1. (선택 사항) 수신 이벤트를 압축하기 위한 다음 **StreamCompressionFormat** 설정 중 하나를 입력합니다.
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED`(기본값)
      + `ZIP`

   1. (선택 사항) **StreamPrefix**에 Amazon S3 백업 버킷에 저장된 파일을 명명할 문자열 접두사를 입력합니다. 값을 입력하지 않을 경우 접두사가 사용되지 않습니다.

   1. (선택 사항) **SubscriptionFilterPolicy**에 수신 이벤트를 필터링하는 데 사용할 Amazon SNS 구독 필터 정책을 JSON 형식으로 입력합니다. 이 필터 정책은 OpenSearch Service 인덱스에 인덱싱할 이벤트를 결정합니다. 값을 입력하지 않을 경우 필터링이 사용되지 않습니다(모든 이벤트가 인덱싱됨).

   1. (선택 사항) **SubscriptionFilterPolicyScope**에 `MessageBody` 또는 `MessageAttributes` 문자열을 입력하거나 페이로드 기반 또는 속성 기반 메시지 필터링을 활성화합니다.

   1. **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications.(본인은 이 앱이 사용자 지정 IAM 역할, 리소스 정책을 생성하고 중첩 애플리케이션을 배포함을 확인합니다.)**를 선택하고 **배포**를 선택합니다.

**Deployment status for *my-app*(my-app 배포 상태)** 페이지에서 Lambda가 **Your application is being deployed(애플리케이션을 배포 중)** 상태를 표시합니다.

**리소스** 섹션에서는 스택 생성을 CloudFormation 시작하고 각 리소스에 대한 **CREATE\$1IN\$1PROGRESS** 상태를 표시합니다. 프로세스가 완료되면 **CREATE\$1COMPLETE** 상태가 CloudFormation 표시됩니다.

배포가 완료되면 Lambda가 **Your application has been deployed(애플리케이션이 배포됨)** 상태를 표시합니다.

Amazon SNS 주제에 게시되는 메시지는 이벤트 저장 및 백업 파이프라인에 의해 프로비저닝되는 Amazon S3 백업 버킷에 자동으로 저장됩니다.

# 이벤트 검색 및 분석 파이프라인을 Amazon SNS에 배포 및 구독
<a name="deploy-event-search-analytics-pipeline"></a>


|  | 
| --- |
| 이벤트 아카이빙 및 분석을 위해 Amazon SNS는 이제 Amazon Data Firehose와의 기본 통합 기능을 사용할 것을 권장합니다. Firehose 전송 스트림에서 SNS 주제를 구독하여 Amazon Simple Storage Service(Amazon S3) 버킷, Amazon Redshift 테이블, Amazon OpenSearch Service(OpenSearch Service) 등과 같은 아카이브 및 분석 엔드포인트에 알림을 보낼 수 있습니다. Firehose 전송 스트림에서 Amazon SNS를 사용하는 것은 AWS Lambda 함수를 사용할 필요가 없는 완전 관리형 코드 없는 솔루션입니다. 자세한 내용은 [Firehose 전송 스트림으로 팬아웃](sns-firehose-as-subscriber.md) 단원을 참조하십시오. | 

이 페이지에서는 [이벤트 검색 및 분석 파이프라인](sns-fork-pipeline-as-subscriber.md#sns-fork-event-search-and-analytics-pipeline)을 배포하여 Amazon SNS 주제를 구독 설정하는 방법을 보여줍니다. 이 프로세스는 파이프라인과 연결된 AWS SAM 템플릿을 자동으로 CloudFormation 스택으로 변환한 다음 스택을에 배포합니다 AWS 계정. 또한 이 프로세스는 이벤트 검색 및 분석 파이프라인을 구성하는 다음과 같은 리소스 세트를 생성하고 구성합니다.
+ Amazon SQS 대기열
+ Lambda 함수
+ Firehose 전송 스트림
+ Amazon OpenSearch Service 도메인
+ Amazon S3 배달 못한 편지 버킷

인덱스를 대상으로 하여 스트림을 구성하는 방법에 대한 자세한 정보는 *Amazon Data Firehose API 참조*의 `[ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html)` 섹션에서 참조하세요.

이벤트 변환 및 이벤트 버퍼링, 이벤트 압축 및 이벤트 암호화 구성에 대한 자세한 정보는 *Amazon Data Firehose 개발자 안내서*의 [전송 스트림 생성](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) 섹션을 참조하세요.

이벤트 필터링에 대한 자세한 정보는 이 설명서의 [Amazon SNS 구독 필터 정책](sns-subscription-filter-policies.md)에서 확인하세요.

1. [AWS Lambda 콘솔](https://console.aws.amazon.com/lambda/)에 로그인합니다.

1. 탐색 창에서 **함수**를 선택한 후 **함수 생성**을 선택합니다.

1. **함수 생성** 페이지에서 다음을 수행합니다.

   1. **서버리스 앱 리포지토리 찾아보기**, **퍼블릭 애플리케이션**, **사용자 지정 IAM 역할 또는 리소스 정책을 생성하는 앱 표시**를 선택합니다.

   1. `fork-event-search-analytics-pipeline`을 검색하여 이 애플리케이션을 선택합니다.

1. **fork-event-search-analytics-pipeline** 페이지에서 다음을 수행합니다.

   1. **Application settings(애플리케이션 설정)** 섹션에서 **애플리케이션 이름**을 입력합니다(예: `my-app-search`).
**참고**  
각 배포에서 애플리케이션 이름이 고유해야 합니다. 애플리케이션 이름을 재사용하면 배포는 (새 스택을 생성하는 대신) 이전에 배포된 CloudFormation 스택만 업데이트합니다.

   1. (선택 사항) **DataTransformationFunctionArn**에 수신 이벤트를 변환하는 데 사용할 Lambda 함수의 ARN을 입력합니다. 값을 입력하지 않을 경우 데이터 변환이 비활성화됩니다.

   1. (선택 사항) 애플리케이션의 Lambda 함수 실행을 위해 다음 **LogLevel** 설정 중 하나를 입력합니다.
      + `DEBUG`
      + `ERROR`
      + `INFO`(기본값)
      + `WARNING`

   1. (선택 사항) **SearchDomainArn**에 필요한 컴퓨팅 및 스토리지 기능을 구성하는 클러스터인 OpenSearch Service 도메인의 ARN을 입력합니다. 값을 입력하지 않을 경우 기본 구성으로 새 도메인이 생성됩니다.

   1. **TopicArn**에 이 포크 파이프라인 인스턴스가 구독할 Amazon SNS 주제의 ARN을 입력합니다.

   1. **SearchIndexName**에 이벤트 검색 및 분석용 OpenSearch Service 인덱스의 이름을 입력합니다.
**참고**  
다음 할당량이 인덱스 이름에 적용됩니다.  
대문자를 포함할 수 없음
다음 문자를 포함할 수 없음: `\ / * ? " < > | ` , #`
다음 문자로 시작할 수 없음: `- + _`
다음과 같을 수 없음: `. ..`
80자를 초과할 수 없음
255바이트를 초과할 수 없음
콜론을 포함할 수 없음(OpenSearch Service 7.0 이후)

   1. (선택 사항) OpenSearch Service 인덱스 순환 기간에 대해 다음 **SearchIndexRotationPeriod** 설정 중 하나를 입력합니다.
      + `NoRotation`(기본값)
      + `OneDay`
      + `OneHour`
      + `OneMonth`
      + `OneWeek`

      인덱스 교체는 오래된 데이터를 만료시킬 수 있도록 인덱스 이름에 타임스탬프를 추가합니다.

   1. **SearchTypeName**에 인덱스에서 이벤트를 구성하는 데 사용할 OpenSearch Service 유형의 이름을 입력합니다.
**참고**  
OpenSearch Service 유형 이름은 null 바이트를 제외한 모든 문자를 포함할 수 있으나 `_`로 시작할 수는 없습니다.
OpenSearch Service 6.x의 경우 인덱스당 한 유형만 가능합니다. 다른 유형을 보유한 기존 인덱스에 새 유형을 지정하면 Firehose가 런타임 오류를 반환합니다.

   1. (선택 사항) **StreamBufferingIntervalInSeconds** 및 **StreamBufferingSizeInMBs**에 수신 이벤트 버퍼링을 구성하기 위한 값을 입력합니다. 값을 입력하지 않을 경우 300초 및 5MB가 사용됩니다.

   1. (선택 사항) 수신 이벤트를 압축하기 위한 다음 **StreamCompressionFormat** 설정 중 하나를 입력합니다.
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED`(기본값)
      + `ZIP`

   1. (선택 사항) **StreamPrefix**에 Amazon S3 배달 못한 편지 버킷에 저장된 파일을 명명할 문자열 접두사를 입력합니다. 값을 입력하지 않을 경우 접두사가 사용되지 않습니다.

   1. (선택 사항) **StreamRetryDurationInSecons**에 Firehose가 OpenSearch Service 인덱스에서 이벤트를 인덱싱할 수 없을 경우 재시도 지속 시간을 입력합니다. 값을 입력하지 않을 경우 300초가 사용됩니다.

   1. (선택 사항) **SubscriptionFilterPolicy**에 수신 이벤트를 필터링하는 데 사용할 Amazon SNS 구독 필터 정책을 JSON 형식으로 입력합니다. 이 필터 정책은 OpenSearch Service 인덱스에 인덱싱할 이벤트를 결정합니다. 값을 입력하지 않을 경우 필터링이 사용되지 않습니다(모든 이벤트가 인덱싱됨).

   1. **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications.(본인은 이 앱이 사용자 지정 IAM 역할, 리소스 정책을 생성하고 중첩 애플리케이션을 배포함을 확인합니다.)**를 선택하고 **배포**를 선택합니다.

**Deployment status for *my-app-search*(my-app-search 배포 상태)** 페이지에서 Lambda가 **Your application is being deployed(애플리케이션을 배포 중)** 상태를 표시합니다.

**리소스** 섹션에서는 스택 생성을 CloudFormation 시작하고 각 리소스에 대한 **CREATE\$1IN\$1PROGRESS** 상태를 표시합니다. 프로세스가 완료되면 **CREATE\$1COMPLETE** 상태가 CloudFormation 표시됩니다.

배포가 완료되면 Lambda가 **Your application has been deployed(애플리케이션이 배포됨)** 상태를 표시합니다.

Amazon SNS 주제에 게시되는 메시지는 이벤트 검색 및 분석 파이프라인에 의해 프로비저닝되는 OpenSearch Service 인덱스에 자동으로 인덱싱됩니다. 파이프라인이 이벤트를 인덱싱할 수 없을 경우 해당 이벤트가 Amazon S3 배달 못한 편지 버킷에 저장됩니다.

# Amazon SNS와 통합하여 이벤트 재전송 파이프라인 배포
<a name="deploy-event-replay-pipeline"></a>

이 페이지에서는 [이벤트 다시 보기 파이프라인](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline)을 배포하여 Amazon SNS 주제를 구독 설정하는 방법을 보여줍니다. 이 프로세스는 파이프라인과 연결된 AWS SAM 템플릿을 자동으로 CloudFormation 스택으로 변환한 다음 스택을에 배포합니다 AWS 계정. 또한 이 프로세스는 Amazon SQS 대기열 및 Lambda 함수 등 이벤트 다시 보기 파이프라인을 구성하는 리소스 세트를 생성하고 구성합니다.

이벤트 필터링에 대한 자세한 정보는 이 설명서의 [Amazon SNS 구독 필터 정책](sns-subscription-filter-policies.md)에서 확인하세요.

1. [AWS Lambda 콘솔](https://console.aws.amazon.com/lambda/)에 로그인합니다.

1. 탐색 창에서 **함수**를 선택한 후 **함수 생성**을 선택합니다.

1. **함수 생성** 페이지에서 다음을 수행합니다.

   1. **서버리스 앱 리포지토리 찾아보기**, **퍼블릭 애플리케이션**, **사용자 지정 IAM 역할 또는 리소스 정책을 생성하는 앱 표시**를 선택합니다.

   1. `fork-event-replay-pipeline`을 검색하여 이 애플리케이션을 선택합니다.

1. **fork-event-replay-pipeline** 페이지에서 다음을 수행합니다.

   1. **Application settings(애플리케이션 설정)** 섹션에서 **애플리케이션 이름**을 입력합니다(예: `my-app-replay`).
**참고**  
각 배포에서 애플리케이션 이름이 고유해야 합니다. 애플리케이션 이름을 재사용하면 배포는 (새 스택을 생성하는 대신) 이전에 배포된 CloudFormation 스택만 업데이트합니다.

   1. (선택 사항) 애플리케이션의 Lambda 함수 실행을 위해 다음 **LogLevel** 설정 중 하나를 입력합니다.
      + `DEBUG`
      + `ERROR`
      + `INFO`(기본값)
      + `WARNING`

   1. (선택 사항) **ReplayQueueRetentionPeriodInSeconds**에 Amazon SQS 다시 보기 대기열이 메시지를 유지하는 시간을 초 단위로 입력합니다. 값을 입력하지 않을 경우 1,209,600초(14일)가 사용됩니다.

   1. **TopicArn**에 이 포크 파이프라인 인스턴스가 구독할 Amazon SNS 주제의 ARN을 입력합니다.

   1. **DestinationQueueName**에 Lambda 다시 보기 함수가 메시지를 전달할 Amazon SQS 대기열의 이름을 입력합니다.

   1. (선택 사항) **SubscriptionFilterPolicy**에 수신 이벤트를 필터링하는 데 사용할 Amazon SNS 구독 필터 정책을 JSON 형식으로 입력합니다. 이 필터 정책은 다시 보기를 위해 버퍼링할 이벤트를 결정합니다. 값을 입력하지 않을 경우 필터링이 사용되지 않습니다(모든 이벤트가 버퍼링됨).

   1. **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications.(본인은 이 앱이 사용자 지정 IAM 역할, 리소스 정책을 생성하고 중첩 애플리케이션을 배포함을 확인합니다.)**를 선택하고 **배포**를 선택합니다.

**Deployment status for *my-app-replay*(my-app-replay 배포 상태)** 페이지에서 Lambda가 **Your application is being deployed(애플리케이션을 배포 중)** 상태를 표시합니다.

**리소스** 섹션에서는 스택 생성을 CloudFormation 시작하고 각 리소스에 대한 **CREATE\$1IN\$1PROGRESS** 상태를 표시합니다. 프로세스가 완료되면 **CREATE\$1COMPLETE** 상태가 CloudFormation 표시됩니다.

배포가 완료되면 Lambda가 **Your application has been deployed(애플리케이션이 배포됨)** 상태를 표시합니다.

Amazon SNS 주제에 게시되는 메시지는 이벤트 다시 보기 파이프라인에 의해 프로비저닝되는 Amazon SQS 대기열에서 다시 보기를 위해 자동으로 버퍼링됩니다.

**참고**  
기본적으로 다시 보기는 비활성화됩니다. 다시 보기를 활성화하려면 Lambda 콘솔에서 해당 함수의 페이지로 이동하여 **Designer(디자이너)** 섹션을 확장하고, **SQS** 타일을 선택한 다음, **SQS** 섹션에서 **활성**을 선택합니다.