QuickDialog (QD) is a multimedia company running a messaging app which showcases Users “Stories” based on the pictures and messages uploaded by them.
The media and data uploaded is available for 24 hours post which, moved to archive layer.
The app also provides “Discover” which provides search on both active and archive content.
The app evolved from originally centering on person-to-person communication to present users' "Stories" allowing brands ad-supported campaigns.
QD was previously running their application on MYSQL database with images stored in Local disk storage and NAS storage on premise, faced lot of performance issues in building stories around content and on discovers capabilities.
QuickDialog wants to host their app running on AWS and has following requirements in terms of data storage and search. Secured storage of images/objects which can store and retrieve any amount of data any time, from anywhere Database which can group the message related data, users, friends and groups together as a single collection/table which brings in performance while spanning Users “Stories” and shall support movement ofthe archived data into separate table before the data becomes inaccessible. Search service which covers both Active and Archive content to provide Discover capabilities What options provide the relevant capabilities with the LEAST overhead to fulfill QD requirements? Please select 3 options.
Click on the arrows to vote for the correct answer
A. B. C. D. E. F. G.Answer: C, D and F.
Option A is incorrect -AuroRA/RDS provides a relational database to fulfill the requirements and no different in database design compared to MYSQL.
Aurora/RDS provides measurable performance in terms of scalability, but being a relational database, the platform cannot provide facilities like movement of data to archive layer, expiry of data and others.
NoSQL database fits in the specific requirements and DynamoDB is a right solution to address the business needs.
https://docs.aws.amazon.com/rds/index.html?id=docs_gateway#lang/en_usOption B is incorrect - Redshift provides a data warehousing layer.
It does not support messaging applications.
An Amazon Redshift data warehouse is an enterprise-class relational database query and management system.
Amazon Redshift supports client connections with many types of applications, including business intelligence (BI), reporting, data, and analytics tools.
Amazon Redshift achieves efficient storage and optimum query performance through a combination of massively parallel processing, columnar data storage, and very efficient, targeted data compression encoding schemes.
https://docs.aws.amazon.com/redshift/latest/dg/c_redshift_system_overview.htmlOption C is correct - Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability.
DynamoDB lets you offload the administrative burdens of operating and scaling a distributed database, so that you don't have to worry about hardware provisioning, setup and configuration, replication, software patching, or cluster scaling.
Amazon DynamoDB also provides expiry of items and automatically removed after expiry of data and also copy of data from one table to other using DynamoDB Streams.
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.htmlOption D is correct -
Amazon CloudSearch provides Search capabilities for business applications.
Amazon CloudSearch is a fully managed service in the cloud that makes it easy to set up, manage, and scale a search solution for your website.
Amazon CloudSearch enables you to search large collections of data such as web pages, document files, forum posts, or product information.
With Amazon CloudSearch, you can quickly add search capabilities to your website without having to become a search expert or worry about hardware provisioning, setup, and maintenance.
As your volume of data and traffic fluctuates, Amazon CloudSearch automatically scales to meet your needs.
https://docs.aws.amazon.com/cloudsearch/latest/developerguide/what-is-cloudsearch.htmlOption E is incorrect - ElasticSearch provides search for enterprise repositories.
Amazon Elasticsearch Service (Amazon ES) is a managed service that makes it easy to deploy, operate, and scale Elasticsearch clusters in the AWS Cloud.
Elasticsearch is a popular open-source search and analytics engine for use cases such as log analytics, real-time application monitoring, and clickstream analysis.
With Amazon ES, you get direct access to the Elasticsearch APIs; existing code and applications work seamlessly with the service.
https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/what-is-amazon-elasticsearch-service.htmlOption F is correct - Amazon Simple Storage Service (Amazon S3) is storage for the Internet.
You can use Amazon S3 to store and retrieve any amount of data at any time, from anywhere on the web.
S3 provides S3 for object Storage, S3-IA for storage of objects with infrequent access and S3 Glacier to host objects in Archival Layer.
https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.htmlOption G is incorrect -Amazon EFS does not fit in requirement.
Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage for use with Amazon EC2
With Amazon EFS, storage capacity is elastic, growing and shrinking automatically as you add and remove files, so your applications have the storage they need, when they need it.
Amazon EFS has a simple web services interface that allows you to create and configure file systems quickly and easily.
https://docs.aws.amazon.com/efs/latest/ug/whatisefs.htmlBased on the requirements provided by QD, there are three main areas that need to be addressed: data storage, database, and search service. The following AWS options can provide relevant capabilities with the least overhead:
Amazon S3: This is a cost-effective and scalable object storage service that can store and retrieve any amount of data from anywhere. It is a suitable option for storing images/objects securely. S3 can also provide layered storage for both active/inactive/archive layers of data, as per the requirements. Therefore, option F is correct.
Amazon DynamoDB: This is a NoSQL database service that provides high performance and scalability for applications with large amounts of unstructured data. DynamoDB can group the message-related data, users, friends, and groups together as a single collection/table, which brings in performance while spanning users "Stories". It can also support the movement of archived data into a separate table before the data becomes inaccessible. Therefore, option C is correct.
Amazon ElasticSearch: This is a managed search and analytics engine that can provide search (Discover) capabilities for the messaging app. It can cover both active and archive content, as per the requirements. ElasticSearch is a powerful and flexible option for text-based search and analytics. Therefore, option E is correct.
The other options are not the best fit for the given requirements:
Amazon Aurora/RDS (option A) and Amazon RedShift (option B) are relational database services, which may not be the best fit for applications with large amounts of unstructured data and complex relationships. They may also have higher overheads in terms of configuration, maintenance, and costs.
Amazon CloudSearch (option D) is a search service that may not be the best fit for complex search scenarios and advanced analytics. It is also not as flexible as ElasticSearch in terms of customization and integration.
Amazon Elastic File System (EFS) (option G) is a scalable and fully managed file system for EC2 instances, which may not be the best fit for storing unstructured data and objects. It may also have higher overheads in terms of costs and performance.