Which solution will meet these requirements with the MOST operational efficiency?
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.
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.
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.
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.
Explanations:
Using a cron job with an EC2 instance adds operational overhead, as it requires managing the instance, ensuring it runs correctly, and dealing with potential scaling issues. This solution is less efficient than using serverless architecture.
Similar to option A, using a cron job on an EC2 instance introduces unnecessary operational complexity. Additionally, SQS is not the best fit for sending immediate email notifications, as it is designed for message queuing rather than direct notifications.
This option uses an AWS Lambda function, which is serverless and can scale automatically, providing high operational efficiency. Scheduling the function to run daily allows for direct interaction with DynamoDB and SNS to send emails without the overhead of managing servers.
Although it uses Lambda, which is efficient, using SQS to send emails is not optimal for this use case. SQS is meant for message queuing, and the solution does not provide the immediate delivery of emails as required for work anniversaries.