Answers: A and C
SNS is extremely useful for the fan-out types of applications, i.e., multiple clients that push messages to an SNS topic & multiple listeners can be notified when a message arrives at the Topic.
Option A is CORRECT. SNS messages can be sent to registered addresses as Email (text-based or Object) who act as subscribers to the notification
Option B is incorrect. S3 acts as a publisher of SNS notifications. When a file is uploaded to S3, it can publish an event that can then be subscribed to & acted upon
Option C is CORRECT. A lambda function can subscribe to an SNS Topic and can act on any events that are published to that Topic. An S3 PUT or CREATE event for uploading documents can have a Lambda subscriber that can pull out metadata information contained within the documents & store it in a Dynamo DB database.
Option D is incorrect. CloudWatch will act as a publisher of events using alarms. Getting back to our scenario, we can set CloudWatch alarms on the CPU utilization metrics of the EC2 instance. The alarms can then be published to an SNS Topic for notifying users.
Option E is incorrect. Dynamo DB streams are events that are emitted when record modifications occur on a Dynamo DB table like INSERT, UPDATE, etc. They are extremely useful to create informative dashboards in real-time. Dynamo DB streams can trigger a lambda function that can publish a message to an SNS Topic. So we can see here that Dynamo DB stream acts as a publisher of events.
References:
https://docs.aws.amazon.com/sns/latest/dg/welcome.html
https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html