Welcome to ExamTopics
ExamTopics Logo
- Expert Verified, Online, Free.

Unlimited Access

Get Unlimited Contributor Access to the all ExamTopics Exams!
Take advantage of PDF Files for 1000+ Exams along with community discussions and pass IT Certification Exams Easily.

Exam AWS Certified Solutions Architect - Professional SAP-C02 topic 1 question 33 discussion

A company is hosting a monolithic REST-based API for a mobile app on five Amazon EC2 instances in public subnets of a VPC. Mobile clients connect to the API by using a domain name that is hosted on Amazon Route 53. The company has created a Route 53 multivalue answer routing policy with the IP addresses of all the EC2 instances. Recently, the app has been overwhelmed by large and sudden increases to traffic. The app has not been able to keep up with the traffic.
A solutions architect needs to implement a solution so that the app can handle the new and varying load.
Which solution will meet these requirements with the LEAST operational overhead?

  • A. Separate the API into individual AWS Lambda functions. Configure an Amazon API Gateway REST API with Lambda integration for the backend. Update the Route 53 record to point to the API Gateway API.
  • B. Containerize the API logic. Create an Amazon Elastic Kubernetes Service (Amazon EKS) cluster. Run the containers in the cluster by using Amazon EC2. Create a Kubernetes ingress. Update the Route 53 record to point to the Kubernetes ingress.
  • C. Create an Auto Scaling group. Place all the EC2 instances in the Auto Scaling group. Configure the Auto Scaling group to perform scaling actions that are based on CPU utilization. Create an AWS Lambda function that reacts to Auto Scaling group changes and updates the Route 53 record.
  • D. Create an Application Load Balancer (ALB) in front of the API. Move the EC2 instances to private subnets in the VPC. Add the EC2 instances as targets for the ALB. Update the Route 53 record to point to the ALB.
Show Suggested Answer Hide Answer
Suggested Answer: D 🗳️

Comments

