A company uses a three-tier web application to provide training to new employees. The application is accessed for only 12 hours every day. The company is using an Amazon RDS for MySQL DB instance to store information and wants to minimize costs.
What should a solutions architect do to meet these requirements?
A. Configure an IAM policy for AWS Systems Manager Session Manager. Create an IAM role for the policy. Update the trust relationship of the role. Set up automatic start and stop for the DB instance.
B. Create an Amazon ElastiCache for Redis cache cluster that gives users the ability to access the data from the cache when the DB instance is stopped. Invalidate the cache after the DB instance is started.
C. Launch an Amazon EC2 instance. Create an IAM role that grants access to Amazon RDS. Attach the role to the EC2 instance. Configure a cron job to start and stop the EC2 instance on the desired schedule.
D. Create AWS Lambda functions to start and stop the DB instance. Create Amazon EventBridge (Amazon CloudWatch Events) scheduled rules to invoke the Lambda functions. Configure the Lambda functions as event targets for the rules.
The best option to meet these requirements is Option D.
Creating AWS Lambda functions to start and stop the DB instance, and using Amazon EventBridge (Amazon CloudWatch Events) scheduled rules to invoke the Lambda functions, allows you to automate the process of starting and stopping the DB instance according to the company’s operational hours. This can significantly reduce costs as you’re only paying for the DB instance when it’s in use. Configuring the Lambda functions as event targets for the rules ensures that the start and stop operations are performed reliably.
The other options are not as cost-effective or efficient for this specific use case. For example, Option A involves using AWS Systems Manager Session Manager, which is not necessary for this scenario. Option B suggests using Amazon ElastiCache for Redis, which would add additional costs and complexity. Option C suggests using an EC2 instance to control the RDS instance, which is less efficient and could lead to higher costs compared to using Lambda functions.