1. Home
  2. Training Library
  3. Designing Resilient Architectures

Amazon Simple Queue Services (SQS)


How to design high availability and fault tolerant architectures
Start course
2h 21m

Designing Resilient Architectures. In this module, we explore the concepts of business continuity and disaster recovery, the well-architected framework and the AWS services that help us design resilient, fault-tolerant architectures when used together.

We will firstly introduce the concepts of high availability and fault tolerance and introduce you to how we go about designing highly available, fault-tolerant solutions on AWS. We will learn about the AWS Well Architected Framework, and how that framework can help us make design decisions that deliver the best outcome for end users. Next, we will introduce and explain the concept of business continuity and how AWS services can be used to plan and implement a disaster recovery plan.

We will then learn to recognize and explain the core AWS services that when used together can reduce single points of failure and improve scalability in a multi-tier solution.  Auto Scaling is a proven way to enable resilience by enabling an application to scale up and down to meet demand. In a hands-on lab we create and work with Auto Scaling groups to improve add elasticity and durability. Simple Queue service increases resilience by acting as a messaging service between other services and applications, thereby decoupling layers, reducing dependency on state. Amazon Cloudwatch is a core component of maintaining a resilient architecture - essentially it is the eyes and ears of your environment, so we next learn to apply the Amazon CloudWatch service in a hands-on environment. 

We then learn to apply the Amazon CloudFront CDN service to add resilience to a static website that is served out of Amazon S3. Amazon Cloudfront is tightly integrated with other AWS services such as Amazon S3, AWS WAF and Amazon GuardDuty making Amazon CloudFront an important component to increasing the resilience of your solution.


- [Instructor] Amazon Simple Queue Service or SQS is a reliable messaging queue service that is fully managed. Messages are stored redundantly in Simple Queue Service across multiple servers and availability zones to ensure delivery. Simple Queue Service can handle an unlimited number of messages at any given time. Now standard Simple Queue Service queues don't guarantee the order of delivery of messages due to the distributed nature of the system, but there is a service called FIFO SQS which stands for First In First Out. And with First In First Out messaging, you can set the precedence or the order of the messages and guarantee a one-time delivery. With the standard SQS queue, the order is not guaranteed with Simple Queue Service and a message can be retrieved more than once from a queue. You can place sequencing information in each message so you can reorder the messages upon receipt if you do need to pull messages down in order. You can set a message visibility window of up to 12 hours to ensure messages are consumed. Messages can be stored for between one minute and two weeks. The default retention time is four days. You can delete all the messages in a Simple Queue Service queue using the purge queue action. When you purge a queue, all the messages previously sent to the queue will be deleted. So you should consider using Amazon Simple Queue Service when you have separate components of a system or different systems altogether that need to interact with one another. You can also use this service to offload requests from primary services which lets those primary services perform the job that they were intended to perform. With CloudWatch, you can use Simple Queue Service to trigger autoscaling based on the number of messages in your queues.

About the Author
Andrew Larkin
Head of Content
Learning Paths

Andrew is fanatical about helping business teams gain the maximum ROI possible from adopting, using, and optimizing Public Cloud Services. Having built  70+ Cloud Academy courses, Andrew has helped over 50,000 students master cloud computing by sharing the skills and experiences he gained during 20+  years leading digital teams in code and consulting. Before joining Cloud Academy, Andrew worked for AWS and for AWS technology partners Ooyala and Adobe.