exam questions

Exam AWS Certified Solutions Architect - Professional All Questions

View all questions & answers for the AWS Certified Solutions Architect - Professional exam

Exam AWS Certified Solutions Architect - Professional topic 1 question 76 discussion

A company is building a voting system for a popular TV show, viewers win watch the performances then visit the show's website to vote for their favorite performer. It is expected that in a short period of time after the show has finished the site will receive millions of visitors. The visitors will first login to the site using their Amazon.com credentials and then submit their vote. After the voting is completed the page will display the vote totals. The company needs to build the site such that can handle the rapid influx of traffic while maintaining good performance but also wants to keep costs to a minimum.
Which of the design patterns below should they use?

  • A. Use CloudFront and an Elastic Load balancer in front of an auto-scaled set of web servers, the web servers will first call the Login With Amazon service to authenticate the user then process the users vote and store the result into a multi-AZ Relational Database Service instance.
  • B. Use CloudFront and the static website hosting feature of S3 with the Javascript SDK to call the Login With Amazon service to authenticate the user, use IAM Roles to gain permissions to a DynamoDB table to store the users vote.
  • C. Use CloudFront and an Elastic Load Balancer in front of an auto-scaled set of web servers, the web servers will first call the Login with Amazon service to authenticate the user, the web servers will process the users vote and store the result into a DynamoDB table using IAM Roles for EC2 instances to gain permissions to the DynamoDB table.
  • D. Use CloudFront and an Elastic Load Balancer in front of an auto-scaled set of web servers, the web servers will first call the Login With Amazon service to authenticate the user, the web servers win process the users vote and store the result into an SQS queue using IAM Roles for EC2 Instances to gain permissions to the SQS queue. A set of application servers will then retrieve the items from the queue and store the result into a DynamoDB table.
Show Suggested Answer Hide Answer
Suggested Answer: D 🗳️

Comments

