AWS : Solutions Architect Associate Exam — Part 2

A Quick Review to Design High-Performing Architectures

Pisit J.
Sum up As A Service
6 min readJul 5, 2021

--

Part 2 : Design High-Performing Architectures (28% of exam)

  • Identify high-performing solutions for Compute, Storage, Database & Network.

1. A global news network created AWS CloudFront distribution for their web application. However, you noticed that the application’s origin server is being hit for each request instead of the Edge Locations, which serve the cached objects. The issue occurs even for the commonly requested objects.

What could be a possible cause of this issue ?

The value of Cache-Control max-age or TTL (Time To Live) is set to zero.

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html

2. You are required to set up a distributed session management layer that will provide a scalable and shared data storage for the user sessions.

What would be the best choice to meet the requirement while still providing sub-millisecond latency for the users ?

Amazon ElastiCache

For sub-millisecond latency caching, ElastiCache is the best choice. In order to address scalability and to provide a shared data storage for sessions that can be accessed from any individual web server, you can abstract the HTTP sessions from the web servers themselves. A common solution for this is to leverage an In-Memory Key/Value store such as Redis and Memcached.

https://aws.amazon.com/caching/session-management/

3. A Solutions Architect designed a real-time data analytics system based on Kinesis Data Stream and Lambda. A week after the system has been deployed, the users noticed that it performed slowly as the data rate increases. The Architect identified that the performance of the Kinesis Data Streams is causing this problem.

What should the Architect do to improve performance ?

Increase the number of shards of the Kinesis Data Stream

Amazon Kinesis Data Streams supports resharding, which lets you adjust the number of shards in your stream to adapt to changes in the rate of data flow through the stream.

Splitting increases the number of shards in your stream and therefore increases the data capacity of the stream. Because you are charged on a per-shard basis, splitting increases the cost of your stream. Similarly, merging reduces the number of shards in your stream and therefore decreases the data capacity and cost of the stream.

https://docs.aws.amazon.com/streams/latest/dev/kinesis-using-sdk-java-resharding.html

https://aws.amazon.com/blogs/big-data/scale-your-amazon-kinesis-stream-capacity-with-updateshardcount/

4. A financial company instructed you to automate the recurring tasks in your department such as patch management, infrastructure selection, and data synchronization to improve their current processes. You need to have a service which can coordinate multiple AWS services into serverless workflows.

What is suitable service for this requirement ?

AWS Step Functions.

AWS Step Functions is a low-code visual workflow service used to orchestrate AWS services, automate business processes, and build serverless applications. Workflows manage failures, retries, parallelization, service integrations, and observability so developers can focus on higher-value business logic.

https://aws.amazon.com/step-functions/

5. You have customers that upload Gigabytes to Terabytes of data to a centralized S3 bucket from the regional data centers, across continents, all over the world on a regular basis. Those customers are starting to complain about the slow upload times.

What are the most effective solution to improve the file upload speed into S3 ?

Amazon S3 Transfer Acceleration & Amazon S3 Multi-part Upload.

Amazon S3 Transfer Acceleration enables fast, easy, and secure transfers of files over long distances between your client and your Amazon S3 bucket. S3 Transfer Acceleration leverages Amazon CloudFront’s globally distributed AWS Edge Locations. As data arrives at an AWS Edge Location, data is routed to your Amazon S3 bucket over an optimized network path.

Amazon S3 Multipart upload allows you to upload a single object as a set of parts. After all parts of your object are uploaded, Amazon S3 assembles these parts and creates the object. In general, when your object size reaches 100 MB, you should consider using multipart uploads instead of uploading the object in a single operation.

https://aws.amazon.com/s3/faqs/

6. An application hosted in EC2 consumes messages from an SQS queue and is integrated with SNS to send out an email to you once the process is complete. The Operations team received 5 orders but after a few hours, they saw 20 email notifications in their inbox.

What could be the possible issue for this situation ?

After application has processed messages, it did not delete the those messages from the SQS.

Always remember that the messages in the SQS queue will continue to exist even after they has been processed. You have to ensure that you delete the message after processing to prevent the message from being received and processed again once the visibility timeout expires.

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-basic-architecture.html

7. A company has a web-based order processing system that is currently using a standard queue in Amazon SQS. The IT Manager noticed that there are a lot of cases where an order was processed twice. This issue has caused a lot of trouble in processing and made the customers very unhappy.

What can you do to prevent this from happening again ?

Amazon SQS FIFO (First-In-First-Out)

Amazon SQS FIFO have all the capabilities of the standard queue with additional capabilities designed to enhance messaging between applications when the order of operations and events is critical, or where duplicates can’t be tolerated.

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html

8. A company need a storage service that data needs to be stored redundantly across multiple AZs and allows concurrent connections from multiple EC2 instances hosted on multiple AZs.

Which AWS storage services will you use to meet this requirement ?

Amazon EFS (Elastic File System)

https://docs.aws.amazon.com/efs/latest/ug/performance.html

9. You started to design the system with a relational database that runs on a single EC2 instance, which requires a single EBS volume that can support up to 30,000 IOPS.

Which Amazon EBS volume type can you use that will meet this requirements ?

EBS Provisioned IOPS SSD (io1)

The scenario requires a storage type for a relational database with a high IOPS performance. For these scenarios, SSD volumes are more suitable to use instead of HDD volumes. Remember that the dominant performance attribute of SSD is IOPS while HDD is Throughput.

SSD — small, random I/O operations, best for transactional workload.

HDD — large, sequential I/O operations, best for streaming workload.

https://aws.amazon.com/ebs/features/

10. A popular social network is using DynamoDB as its database. There is a requirement to implement a ‘follow’ feature where users can subscribe to certain updates made by a particular user.

What is the most suitable solution to meet the requirement ?

Use DynamoDB stream.

DynamoDB stream is an ordered flow of information about every modification to data itemsin an Amazon DynamoDB table — Whenever an application creates, updates, or deletes items in the table, DynamoDB Streams writes a stream record with the primary key attribute(s) of the items that were modified.

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html

11. A media company wants a low-latency way to distribute live sports using UDP protocol.

As a solutions architect, what AWS services would you recommend ?

AWS Global Accelerator.

The differences between CloudFront and Global Accelerator are

  • CloudFront uses Edge Locations to cache content while Global Accelerator uses Edge Locations to find an optimal pathway to the nearest regional endpoint.
  • CloudFront is designed to handle HTTP protocol meanwhile Global Accelerator is best used for both HTTP and non-HTTP protocols such as TCP and UDP.

https://aws.amazon.com/global-accelerator/faqs/

12. A Solutions Architect is tasked to interconnect all of the company’s on-premises networks, VPNs, and VPCs into a single gateway, that includes support for inter-region peering across multiple AWS regions.

What is the best solution for this scenario ?

AWS Transit Gateway.

AWS Transit Gateway acts as a hub that controls how traffic is routed among all the connected networks which act like spokes. This hub and spoke model significantly simplifies management and reduces operational costs because each network only has to connect to the Transit Gateway. This ease of connectivity makes it easy to scale your network as you grow.

https://docs.aws.amazon.com/vpc/latest/tgw/how-transit-gateways-work.html

--

--