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 intoa DynamoDB table.
I disagree with the answer. Notice the “rapidly influx of traffic”, even with a perfect AMI, instances would come to life within minutes, whereas CF / S3 with a combination of federated authentication and DynamoDB would scale perfectly. My Answer would definitely be B.
I wonder how to use IAM role in case of B?