Answer - A and C.
The SQS queue can be used to handle the sending and receiving of messages.
To reduce costs, you can use Lambda functions to process the messages.
The below is also given in the AWS Documentation.
Using AWS Lambda with Amazon SQS.
Attaching an Amazon SQS queue as an AWS Lambda event source is an easy way to process the queue's content using a Lambda function.
Lambda takes care of:
Automatically retrieving messages and directing them to the target Lambda function.
Deleting them once your Lambda function successfully completes.
Option B is incorrect since you should use SQS for the handling of messages.
SNS has no persistence.
Whichever consumer is present at the time of message arrival, get the message and the message is deleted.
If no consumers available, then the message is lost.
Option D is incorrect since this would not be a cost-effective option.