1. Home
  2. Training Library
  3. Amazon Web Services
  4. Courses
  5. Chalk Talks - Simple Explains on Difficult Topics! SQS FIFO, Bastion Hosts versus NAT Gateway, SQS versus SNS and Auto Scale limits.

Amazon SQS versus Amazon SNS - What is the Difference?

Start course


This course is made up of short "Byte sized" white board lessons showing you how to use some of the latest AWS services.
Currently we have short videos explaning: 
What is an SQS First In First Out Queue and when should I use it?
Bastion hosts and NAT Gateway - What is the difference?
Amazon SQS versus Amazon SNS - What is the Difference?
Autoscale Limits - what are they and how do I change them if I need to?
If you have thoughts or suggestions for this course, please contact Cloud Academy at


- Hi Cloud Academy ninjas. Let's do a quick chalk talk on the difference between the Amazon Simple Queue Service and Amazon Simple Notification Service. First thing to note is the Simple Queue Service is a pull service. It's a queue, so we pull messages from the queue and consume them. Simple Notification Service is a push service, so it pushes messages out to consumers. Okay, so with Simple Queue Service we've got a standard queue, in which there can be multiple versions of a message and the ordering is not guaranteed. It's a highly available web application, so it means that when messages are distributed across availability zones in regions. There's also what we call a FIFO queue, which stands for first in or first out. And with first in, first out queues, it's a guaranteed one-time delivery, and the order of messages is preserved. Okay, so those two are one simple way of actually doing a distributed queuing service. With our Simple Notification Service, we've got a number of different ways we can send notifications. So we can use SMS, which is basically text, we can use HTTP, we can use SMTP, which is email, and there's a few other things we can consider as well. Mobile push, okay, so mobile push can be used to-- Mobile push service can be used to send a Simple Notification Service message. Alright, so this is really good for time-sensitive updates, for example. So if there's something that is time-sensitive then the Simple Notification Service will do a very good job of that for us. Now it doesn't currently integrate with Simple Queue Service FIFO queues, but it does integrate with Simple Queue Service standard queues. Now it doesn't also support two-way SMS messages, so while we can use mobile messaging, a simple message service, it doesn't support two-way SMS, which is something which some people might want to use. And it doesn't currently support MMS messaging, which is multimedia messaging, alright. Okay, but it does support CloudTrail, okay, and this is a very common use case for Simple Notification, is for CloudTrail. Okay, so where we have any kind of activity, an alarm or a CloudWatch or CloudTrail event, then we can use Simple Notification Service to notify different services. So a common use case is Auto Scaling, so our Auto Scaling group can use Simple Notification Service to send a message to another application layer or it can send it to a consumer and that consumer can be an application or a person. And if we want to send a message to a number of people then Simple Notification Service is a really good way of doing a one-to-many notification. So, just remembering the two differences, Simple Queue Service is a queue, it's a pull service. We take messages from that queue, consume them and delete them and then move on. With our Simple Notification Service, we can push messages out to any number of consumers or applications or whatever is the consumer layer using, any one of these common transmission protocols. Simple Messaging Service, the text-based one. HTTP, HTTPS, SMTP, which is email, or mobile push. So, Simple Notification is perfect for monitoring applications, for monitoring notifications, workflow systems. What else could we use it for? Time-sensitive information updates, alright. Alright, okay, just one other key difference is that messages are pushed out to consumers when they are sent by publishers, okay. So a publisher publishes a message to SNS and then those messages are pushed out to our consumers, and they can be multiple consumers. Whereas with our SQS queue, we literally push a message to a queue and then that queue-- A consumer requests that message from a queue. So a slightly different workflow but they're both very very useful services. Okay Cloud Academy ninjas, see you next time.

About the Author

Learning paths28

Andrew is an AWS certified professional who is passionate about helping others learn how to use and gain benefit from AWS technologies. Andrew has worked for AWS and for AWS technology partners Ooyala and Adobe.  His favorite Amazon leadership principle is "Customer Obsession" as everything AWS starts with the customer. Passions around work are cycling and surfing, and having a laugh about the lessons learnt trying to launch two daughters and a few start ups.