AWS : Solutions Architect Associate Exam — Part 1

A Quick Review to Design Resilient Architectures

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

--

Part 1 : Design Resilient Architectures (30% of exam)

  • Design Multi-tier architectures.
  • Design High-available & Fault-tolerance architectures.
  • Design Decoupling mechanisms using AWS services.

1. A system of IoT sensors sends real-time monitoring data to an Amazon Kinesis Stream that is configured with default settings. It then sends the data to an Amazon S3 bucket every 3 days. When you checked the data in S3 on the 3rd day, only the data for the last day is available.

What is the most likely cause of this issue ?

By default, records of a stream are accessible for up to 24 hours from the time they are added to the stream.

You can raise this limit to up to 7 days by enabling extended data retention or up to 365 days by enabling long-term data retention.

https://aws.amazon.com/kinesis/data-streams/faqs/

2. A web application hosted in a Docker container. You want to easily migrate that web application to AWS Cloud which can automatically handle all the tasks such as load-balancing, auto-scaling and monitoring.

Which AWS services can be used to fulfill this requirement?

AWS Elastic Beanstalk.

AWS Elastic Beanstalk makes it even easier for developers to quickly deploy and manage applications in the AWS Cloud. Developers simply upload their application, and Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring.

AWS Elastic Beanstalk supports Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker.

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

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker.html

3. In AWS Elastic Beanstalk, where does it store the application files and server log files?

The application files are stored in S3.

The server log files can also optionally be stored in S3 or in CloudWatch Logs.

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

4. An application is using a AWS Lambda for process that run 15 minutes on average. Throughout the day, there are a few Lambda functions which are terminated.

What is the most likely cause of this issue ?

The terminated Lambda functions have been running for over 15 minutes which is the maximum execution time.

To prevent your Lambda function from running indefinitely, it is recommended that you set this value based on your expected execution time. The default timeout is 3 seconds and the maximum execution duration per request in AWS Lambda is 900 seconds, which is equivalent to 15 minutes.

https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html

5. A Solutions Architect is trying to enable Cross-Region Replication to an S3 bucket but this option is disabled.

What is a valid reason for this situation ?

To enable the cross-region replication feature in S3, the following items should be met:

  • The source and destination buckets must have versioning enabled.
  • The source and destination buckets must be in different AWS Regions.
  • Amazon S3 must have permissions to replicate objects from that source bucket to the destination bucket on your behalf.

https://aws.amazon.com/blogs/aws/new-cross-region-replication-for-amazon-s3/

6. A company provides each client with frequently updated images when their new version are available. The system is hosted in AWS and the images are hosted in S3 bucket behind a AWS CloudFront web distribution.

However, users are reporting that they are still seeing the old images, even new version of images that have been uploaded in S3.

What is the most suitable solution to solve this issue ?

Use Versioned S3 object — To control the versions of files that are served from your distribution, you can either invalidate files or give them versioned file names. If you want to update your files frequently, AWS recommends that you primarily use file versioning for the following reasons:

  • Versioning enables you to control which file a request returns even when the user has a version cached either locally or behind a corporate caching proxy. If you invalidate the file, the user might continue to see the old version until it expires from those caches.
  • AWS CloudFront access logs include the names of your files, so versioning makes it easier to analyze the results of file changes.
  • Versioning provides a way to serve different versions of files to different users.
  • Versioning simplifies rolling forward and back between file revisions.
  • Versioning is less expensive. You still have to pay for AWS CloudFront to transfer new versions of your files to Edge Locations, but you don’t have to pay for invalidating files.

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/UpdatingExistingObjects.html

7. What is the correct indication that an object was successfully stored when you put objects in Amazon S3 ?

HTTP 200 result code and MD5 checksum.

Although Amazon S3 has 99.999999999% durability, it is not an assurance that all objects uploaded using S3 API calls will be successful — If you triggered an S3 API call and got HTTP 200 result code and MD5 checksum, then it is considered as a successful upload. The S3 API will return an error code in case the upload is unsuccessful.

