EventNotifications
1 Amazon S3 Event Notifications
- Amazon S3 Event Notifications는 S3 버킷에서 발생하는 이벤트(예: 객체 생성, 삭제 등)에 대한 알림을 설정할 수 있는 기능입니다.
- 이를 통해 S3 버킷의 변경 사항을 실시간으로 감지하고, 다양한 AWS 서비스(SNS, SQS, Lambda)와 통합하여 자동화된 워크플로우를 구현할 수 있습니다.
- S3 Event Notifications는 다양한 이벤트를 감지할 수 있습니다.
- S3:ObjectCreated, S3:ObjectRemoved, S3:ObjectRestore, S3:Replication
- 객체 이름 필터링이 가능하여, 예를 들어 "jpg" 파일에 대해서만 이벤트를 트리거할 수 있습니다.
- 이 기능은 S3에 업로드된 이미지의 썸네일을 생성하는 등의 용도로 사용될 수 있습니다.
- 원하는 만큼 많은 S3 이벤트를 생성할 수 있습니다.
- S3 이벤트 알림은 일반적으로 몇 초 내에 이벤트를 전달하지만, 때때로 1분 이상 걸릴 수 있습니다.
1.1 주요 기능
- 실시간 알림: 객체가 S3 버킷에 업로드되거나 삭제될 때, 이를 즉시 감지하여 알림을 보냅니다.
- 다양한 통합 옵션: S3 이벤트를 SNS 주제, SQS 대기열, 또는 Lambda 함수로 전달할 수 있습니다.
- 자동화된 워크플로우: 이벤트 기반의 자동화된 작업을 설정하여 운영 효율성을 높일 수 있습니다.
2 S3 Event Notifications 설정
- S3 Event Notifications를 설정하려면 먼저 이벤트를 수신할 SNS 주제, SQS 대기열, 또는 Lambda 함수를 준비해야 합니다.
- 그런 다음 S3 버킷에 알림 설정을 추가합니다.
2.1 SNS 토픽과 통합
- SNS 토픽에 S3에서 메시지를 게시할 수 있는 권한을 부여하려면 다음과 같은 리소스 정책을 설정해야 합니다.
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "SNS:Publish",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Resource": "arn:aws:sns:us-east-1:123456789012:MyTopic",
"Condition": {
"ArnLike": {
"aws:SourceArn": "arn:aws:s3:::MyBucket"
}
}
}
}
- Effect: 허용할 작업을 정의합니다.
- Action:
SNS:Publish– S3가 SNS 주제에 메시지를 게시할 수 있도록 허용합니다. - Principal:
s3.amazonaws.com서비스가 작업을 수행할 수 있도록 지정합니다. - Resource: SNS 주제의 ARN을 지정합니다.
- Condition: 작업이 지정된 S3 버킷에서만 수행되도록 조건을 설정합니다.
2.2 SQS 대기열과 통합
- SQS 대기열에 S3에서 메시지를 보낼 수 있는 권한을 부여하려면 다음과 같은 리소스 정책을 설정해야 합니다.
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "SQS:SendMessage",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Resource": "arn:aws:sqs:us-east-1:123456789012:MyQueue",
"Condition": {
"ArnLike": {
"aws:SourceArn": "arn:aws:s3:::MyBucket"
}
}
}
}
- Effect: 허용할 작업을 정의합니다.
- Action:
SQS:SendMessage– S3가 SQS 대기열에 메시지를 보낼 수 있도록 허용합니다. - Principal:
s3.amazonaws.com서비스가 작업을 수행할 수 있도록 지정합니다. - Resource: SQS 대기열의 ARN을 지정합니다.
- Condition: 작업이 지정된 S3 버킷에서만 수행되도록 조건을 설정합니다.