이벤트 알림 유형 및 대상 - Amazon Simple Storage Service

이벤트 알림 유형 및 대상

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은 다음과 같은 유형의 이벤트를 게시할 수 있습니다. 알림 구성에 이러한 이벤트 유형을 지정합니다.

이벤트 유형 설명

s3:TestEvent

알림이 사용 설정되면 Amazon S3는 테스트 알림을 게시합니다. 이는 주제가 존재하고 버킷 소유자에게 지정된 주제를 게시할 권한이 있는지 확인하기 위한 것입니다.

알림 사용 설정가 실패하면 테스트 알림이 수신되지 않습니다.

s3:ObjectCreated:*

s3:ObjectCreated:Put

s3:ObjectCreated:Post

s3:ObjectCreated:Copy

s3:ObjectCreated:CompleteMultipartUpload

PUT, POSTCOPY와 같은 Amazon S3 API 작업은 객체를 생성할 수 있습니다. 이 이벤트 유형을 사용하면 특정 API 작업을 사용하여 객체가 생성될 때 알림을 사용 설정할 수 있습니다. 또는 s3:ObjectCreated:* 이벤트 유형을 사용하여 객체를 생성하는 데 사용된 API와 관계없이 알림을 요청할 수 있습니다.

s3:ObjectCreated:CompleteMultipartUpload에는 복사 작업을 위해 UploadPartCopy를 사용하여 생성된 객체가 포함되어 있습니다.

s3:ObjectRemoved:*

s3:ObjectRemoved:Delete

s3:ObjectRemoved:DeleteMarkerCreated

ObjectRemoved 이벤트 유형을 사용하여 객체나 객체 그룹이 버킷에서 삭제될 경우 알림을 활성화할 수 있습니다.

s3:ObjectRemoved:Delete 이벤트 유형을 사용하여 객체가 삭제되거나 버전이 지정된 객체가 영구적으로 삭제될 경우 알림을 요청할 수 있습니다. 또한 s3:ObjectRemoved:DeleteMarkerCreated를 사용하여 버전이 지정된 객체에 대해 삭제 마커가 생성될 경우 알림을 요청할 수 있습니다. 버전이 지정된 객체를 삭제하는 방법에 대한 지침은 버전 관리가 사용 설정된 버킷에서 객체 버전 삭제 섹션을 참조하십시오. s3:ObjectRemoved:* 와일드카드를 사용하여 객체가 삭제되는 모든 경우에 알림을 요청할 수도 있습니다.

이러한 이벤트 알림은 수명 주기 구성 또는 실패한 작업의 자동 삭제에 대해 경고하지 않습니다.

s3:ObjectRestore:*

s3:ObjectRestore:Post

s3:ObjectRestore:Completed

s3:ObjectRestore:Delete

ObjectRestore 이벤트 유형을 사용하여 S3 Glacier Flexible Retrieval 스토리지 클래스, S3 Glacier Deep Archive 스토리지 클래스, S3 Intelligent Tiering Archive Access 계층, S3 Intelligent-Tiering Deep Archive Access 계층에서 객체를 복원할 때 이벤트 초기화 및 완료 알림을 받을 수 있습니다. 객체의 복원된 복사본이 만료될 때 알림을 받을 수도 있습니다.

s3:ObjectRestore:Post 이벤트 유형은 객체 복원 시작을 알립니다. s3:ObjectRestore:Completed 이벤트 유형은 복원 완료를 알립니다. s3:ObjectRestore:Delete 이벤트 유형은 복원된 객체의 임시 복사본이 만료될 때 알려줍니다.

s3:ReducedRedundancyLostObject Amazon S3가 RRS 스토리지 클래스의 객체가 손실되었음을 감지하면 이 알림 이벤트를 수신합니다.

s3:Replication:*

s3:Replication:OperationFailedReplication

s3:Replication:OperationMissedThreshold

s3:Replication:OperationReplicatedAfterThreshold

s3:Replication:OperationNotTracked