8. A company is planning to migrate a database hosted on-premises to AWS. The database currently has over 50 TB of consumer data, handles highly transactional (OLTP) workloads, and is expected to grow. The Solutions Architect should ensure that the database is ACID-compliant and can handle complex queries of the application.

Which type of AWS service should be used ?

Amazon Aurora.

Amazon Aurora is fully-managed relational database by AWS — fully compatible with existing MySQL and PostgreSQL which is suitable for transactional (OLTP) workloads and automatically grows storage as needed, up to 128TB per database instance.

https://aws.amazon.com/rds/aurora/

9. A queue created in Amazon SQS with default settings. You configured the application to process the messages once a week. Unfortunately, you noticed that not all messages are being processed by the application.

What is the root cause of this issue ?

Amazon SQS automatically deletes messages that have been in a queue for more than the default maximum of message retention period.

You can configure the Amazon SQS message retention period to a value from 1 minute to 14 days. The default is 4 days. Once the message retention quota is reached, your messages are automatically deleted.

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

10. As Solutions Architect review the Auto Scaling events of web application, he notices that application is scaling up and down multiple times within the hour.

What design change could the Architect make to optimize system without impact of elasticity ?

Change the Cooldown Period of Auto Scaling Group — a configurable setting that helps to ensure that it doesn’t launch or terminate additional instances before the previous scaling activity takes effect.

https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html

11. An application is using a RESTful API hosted in AWS which uses Amazon API Gateway and AWS Lambda. There is a requirement to trace and analyze user requests as they travel through your Amazon API Gateway APIs to the underlying services.

What is the most suitable AWS service to use to meet this requirement ?

AWS X-Ray.

AWS X-Ray is a service that collects data about requests that your application serves, and provides tools you can use to view, filter, and gain insights into that data to identify issues and opportunities for optimization. For any traced request to your application, you can see detailed information not only about the request and response, but also about calls that your application makes to downstream AWS resources, microservices, databases and HTTP web APIs.

https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html

12. A tech company currently has an on-premises infrastructure. They are currently running low on storage and want to have the ability to extend their storage using the AWS cloud.

Which AWS service can help them achieve this requirement ?

AWS Storage Gateway.

AWS Storage Gateway connects an on-premises software appliance with cloud-based storage to provide seamless integration with data security features between your on-premises IT environment and the AWS storage infrastructure. You can use the service to store data in the Amazon Web Services Cloud for scalable and cost-effective storage that helps maintain data security.

https://docs.aws.amazon.com/storagegateway/latest/userguide/WhatIsStorageGateway.html

13. A company needs to deploy at least 2 EC2 instances to support the normal workloads of its application and automatically scale up to 6 EC2 instances to handle the peak load. The architecture must be highly available and fault-tolerant as it is processing mission-critical workloads.

As a solutions architect, what should you do to meet the above requirement ?

Create an Auto Scaling group of EC2 instances and set the minimum capacity to 4 and the maximum capacity to 6. Deploy 2 instances in Availability Zone A and another 2 instances in Availability Zone B.

To achieve highly-available and fault-tolerant architecture for your applications, you must deploy all your instances in different Availability Zones. This will help you isolate your resources if an outage occurs.

Having a highly-available and fault-tolerant architecture requires an extra cost in running additional resources than what is usually needed. This is to ensure that the mission-critical workloads are processed.

14. A company wants to rollout and test a blue-green deployment for its global application in the next 48 hours. Most of the customers use mobile phones which are prone to DNS caching.

What would you recommend to achieve this requirement ?

Use AWS Global Accelerator.

AWS Global Accelerator uses endpoint weights to determine the proportion of traffic that is directed to endpoints in an endpoint group, and traffic dials to control the percentage of traffic that is directed to an endpoint group (an AWS region where your application is deployed).

With AWS Global Accelerator, you can shift traffic gradually or all at once between the blue and the green environment without being subject to DNS caching, traffic dials and endpoint weights changes are effective within seconds.

https://aws.amazon.com/blogs/networking-and-content-delivery/using-aws-global-accelerator-to-achieve-blue-green-deployments/

--

--