S3 are more complicated than just for storing data.
S3 buckets have configurations that need to be terraformed such as sqs queues that listen to bucket writes.
Changing this config manually results in untracked changes that affects production jobs that listen to s3 buckets
For example, we can configure an S3 bucket to have notifications based on multiple rules coming from multiple types: SNS and Lambda
- SNS is pub/sub. When S3 fires a notification to an SNS topic, multiple subscribers to that topic receive the event sumultaneouly.
- Lambda function. When S3 fires a notification it directly triggers a Lambda function, there is no pub/sub or fan out. One to one trigger.
SNS is good for cross account access since multiple accounts can subscribe to a single sns topic