Replication 이벤트 유형을 사용하여 S3 복제 지표 또는 S3 Replication Time Control(S3 RTC)이 활성화된 복제 구성에 대해 알림을 받을 수 있습니다. 보류 중인 바이트, 보류 중인 작업, 복제 대기 시간을 추적하여 복제 이벤트의 진행률을 분 단위로 모니터링할 수 있습니다. 복제 지표에 대한 자세한 내용은 지표, 이벤트 알림 및 상태를 통한 복제 모니터링 단원을 참조하세요.

  • s3:Replication:OperationFailedReplication 이벤트 유형은 복제에 적합한 객체가 복제에 실패할 때 알려줍니다.

  • s3:Replication:OperationMissedThreshold 이벤트 유형은 S3 RTC를 사용하는 복제 대상 객체가 복제 임계값인 15분을 초과하면 알려줍니다.

  • s3:Replication:OperationReplicatedAfterThreshold 이벤트 유형은 S3 RTC를 사용하는 복제 대상 객체가 15분 임계값 이후에 복제되면 알려줍니다.

  • s3:Replication:OperationNotTracked 이벤트 유형은 라이브 복제 대상 객체(동일 리전 복제[SRR] 또는 교차 리전 복제[CRR])가 더 이상 복제 지표로 추적되지 않으면 알려줍니다.

s3:LifecycleExpiration:*

s3:LifecycleExpiration:Delete

s3:LifecycleExpiration:DeleteMarkerCreated

LifecycleExpiration 이벤트 유형을 사용하면 Amazon S3가 S3 수명 주기 구성에 따라 객체를 삭제할 때 알림을 받을 수 있습니다.

s3:LifecycleExpiration:Delete 이벤트 유형은 버전이 지정되지 않은 버킷의 객체가 삭제될 때 알려줍니다. S3 수명 주기 구성에 의해 객체 버전이 영구적으로 삭제될 때도 알려줍니다. s3:LifecycleExpiration:DeleteMarkerCreated 이벤트 유형은 버전이 지정된 버킷에 있는 객체의 현재 버전이 삭제되는 경우 S3 수명 주기가 삭제 마커를 생성할 때 알려줍니다.

s3:LifecycleTransition S3 수명 주기 구성에 의해 객체가 다른 Amazon S3 스토리지 클래스로 전환될 때 이 알림 이벤트를 수신합니다.
s3:IntelligentTiering S3 Intelligent-Tiering 스토리지 클래스 내의 객체가 Archive Access 계층 또는 Deep Archive Access 계층으로 이동할 때 이 알림 이벤트를 수신합니다.

s3:ObjectTagging:*

s3:ObjectTagging:Put

s3:ObjectTagging:Delete

ObjectTagging 이벤트 유형을 사용하면 객체 태그가 객체에서 추가 또는 삭제될 때 알림을 활성화할 수 있습니다.

s3:ObjectTagging:Put 이벤트 유형은 태그가 객체에 PUT되거나 기존 태그가 업데이트될 때 알려줍니다. s3:ObjectTagging:Delete 이벤트 유형은 객체에서 태그가 제거될 때 알려줍니다.

s3:ObjectAcl:Put ACL이 객체에 PUT되거나 기존 ACL이 변경될 때 이 알림 이벤트를 수신합니다. 요청으로 인해 객체의 ACL이 변경되지 않으면 이벤트가 생성되지 않습니다.

Amazon EventBridge에 지원되는 이벤트 유형

Amazon S3가 Amazon EventBridge로 전송할 이벤트 유형 목록은 EventBridge 사용 섹션을 참조하십시오.

이벤트 주문 및 중복 이벤트

Amazon S3 이벤트 알림은 알림을 한 번 이상 전송하도록 설계되었지만 이벤트가 발생한 순서대로 도착하지 않을 수 있습니다. 드문 경우이긴 하지만 Amazon S3의 재시도 메커니즘으로 인해 동일한 객체 이벤트에 대해 중복된 S3 이벤트 알림이 발생할 수 있습니다. 중복 또는 비순차적 이벤트의 처리에 대한 자세한 내용은 AWS 스토리지 블로그의 Amazon S3 이벤트 알림을 사용하여 이벤트 주문 및 중복 이벤트 관리를 참조하세요.