AWS Certified Solutions Architect – Professional — Question 998
A company wants to host a global web application on AWS. It has the following design requirements:
* The access pattern must allow for fetching data from multiple data sources.
* Minimize the cost of API calls.
* Keep page load times to within 50 ms.
* Provide user authentication and authorization and manage data access for different user personas (for example, administrator, manager, or engineer).
* Use a serverless design.
Which set of strategies should a solutions architect use?
Answer options
- A. Use Amazon CloudFront with Amazon S3 to host the web application. Use Amazon API Gateway to build the application APIs with AWS Lambda for the custom authorizer. Authorize data access by performing user lookup in Simple AD.
- B. Use Amazon CloudFront with AWS WAF to host the web application. Use AWS AppSync to build the application APIs. Use IAM groups for each user persona. Authorize data access by leveraging IAM groups in AWS AppSync resolvers.
- C. Use Amazon CloudFront with Amazon S3 to host the web application. Use AWS AppSync to build the application APIs. Use Amazon Cognito groups for each user persona. Authorize data access by leveraging Amazon Cognito groups in AWS AppSync resolvers.
- D. Use AWS Direct Connect with Amazon S3 to host the web application. Use Amazon API Gateway to build the application APIs. Use AWS Lambda for custom authentication and authorization. Authorize data access by leveraging IAM roles.
Correct answer: C
Explanation
Amazon CloudFront paired with Amazon S3 provides a serverless, low-latency hosting environment that satisfies the 50 ms load time requirement. AWS AppSync is ideal for fetching data from multiple sources with minimal API overhead because it uses GraphQL, and its integration with Amazon Cognito groups allows for fine-grained authorization directly within its resolvers. Other options fail because they either introduce non-serverless components like Simple AD, attempt to use AWS Direct Connect for web hosting, or lack the native multi-source efficiency of AppSync.