SQS is a powerful service that is one of AWS’s oldest offerings. It allows for you to decouple applications like I mentioned in my last post. In SQS you have your producers who create this data and send it into the queue and your consumers who request data from the queue. The queue can have an unlimited number of messages in it. The retention period is 4-14 days for messages in the queue and messages are typically deleted once the producer has read them. The maximum size per message is 256 KB. The queue can also accept multiple messages, “at least once delivery. The queue can receive these messages in any order and will attempt to put the messages back together with “best effort ordering”. Your consumers on the other side of this queue can be set to scale based the queue length to avoid overwhelming your application, simply setup an ASG and set a CloudWatch alarm that monitors that queue length and scales when a certain threshold is met. An example of where SQS could be useful is where you have an application that is a website running on an EC2 instance. Users are allowed to submit videos to this website however you want to avoid using the website to process as the instance running it will be slowed down by this video processing. You can use SQS and the message will instead be sent through the queue and SQS can send it to a consumer that is perhaps a backend video processor application. In terms of in-flight encryption you have HTTPS. At-rest encryption has AWS KMS keys and another option for at-rest encryption is client-side, which the customer will need to manage.