S3 to SNS: Real-time upload notifications
Why bother writing a Lambda function just to send an email when SNS can do it natively? I've been looking into serverless notification patterns, and for a simple backup alert system, wiring S3 directly to SNS is the most efficient way to get instant visibility into cloud storage without managing any code.

Create your bucket (e.g.,
Go to SNS → Topics → Create topic and select Standard. S3 event notifications don't support FIFO topics, so stick with Standard. Once the topic is created, you can add subscriptions for email, SMS, or webhooks.
Next
Understanding Transformers: A Visual Deep Dive →
SNS vs Lambda: Which to use?
I was debating between these two for a project, but the trade-offs are pretty clear:
- Code requirements: SNS is zero-code; Lambda requires writing and maintaining a function.
- Fan-out: SNS has built-in pub-sub to hit multiple recipients; Lambda requires manual integration with SES or other services.
- Ideal Use-case: SNS is for when the notification is the action; Lambda is for when the event needs to trigger complex business logic.
- Setup Speed: SNS takes about 15 minutes; Lambda usually takes 30-60.

For basic backup confirmations, SNS is the obvious choice.
The Architecture Flow
Client (upload) → S3 Bucket (s3:ObjectCreated event) → SNS Topic (publish) → Subscribers (Email/SMS/SQS/HTTP)
The moment an object hits the bucket, S3 triggers the event, and SNS fans it out to everyone subscribed.
Step-by-Step Deployment
1. Configure the S3 Bucket
Create your bucket (e.g.,
yourname-file-backups) and ensure it's in the same region as your other resources. Crucial Tip: Enable Bucket Versioning. In a backup scenario, if you accidentally overwrite a file, versioning is the only thing saving your data. Also, keep "Block all public access" on—backups shouldn't be open to the world.
If you're worried about costs, I'd suggest setting up Lifecycle rules under the Management tab:
- Move to S3 Standard-IA after 30 days.
- Move to S3 Glacier Flexible Retrieval after 90 days.
2. Set up the SNS Topic
Go to SNS → Topics → Create topic and select Standard. S3 event notifications don't support FIFO topics, so stick with Standard. Once the topic is created, you can add subscriptions for email, SMS, or webhooks.
This setup is a great starting point for any AI workflow or data ingestion pipeline where you need to know exactly when new data arrives for processing.
All Replies (3)
C
ChrisPunk
Novice
12h ago
Works, but check your filter policies so you don't get spammed by every single file.
0
S
Does this scale well if you're hitting thousands of uploads a minute, or does it throttle?
0
C
did this for some logs last month, saved me a ton of boilerplate code.
0
