Creating a Recipe Blog Sharing Application in AWS

Recipe Blog Sharing Application

Prev Question Next Question

Question

A company is creating a new recipe blog sharing application in AWS.

The static content has been put into an S3 bucket.

In the meantime, a database is needed to store the data for various blog posts.

The application retrieves data from the database and dynamically renders a recipe blog page.

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D. E. F.

Correct Answer - B, D, E.

The main requirement for this question is that no extra efforts are needed for origin infrastructure, automatic scaling, backups, and database redundancy.

Proper AWS services should be chosen to align with this rule.

Hence, options having EC2 with ELB and Auto Scaling can be safely eliminated.

Option A is incorrect: Because ELB and Auto Scaling do not help to route traffic to users globally.

Option B is CORRECT: Because CloudFront has over 100 Edge Locations and is a proper CDN to deliver content to end-users with lower latency globally.

Option C is incorrect: Same reason as.

Option A as EC2 is eliminated.

Option D is CORRECT: Because Lambda@Edge can work together with CloudFront to build dynamic web applications that automatically scale up and down.

There is also no need to build up servers to hold the application code.

Option E is CORRECT: Because DynamoDB database is a fully managed and high-performance database.

DynamoDB automatically scales tables to adjust for capacity and maintain performance.

Option F is incorrect: RDS needs Read Replica and Multi-AZ to be scalable, which brings extra efforts.

There is also no need to use a relational database for this case.

Option E (DynamoDB) is better and is a pure serverless solution together with other valid options.

The company is creating a new recipe blog sharing application in AWS, and they have already put their static content into an S3 bucket. Now they need a database to store the data for various blog posts, and the application will retrieve data from the database and dynamically render a recipe blog page. There are several options available to address this requirement, which are listed below:

A. Configure an Elastic Load Balancer and Auto Scaling group to balance the traffic dynamically.

An Elastic Load Balancer (ELB) can be used to distribute traffic across multiple instances of an application, and an Auto Scaling group can automatically scale up or down the number of instances based on demand. This solution can be useful in handling variable traffic loads, but it doesn't address the requirement for a database.

B. Configure an AWS CloudFront to serve end-users from various Edge Locations.

AWS CloudFront is a content delivery network that can cache content at Edge Locations, reducing the time it takes for content to reach end-users. This solution can help with performance and scalability, but it doesn't address the requirement for a database.

C. Create an Auto Scaling configuration for EC2 instances to automatically scale up and down according to the load.

This solution is similar to Option A, but instead of using an ELB, it involves directly managing EC2 instances. While this approach can be effective in handling variable traffic loads, it doesn't address the requirement for a database.

D. Run the application code in Lambda@Edge to retrieve data from the database, and the response is also cached and served by CloudFront.

Lambda@Edge is a serverless computing service that runs code in response to events at AWS Edge locations. This solution involves running the application code in Lambda@Edge to retrieve data from the database, and the response is cached and served by CloudFront. This solution can provide low-latency access to data and can be useful in handling variable traffic loads, but it may not be suitable for applications that require a significant amount of processing or have long-running tasks.

E. Use DynamoDB to store data for blog posts that the application is using.

DynamoDB is a fully managed NoSQL database service that can be used to store and retrieve data. This solution involves using DynamoDB to store data for blog posts that the application is using. This solution can provide fast and scalable access to data, but it may not be suitable for applications that require complex queries or relational data.

F. For the dynamic data including blog posts for customers, configure an RDS instance as the database.

Amazon RDS is a managed database service that can be used to deploy and operate relational databases. This solution involves configuring an RDS instance as the database for the dynamic data, including blog posts for customers. This solution can provide the benefits of a relational database, including complex queries and relational data, but it may not be suitable for applications that require high scalability.

In summary, there are several options available to address the requirement for a database to store the data for various blog posts in a recipe blog sharing application in AWS. The best solution will depend on the specific needs of the application, including performance, scalability, and data requirements. Options D, E, and F are the most likely candidates, depending on the specific needs of the application.