이벤트 알림 유형 및 대상
Amazon S3는 알림을 게시할 수 있는 여러 이벤트 알림 유형 및 대상을 지원합니다. 이벤트 알림을 구성할 때 이벤트 유형 및 대상을 지정할 수 있습니다. 각 이벤트 알림에는 대상을 하나만 지정할 수 있습니다. Amazon S3 이벤트 알림은 각 알림 메시지에 대해 하나의 이벤트 항목을 전송합니다.
지원되는 이벤트 대상
Amazon S3은 다음과 같은 대상으로 이벤트 알림 메시지를 보낼 수 있습니다.
-
Amazon Simple Notification Service(Amazon SNS) 주제
-
Amazon Simple Queue Service(Amazon SQS) 대기열
-
AWS Lambda
-
Amazon EventBridge
그러나 각 이벤트 알림에는 대상 유형을 하나만 지정할 수 있습니다.
참고
Amazon SNS 주제 또는 Amazon SQS 대기열에 메시지를 게시할 수 있는 권한을 Amazon S3에 부여해야 합니다. 또한, 사용자를 대신하여 AWS Lambda 함수를 호출할 수 있는 권한을 Amazon S3에 부여해야 합니다. 이러한 권한을 부여하는 방법에 대한 지침은 대상에 이벤트 알림 메시지를 게시할 권한 부여 섹션을 참조하십시오.
Amazon SNS 주제
Amazon SNS는 유연한 완전 관리형 푸시 메시징 서비스입니다. 이 서비스를 사용하여 모바일 디바이스 또는 분산 서비스로 메시지를 푸시할 수 있습니다. SNS를 사용해 메시지를 한 번 게시하고 한 번 이상 전송할 수 있습니다. 현재 표준 SNS는 S3 이벤트 알림 대상으로만 허용되지만 SNS FIFO는 허용되지 않습니다.
Amazon SNS는 구독 엔드포인트 또는 클라이언트로의 메시지 전송 및 전달을 조정하고 관리합니다. Amazon SNS 콘솔을 사용하여 알림을 수신할 Amazon SNS 주제를 만들 수 있습니다.
주제는 Amazon S3 버킷과 동일한 AWS 리전에 있어야 합니다. Amazon SNS 주제를 생성하는 방법에 대한 지침은 Amazon Simple Notification Service 개발자 안내서의 Amazon SNS 시작하기와 Amazon SNS FAQ
이벤트 알림 대상으로 생성한 Amazon SNS 주제를 사용하려면 다음 항목이 필요합니다.
-
Amazon SNS 주제에 대한 Amazon 리소스 이름(ARN)
-
유효한 Amazon SNS 주제 구독입니다. 이를 통해 Amazon SNS 주제에 메시지가 게시되면 해당 주제 구독자에게 알림이 전송됩니다.
Amazon SQS 대기열
Amazon SQS는 컴퓨터 간에 주고 받는 메시지를 저장하기 위한 안정적이고 확장성이 뛰어난 호스팅 대기열을 제공합니다. Amazon SQS를 사용하면 다른 서비스를 항상 가용 상태로 유지하지 않고도 모든 데이터 볼륨을 전송할 수 있습니다. Amazon SQS 콘솔을 사용하여 알림을 수신할 Amazon SQS 대기열을 만들 수 있습니다.
Amazon SQS 대기열은 Amazon S3 버킷과 동일한 AWS 리전에 있어야 합니다. Amazon SQS 대기열을 생성하는 방법에 대한 지침은 Amazon Simple Queue Service 개발자 안내서의 Amazon Simple Queue Service란? 및 Amazon SQS 시작하기를 참조하십시오.
이벤트 알림 대상으로 만든 Amazon SQS 대기열 사용하려면 다음 항목이 필요합니다.
-
Amazon SQS 대기열에 대한 Amazon 리소스 이름(ARN)
참고
Amazon Simple Queue Service FIFO(선입선출) 대기열은 Amazon S3 이벤트 알림 대상으로 지원되지 않습니다. Amazon S3 이벤트에 대한 알림을 Amazon SQS FIFO 대기열로 보내려면 Amazon EventBridge를 사용하면 됩니다. 자세한 내용은 Amazon EventBridge 사용 설정 단원을 참조하십시오.
Lambda 함수
AWS Lambda을 사용하여 사용자 지정 로직으로 다른 AWS 서비스를 확장하거나 AWS 규모와 성능, 보안에 따라 작동하는 자체 백엔드를 만들 수 있습니다. Lambda를 사용하면 필요할 때만 실행되는 개별 이벤트 중심 애플리케이션을 생성할 수 있습니다. 또한 이를 통해 하루에 몇 번의 요청에서 초당 수천 개의 요청으로 이러한 애플리케이션을 자동으로 확장할 수 있습니다.
Lambda는 Amazon S3 버킷 이벤트에 대한 응답으로 사용자 지정 코드를 실행할 수 있습니다. 사용자 정의 코드를 Lambda에 업로드하여 Lambda 함수라는 것을 생성합니다. Amazon S3가 특정 유형의 이벤트를 감지하면 AWS Lambda에 이벤트를 게시하고 Lambda에서 함수를 호출할 수 있습니다. 이에 대한 응답으로 Lambda는 함수를 실행합니다. 예를 들어 이러한 애플리케이션에서 탐지할 수 있는 이벤트 유형 중 하나는 객체 생성 이벤트입니다.
AWS Lambda 콘솔에서 AWS 인프라를 사용하여 사용자 대신해 코드를 실행하는 Lambda 함수를 생성할 수 있습니다. Lambda 함수는 S3 버킷과 동일한 리전에 있어야 합니다. Lambda 함수를 이벤트 알림 대상으로 설정하려면 Lambda 함수의 이름이나 ARN도 있어야 합니다.
주의
알림을 트리거하는 동일한 버킷에 알림이 기록되면 실행 루프가 발생할 수 있습니다. 예를 들어 객체가 업로드될 때마다 버킷이 Lambda 함수를 트리거하고 그 함수가 객체를 버킷에 업로드하는 경우, 함수는 간접적으로 자체 트리거됩니다 이렇게 되지 않도록 하려면 두 개의 버킷을 사용하거나, 수신 객체에 사용되는 접두사에만 적용되도록 트리거를 구성합니다.
AWS Lambda에서 Amazon S3 알림을 사용하는 방법에 대한 자세한 내용과 예제는 AWS Lambda 개발자 안내서의 Amazon S3에서 AWS Lambda 사용을 참조하십시오.
Amazon EventBridge
Amazon EventBridge는 AWS 서비스로부터 이벤트를 수신하는 서버리스 이벤트 버스입니다. 이벤트를 일치시키고 AWS 서비스 또는 HTTP 엔드포인트와 같은 대상에 전달하도록 규칙을 설정할 수 있습니다. 자세한 내용은 Amazon EventBridge 사용 설명서의 EventBridge란?을 참조하세요.
다른 대상과 달리 버킷에 대해 EventBridge로 이벤트 전송을 사용 설정하거나 사용 중지할 수 있습니다. 전송을 사용 설정하면 모든 이벤트가 EventBridge로 전송됩니다. 또한 EventBridge 규칙을 사용하여 이벤트를 추가 대상으로 라우팅할 수 있습니다.
SQS, SNS 및 Lambda에 지원되는 이벤트 유형
Amazon S3은 다음과 같은 유형의 이벤트를 게시할 수 있습니다. 알림 구성에 이러한 이벤트 유형을 지정합니다.
이벤트 유형 | 설명 |
---|---|
|
알림이 사용 설정되면 Amazon S3는 테스트 알림을 게시합니다. 이는 주제가 존재하고 버킷 소유자에게 지정된 주제를 게시할 권한이 있는지 확인하기 위한 것입니다. 알림 사용 설정가 실패하면 테스트 알림이 수신되지 않습니다. |
|
|
|
이러한 이벤트 알림은 수명 주기 구성 또는 실패한 작업의 자동 삭제에 대해 경고하지 않습니다. |
|
|
s3:ReducedRedundancyLostObject |
Amazon S3가 RRS 스토리지 클래스의 객체가 손실되었음을 감지하면 이 알림 이벤트를 수신합니다. |
|
|
|
|
s3:LifecycleTransition |
S3 수명 주기 구성에 의해 객체가 다른 Amazon S3 스토리지 클래스로 전환될 때 이 알림 이벤트를 수신합니다. |
s3:IntelligentTiering |
S3 Intelligent-Tiering 스토리지 클래스 내의 객체가 Archive Access 계층 또는 Deep Archive Access 계층으로 이동할 때 이 알림 이벤트를 수신합니다. |
|
|
s3:ObjectAcl:Put |
ACL이 객체에 PUT되거나 기존 ACL이 변경될 때 이 알림 이벤트를 수신합니다. 요청으로 인해 객체의 ACL이 변경되지 않으면 이벤트가 생성되지 않습니다. |
Amazon EventBridge에 지원되는 이벤트 유형
Amazon S3가 Amazon EventBridge로 전송할 이벤트 유형 목록은 EventBridge 사용 섹션을 참조하십시오.
이벤트 주문 및 중복 이벤트
Amazon S3 이벤트 알림은 알림을 한 번 이상 전송하도록 설계되었지만 이벤트가 발생한 순서대로 도착하지 않을 수 있습니다. 드문 경우이긴 하지만 Amazon S3의 재시도 메커니즘으로 인해 동일한 객체 이벤트에 대해 중복된 S3 이벤트 알림이 발생할 수 있습니다. 중복 또는 비순차적 이벤트의 처리에 대한 자세한 내용은 AWS 스토리지 블로그의 Amazon S3 이벤트 알림을 사용하여 이벤트 주문 및 중복 이벤트 관리