Chosen Answer:
This is a voting comment (?). It is better to Upvote an existing comment if you don't have anything to add.
Switch to a voting comment New
Moon
Highly Voted 3 years, 6 months ago
D is correct. It would be more costly to scale the read and write of the DynamoDB for the million visitors peak time, while you can offload the read and write using SQS. That will reduce the high cost of read/write on DyDB.
upvoted 24 times
cldy
3 years, 6 months ago
wont extra servers to process SQS increase the cost?
upvoted 2 times
...
bobsmith2000
2 years, 11 months ago
Why not B? DDB is able to sustain millions of writes. With D you pay for ELB, numerous web servers, sqs, numerous of app servers. And how to make sure that all votes are written to DDB after the show is over? Watches have to wait untill app servers process all items in the queue and untill DDB lets them to write? In the case of B: the JS can implement the exponential back-off to wait untill DDB finish scaling and lets writes (it maintains double capacity in case of a spike and uses some kind of predictive 1 scaling under the hood)
upvoted 3 times
...
...
Warrenn
Highly Voted 3 years, 6 months ago
The answer is not C if DynamoDb is configured to auto-provision WCU then a burst in traffic is going to be very expense as million of users are going to make the WCU very high to handle the load, if DynamoDb has fixed WCU then the high sudden volume will cause errors. SQS is always better at dealing with normalizing bursts in traffic therefore D.
upvoted 7 times
...
amministrazione
Most Recent 8 months, 3 weeks ago
D. Use CloudFront and an Elastic Load Balancer in front of an auto-scaled set of web servers, the web servers will first call the Login With Amazon service to authenticate the user, the web servers win process the users vote and store the result into an SQS queue using IAM Roles for EC2 Instances to gain permissions to the SQS queue. A set of application servers will then retrieve the items from the queue and store the result into a DynamoDB table.
upvoted 1 times
...
SkyZeroZx
1 year, 10 months ago
Selected Answer: D
Design B is not as suitable for this scenario because it does not use any load balancing. This means that if the website receives a large number of visitors, the web servers could become overloaded. This could lead to performance problems, such as slow loading times or even outages. Design D uses CloudFront and an Elastic Load Balancer to distribute traffic across the web servers. This helps to prevent any single web server from becoming overloaded, which can improve performance and prevent outages. In addition, design D uses SQS to buffer the votes. This helps to prevent the web servers from being overloaded by a large number of votes. This can also improve performance by reducing the number of requests that need to be made to the web servers. Therefore, design D is a better choice for this scenario because it uses load balancing and SQS to improve performance and prevent outages.
upvoted 1 times
...
SkyZeroZx
1 year, 10 months ago
Selected Answer: D
B how to comunicate with IAM Role ? is correct C is incorrect for cost insted of use SQL D is correct because use SQS for not provisioned WCU in DynamoDB is more cost
upvoted 1 times
SkyZeroZx
1 year, 10 months ago
B is incorrect typo error
upvoted 1 times
...
...
TigerInTheCloud
2 years, 4 months ago
Selected Answer: D
A. Read the question, DynamoDB is a component to be used in my mind. Quickly scan the answers, all other answers use DybnamDB. So I killed this answer first. B. Looks very good, but how to use IAM roles in this setup? C. Not a bad solution. D. This is a better solution than C, with SQS, to decouple data provider and consumer the DynamoDB can be provisioned without considering accommodating the peak traffic.
upvoted 1 times
...
welcomeYM
2 years, 8 months ago
Selected Answer: D
DDDDDDDDD
upvoted 1 times
...
bobsmith2000
2 years, 11 months ago
Why not B? It's totally feasible. Millions of visitors + keeping the cost low => Serverless, CloudFront -> S3 (JS) -> DDB.
upvoted 1 times
...
johnnsmith
3 years, 2 months ago
C is correct. https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3Export.html Log data can take up to 12 hours to become available for export. For near real-time analysis of log data, see Analyzing log data with CloudWatch Logs Insights or Real-time processing of log data with subscriptions instead. Only C meets the RPO/RTO requirements.
upvoted 1 times
johnnsmith
3 years, 2 months ago
Sorry. This is meant for another question.
upvoted 1 times
...
...
cldy
3 years, 4 months ago
D. Use CloudFront and an Elastic Load Balancer in front of an auto-scaled set of web servers, the web servers will first call the Login With Amazon service to authenticate the user, the web servers win process the users vote and store the result into an SQS queue using IAM Roles for EC2 Instances to gain permissions to the SQS queue. A set of application servers will then retrieve the items from the queue and store the result into a DynamoDB table.
upvoted 1 times
...
01037
3 years, 6 months ago
OK, I'll go with D. Both B and C can be expensive if using on-demand capacity mode of DynamoDB. But by adding some retry logic, I think I can work.
upvoted 1 times
...
newme
3 years, 6 months ago
I'm not sure which is right. It seems people don't choose A or C, because it is said to be expensive. But using on-demand capacity mode of DynamoDB, in US East (N. Virginia) Region, it's only $1.25 per million write request units. So with millions of visitors and 1 vote for each visitor, it only costs less than $20 for each performance. And another thing, aggregation is needed after vote, but I don't think DynamoDB is good at aggregation. So is DynamoDB really a good choice?
upvoted 1 times
01037
3 years, 6 months ago
Oh, so it's not that expensive!? As to aggression, create a new table for every event, use performer as hash key and visitor as range key, I think it works.
upvoted 1 times
01037
3 years, 6 months ago
So why not B?
upvoted 1 times
...
...
...
kratnesh
3 years, 6 months ago
Answer D, using SQS the request rate will get flattened and make proper IOPS of DynamoDB to write and read data for millions of users.
upvoted 1 times
...
fullaws
3 years, 6 months ago
D is correct, agree, SQS is better than auto-provision WCU for dynamodb
upvoted 1 times
...
CloudFloater
3 years, 6 months ago
D http://jayendrapatil.com/aws-storage-options-whitepaper/
upvoted 2 times
...
amog
3 years, 6 months ago
Answer is D Keyword is "After the voting is completed the page will display the vote totals"
upvoted 1 times
amog
3 years, 6 months ago
For milions vote processing, we need SQS to do this
upvoted 2 times
...
...
pra276
3 years, 6 months ago
Answer D: Use CloudFront and an Elastic Load Balancer in front of an auto-scaled set of web servers, the web servers will first call the Login. With Amazon service to authenticate the user, the web servers would process the users vote and store the result into an SQS queue using IAM Roles for EC2 Instances to gain permissions to the SQS queue. A set of application servers will then retrieve the items from the queue and store the result into a DynamoDB table
upvoted 4 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 ...
exam
Someone Bought Contributor Access for:
SY0-701
London, 1 minute ago