Which combination of steps will meet these requirements MOST cost-effectively?
(Choose two.)
Use m5.8xlarge instances instead of t2.micro instances for the web-crawling process. Reduce the number of instances in the fleet by 50%.
Convert the web-crawling process into an AWS Lambda function. Configure the Lambda function to pull URLs from the SQS queue.
Modify the web-crawling process to store results in Amazon Neptune.
Modify the web-crawling process to store results in an Amazon Aurora Serverless MySQL instance.
Modify the web-crawling process to store results in Amazon S3.
Explanations:
Switching to m5.8xlarge instances increases costs significantly as these instances are more expensive than t2.micro instances. Reducing the number of instances does not solve the idleness problem, as they would still be underutilized when there are no URLs to process.
Converting the web-crawling process into an AWS Lambda function optimizes costs as it allows for a serverless architecture that scales automatically based on demand. Lambda only charges for the compute time used while processing URLs, eliminating idle time costs associated with EC2 instances.
Using Amazon Neptune for storing results is not suitable since it is a graph database and not designed for storing CSV files or similar data. Additionally, it introduces complexity and does not directly address the cost optimization requirement.
Storing results in an Amazon Aurora Serverless MySQL instance could optimize costs if traffic varies, but it still incurs costs associated with a database service. It is also unnecessary for simple file storage needs and adds complexity to the architecture.
Storing results in Amazon S3 is a cost-effective solution since S3 is designed for storing large amounts of data at low costs. It allows for easy access, scalability, and eliminates the need for managing an EFS volume, reducing costs further.