How to Send DynamoDB Work-Anniversary Emails with Least Operational Effort?

SAA-C03 By islever Editorial Last updated

Short answer

C Schedule a daily AWS Lambda function that scans the DynamoDB table and publishes anniversary emails to employees through Amazon SNS.

Question

A company has 15 employees. The company stores employee start dates in an Amazon DynamoDB table. The company wants to send an email message to each employee on the day of the employee's work anniversary. Which solution will meet these requirements with the MOST operational efficiency?
  1. Create a script that scans the DynamoDB table and uses Amazon Simple Notification Service (Amazon SNS) to send email messages to employees when necessary. Use a cron job to run this script every day on an Amazon EC2 instance.
  2. Create a script that scans the DynamoDB table and uses Amazon Simple Queue Service (Amazon SQS) to send email messages to employees when necessary. Use a cron job to run this script every day on an Amazon EC2 instance.
  3. Create an AWS Lambda function that scans the DynamoDB table and uses Amazon Simple Notification Service (Amazon SNS) to send email messages to employees when necessary. Schedule this Lambda function to run every day. Correct Answer
  4. Create an AWS Lambda function that scans the DynamoDB table and uses Amazon Simple Queue Service (Amazon SQS) to send email messages to employees when necessary. Schedule this Lambda function to run every day.

Key Takeaways

This question tests two distinctions at once: serverless scheduled compute (Lambda) versus an always-on EC2 cron instance, and email delivery via SNS (a push pub/sub service) versus SQS (a queue that cannot send email at all).

A 15-employee company stores start dates in DynamoDB and needs automated anniversary emails with the MOST operational efficiency. The correct design is a daily scheduled AWS Lambda function that scans the table and publishes messages to Amazon SNS, which delivers the email — no servers, cron jobs, or queues to manage.

Common mistake: Choosing option D because Lambda sounds serverless and operationally efficient, while missing that Amazon SQS is a message queue with no native email delivery — a consumer would still be needed to actually send the message, so it cannot meet the requirement.

Expert Analysis

Why the Answer Is Correct

Option C combines the two services that each requirement demands: AWS Lambda provides the scheduled, serverless compute that scans the small DynamoDB table, and Amazon Simple Notification Service (SNS) natively delivers email to each employee through an email subscription on a topic. Scheduling the function to run once a day means no EC2 instance to patch, monitor, or pay for around the clock, which directly satisfies the "MOST operational efficiency" constraint. With only 15 employees, a daily Scan is trivially cheap and fast, so no index or query redesign is needed — the value here is entirely in eliminating operational overhead. Because SNS is a managed pub/sub service, the company simply adds employee email addresses as subscribers and the anniversary logic stays in the Lambda function.

Why the Other Options Are Wrong

Options A and B both rely on a cron job on an Amazon EC2 instance, which reintroduces the exact overhead the question is trying to avoid — patching, monitoring the script, and paying for an always-on instance for a job that runs once a day. Option B has an additional fatal flaw: Amazon SQS is a queue, not a notification service, so it cannot send email messages to employees at all without a separate consumer. Option D fixes the compute problem by using Lambda but keeps SQS for delivery, which again means the service only buffers the message; nothing in the design actually emails the employees. As one commenter put it, using a script on EC2 "will add maintenance on both the EC2 and the script".

Community Comment Notes

All 100 recorded votes landed on C, and the reasoning in the comments matches the exam logic. KennethNg923 reasoned that the script would have to be run every time and that sending email requires SNS, so the answer should be C. Scheldon noted that deploying a full instance is "overkill" and that Lambda plus SNS is enough and quite cheap for this scale. Mikado211 spelled out the architecture precisely — Lambda scans the table and publishes to an SNS topic — and added that cron jobs are not reliable and are hard to monitor properly. Another commenter, Erfan, agreed with the Lambda-plus-SNS design.

Official Reference

Exam Strategy

When a question says "MOST operational efficiency," eliminate every option that requires you to manage a server, patch a script, or keep an instance running for an infrequent job — that points to Lambda plus a managed schedule. Then verify the delivery service actually performs the requested action: SNS pushes notifications (including email), while SQS only stores messages until a consumer retrieves them.

Frequently Asked Questions

Why can't Amazon SQS deliver the anniversary emails directly?

SQS is a message queue, not a notification service. Messages sit there until a consumer polls and processes them, so options B and D would still need extra code to actually send an email.

Is a full DynamoDB Scan acceptable for only 15 employees?

Yes. A Scan reads the whole table, but with 15 items it is fast and inexpensive; a Query on an indexed start-date attribute would only matter at much larger scale.

More SAA-C03 FAQ →

Community Votes

C
100%

100% of anonymous learners picked answer C. Votes are pick records left by other test-takers — they are not the verified answer.

Discussion 3 contributions

Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.

From public community threads 3

  1. Mikado211 👍 3 Answered C
    SNS for sending mails Lambda to scan the database + send the message to the SNS topic. Using a script on a EC2 will add maintenance on both the EC2 and the script + cronjobs are not reliable and can be hard to monitor properly. SO answer C !
  2. Scheldon 👍 3 Answered C
    AnswerC Deploying full instance is an overkill. Lambda should be enough + SNS to sent email. And it should be quite cheap
  3. KennethNg923 👍 3 Answered C
    Operational efficiency, script need to be run every time, and send email need to use SNS, so it should be C

Reader comments & corrections

No reader corrections yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Practice All SAA-C03 Questions

Access 120 questions with complete answers and detailed explanations.

View Full SAA-C03 Practice Test →

← Back to SAA-C03 Study Guide