Chosen Answer:
This is a voting comment (?) , you can switch to a simple comment.
Switch to a voting comment New
EricZhang
Highly Voted 1 year, 5 months ago
Selected Answer: A
Serverless requires least operational effort.
upvoted 29 times
lkyixoayffasdrlaqd
1 year, 2 months ago
How can this be the answer ?? It says: Separate the API into individual AWS Lambda functions. Can you calculate the operational overhead to do that?
upvoted 16 times
scuzzy2010
1 year, 1 month ago
Separating would be development overhead, but once done, the operational overheard (operational = ongoing day-to-day) will be the least.
upvoted 12 times
24Gel
2 months, 1 week ago
disagree, ASG in Option D, after set up, operational is not overheat as well
upvoted 1 times
24Gel
2 months, 1 week ago
i mean Option C not D
upvoted 1 times
24Gel
2 months, 1 week ago
never mind, A is simpler than C
upvoted 1 times
...
...
...
...
...
Jay_2pt0_1
1 year ago
From any type of real-world perspective, this just can't be the answer IMHO. Surely AWS takes "real world" into account.
upvoted 1 times
...
dqwsmwwvtgxwkvgcvc
9 months ago
I guess multivalue answer routing in Route53 is not proper load balancing so replacing multivalue answer routing with ALB would proper balance the load (with minimal effort)
upvoted 2 times
...
...
jooncco
Highly Voted 1 year, 3 months ago
Selected Answer: C
Suppose there are a 100 REST APIs (Since this application is monolithic, it's quite common). Are you still going to copy and paste all those API codes into lambda? What if business logic changes? This is not MINIMAL. I would go with C.
upvoted 22 times
chathur
11 months, 3 weeks ago
"Create an AWS Lambda function that reacts to Auto Scaling group changes and updates the Route 53 record. " This does not make any sense, why do you need to change R53 records using a Lambda?
upvoted 1 times
Vesla
9 months, 2 weeks ago
Because if you have 4 ec2 in your ASG you need to have 4 records in domain name if ASG scale up to 6 for example you need 2 add 2 records more in domain name
upvoted 4 times
liquen14
2 months, 2 weeks ago
Too contrived in my opinion, and what about DNS caches in the clients?. You coul get stuck for a while with the previous list of servers. I think it's has to be A (but it would involve a considerable development effort) or D which is extremely easy to implement but and the same time it sounds a little bit fishy because they don't mention anything about ASG or scaling I hate this kind of questions and I don't understand what kind of useful insight they provide unless they want us to become masters of the art of dealing with ambiguity
upvoted 1 times
...
...
...
scuzzy2010
1 year, 2 months ago
It says "a monolithic REST-based API " - hence only 1 API. Initially I thought C, but I'll go with A as it says least operation overhead (not least implementation effort). Lambda has virtually no operation overhead compared to EC2.
upvoted 8 times
aviathor
10 months, 2 weeks ago
Answer A says "Separate the API into individual AWS Lambda functions." Makes me think there may be many APIs. However, we are looking to minimize operational effort, not development effort...
upvoted 1 times
...
Jay_2pt0_1
1 year ago
A monolithic REST api likely has a gazillion individual APIs. This refactor would not be a small one.
upvoted 5 times
...
...
jainparag1
5 months, 4 weeks ago
Dealing with business logic change is applicable to existing solution or any solution based on the complexity. Rather it's easier to deal when these are microservices. You shouldn't hesitate to refactor your application by putting one time effort (dev overhead) to save significant operational overhead on daily basis. AWS is pushing for serverless only for this.
upvoted 1 times
...
...
qaz12wsx
Most Recent 1 month ago
Selected Answer: D
I go with D
upvoted 1 times
mifune
4 weeks, 1 day ago
That solution would be ideal, except that the question asks for how to resolve the increasement of requests. An ALB does not scales, so C is the correct anwser.
upvoted 1 times
...
...
lasithasilva709
1 month, 2 weeks ago
Selected Answer: C
I choose C. A,B may need significant development effort to refactor D doesn’t address the major issue which is scaling
upvoted 2 times
...
Smart
1 month, 2 weeks ago
Selected Answer: A
There is a difference between development burden of refactoring and operational burden.
upvoted 1 times
...
43c89f4
1 month, 2 weeks ago
A. partial correct - because monolithic application, if EC2 are not handle i dont think Lamda can handle the traffic. i can go for D. - because of Multi-value, ALB, TG,ASG
upvoted 1 times
...
VerRi
1 month, 3 weeks ago
Selected Answer: D
A will work, but not the least operational overhead.
upvoted 1 times
...
mav3r1ck
1 month, 4 weeks ago
Selected Answer: D
Choosing option A — separating the API into individual AWS Lambda functions and configuring an Amazon API Gateway REST API with Lambda integration — does present a modern, highly scalable solution that could theoretically handle new and varying loads with potentially lower operational overhead once implemented.
upvoted 1 times
mav3r1ck
1 month, 4 weeks ago
There are several reasons why it might not be considered the best option with the "least" operational overhead in this specific scenario: Refactoring Effort: Transforming a monolithic application into a set of microservices or serverless functions can be a significant undertaking. It requires a thorough analysis of the existing application architecture, identifying logical separations between different parts of the application, and then implementing those separations. This process can be time-consuming and requires careful planning to ensure that the application continues to function correctly as a set of more granular services.
upvoted 1 times
mav3r1ck
1 month, 4 weeks ago
Testing and Debugging Challenges: Serverless applications, due to their distributed nature, can present unique challenges for testing and debugging. Ensuring that the application behaves correctly as a collection of independently deployed functions requires comprehensive integration testing. Debugging issues can also be more complex compared to a monolithic architecture, where the application components are more tightly coupled.
upvoted 1 times
...
mav3r1ck
1 month, 4 weeks ago
Development and Deployment Overhead: Initially, moving to AWS Lambda and API Gateway involves a different approach to application development, deployment, and monitoring. Teams may need to familiarize themselves with serverless architectures, adapt deployment pipelines, and implement new monitoring and logging solutions suitable for serverless environments. This learning curve and setup can introduce additional overhead before the benefits of reduced operational management are realized.
upvoted 1 times
...
...
mav3r1ck
1 month, 4 weeks ago
In contrast, option D — creating an Application Load Balancer (ALB) in front of the API and updating the infrastructure to better manage traffic through scaling and health checks — offers a balance between reducing operational overhead and implementing the solution with minimal changes to the existing application architecture. It provides an immediate solution to the problem of handling varying loads without the significant upfront investment in refactoring the application or the learning curve associated with adopting serverless technologies.
upvoted 1 times
...
...
red_panda
2 months ago
Selected Answer: C
For me it's C. Answer A it's impossible. Can you imagine how much time do we need to refactor the application into n API/functions? Answer B and C make no sense. The only one is C, for me.
upvoted 2 times
...
kz407
2 months ago
Selected Answer: D
Problem I have with A, is the overhead of rearchitecting the application code. Monolithic REST API into Lambda means time and money spent on redesigning, development, testing and deployment. That's also "operational overhead" IMHO. Option D on the other hand is quite straightforward. Only thing missing for that to be the obvious go-to is that it doesn't mention EC2 autoscaling. As far as the current set up is concerned, given that the only form of load balancing available is the multivalue DNS responses, it's quite possible that always the top most IP in the list gets the most hits. When quite a high traffic hits the target, it goes down (no replacement is spun up either) resulting in the IP of that EC2 is not included in the subsequent DNS responses. Eventually, you are gonna exhaust the entire set of EC2 instance. With this behaviour being more likely than not, trying to revamp the monolith into AWS Lambda would be overkill, and it brings way too much operational overhead as well.
upvoted 2 times
...
Dgix
2 months, 2 weeks ago
The correct answer is D, believe it or not. "LEAST OPERATIONAL OVERHEAD", remember? Refactoring the monolith constitutes substantial overhead. The reason D isn't immediately apparent as the correct solution is that D doesn't mention that autoscaling _can_ be used, but the operational overhead is practically zero. This is just another "fine" example of AWS wording their questions and replies in an incomplete, ambiguous manner (which we all hate) :).
upvoted 1 times
JOKERO
2 months, 2 weeks ago
but have you answered this request : implement a solution so that the app can handle the new and varying load. !!
upvoted 1 times
...
...
_Jassybanga_
3 months, 1 week ago
I will go with A - may be complex development with simple operations overhead as we are going full serverless here. The option D does not make sense , we are putting the API as target group for ALB but at the same time we want to point the EC2 Ip to the ALB.. not clear to be honest .
upvoted 1 times
_Jassybanga_
3 months, 1 week ago
Sorry I read it wrong - answer can be D as well, Route53 - ALB - Ec2 - Least changes needs to be done and is a fine working solution
upvoted 1 times
_Jassybanga_
3 months, 1 week ago
Actually the answer should be D as the main problem is load balancing which is achived by using ALB. in A the load balancing is still not happening
upvoted 2 times
...
...
...
AWSPro1234
4 months, 1 week ago
Selected Answer: D
D is correct.
upvoted 3 times
...
GabrielShiao
4 months, 2 weeks ago
Selected Answer: D
D is least effort, no code change, auto scaling, HA. Changing code is not easy. Even if c is workable but it is not so load balancing since multivalue answer can return 8 records at maximum which is not a good choice
upvoted 2 times
grire974
4 months, 1 week ago
Yeh but D doesn't mention autoscaling; I almost wrote D; but I think it's A. Just because the load is balanced doesn't mean it can handle excess demand. Ordinarily and ALB would be attached to an ASG; but an ASG isn't mentioned. And and ALB can connect to ec2 without an ASG.
upvoted 2 times
...
...
learnwithaniket
4 months, 2 weeks ago
Selected Answer: D
Least operational overhead is D. Since they already have EC2 instances running. Creating API Gateway and Lambda requires efforts.
upvoted 2 times
...
jpa8300
4 months, 3 weeks ago
this is the kind of questions where the answers are divided. Reading the explanations in this discussion I would also choose option A, because it is the one that will cause least overhead in the day by day work, but I also agree with people that say that converting a monolithic app into a Lambda function is not easy. Options C and D are also correct and they are both a dood choice and one complements the other. If you have several EC2 and you need to sale out and in, you must have a ASG. On the other hand the ALB is needed to spread the load between the EC2. So in summary it is not easy to choose the correct answer here, but I still go to A, because of the requirement 'LEAST' overhead.
upvoted 2 times
...
ninomfr64
5 months ago
Selected Answer: A
Not B as EKS and EC2 requires a lot of work Not C as EC2 requires work and the lambda to update R53 upon scale out requires more work (and it is cumbersome) Not D as EC2 requires more work than Lambda A because R53, API GW and Lambda are all serverless and managed services
upvoted 1 times
...
Community vote distribution
A (35%)
C (25%)
B (20%)
Other
Most Voted
A voting comment increases the vote count for the chosen answer by one.

Upvoting a comment with a selected answer will also increase the vote count towards that answer by one. So if you see a comment that you already agree with, you can upvote it instead of posting a new comment.

SaveCancel
Loading ...