Home › Forums › AWS › AWS Certified Solutions Architect Professional › Doubt regarding one of the AWS Solution Architect Professional Practice question
-
Doubt regarding one of the AWS Solution Architect Professional Practice question
Carlo-TutorialsDojo updated 12 months ago 3 Members · 3 Posts -
Question: A retail company is planning to deploy its business analytics application on AWS to gather insights on customer behaviors and preferences. With a large amount of data that needs to be processed, the application requires 10,000 hours of computing time every month. Since this is for analytics, the company is flexible when it comes to the availability of compute resources and wants the solution to be as cost-effective as possible. Supplementing the analytics application, a reporting service needs to run continuously to distribute analytical reports.
Which of the following is a cost-effective solution that will satisfy the company’s requirements?
Correct ans: Deploy the analytics service on a fleet of Amazon EC2 Spot instances in an Auto Scaling group. Configure a custom metric to scale the Spot fleet to meet the needed capacity. Create a container for the reporting service and run it on Amazon ECS with AWS Fargate. With a flexible workload, you can save a lot of costs by using Spot Instances. AWS Fargate is suitable for running a container continuously. AWS Fargate will automatically replace the container if it becomes unhealthy.
One of the “incorrect” ans: Deploy the analytics service on AWS App Runner to reduce operational overhead. Configure Auto Scaling to the service to meet the needed capacity. Deploy the reporting service on an Amazon EC2 On-Demand instance is incorrect. AWS App Runner can be used to quickly deploy containerized web applications and APIs, at scale and with no prior infrastructure experience required. However, the reporting service needs to run continuously so it is not cost-effective to run it on an On-Demand instance.
My question: I searched in internet and found that if you need to run continuous workloads in ECS, it is better to use ECS + EC2 or simply EC2 rather than using ECS Fargate. Fargate is better suited for bursty workloads. If so, should not the supposed incorrect answer become a correct choice ?
If I am mistaken, please provide me guidance.
-
Keep in mind that the question is broken down into two apps:
Analytics: Can be run on spot instances since availability can be flexible
Reporting: Needs to run continuously (spot is not an option)
The incorrect App Runner answer for the analytics app you pasted does not talk about how to handle failover when the EC2 instance for the reporting application becomes unhealthy (again, needs to be running continuously so a HA/failover mechanism is needed). Fargate will automatically replace unhealthy containers, giving the reporting app HA.
Therefore the answer for running reporting on spot instances is incorrect because it needs to be running continuously.
The answer for running reporting on App Runner is incorrect because it says the Analytics app should run on on-demand instance, which is not the most cost-effective option.
EDIT: Replaced instances with containers in the context of Fargate.
- This reply was modified 12 months ago by ccatchings.
-
Hello Arghya,
Thanks for posting here.
Fargate is fully capable of managing continuous workloads, much like the ECS + EC2 setup. AWS Fargate is not ECS’ version of AWS Lambda — Fargate tasks can keep running indefinitely and don’t have any timeout restrictions like Lambda function have. I think the decision to opt for Fargate over EC2 lies more on your willingness to trade off higher costs for the convenience of less operational overhead.
Let me know if this helps.
Regards,
Carlo @ Tutorials Dojo
Log in to reply.