What Is Amazon SQS

Amazon SQS (Simple Queue Service) is a message queuing service in AWS cloud. In this article, learn what SQS is and why applications use SQS.

Introduction

 
Instead of running everything on servers, one can leverage AWS services for better performance and achieving objectives. One such helpful service is Amazon SQS.
 
Amazon Simple Queue Service (SQS) is a fully managed message queuing service in AWS cloud that enables software appplications to implement queing services in microservices, distributed systems, and serverless applications. SQL is scalalbe. Using SQS, you can send, store, and receive messages at any volume, without losing messages or requiring other services to be available. 
 

How does SQS work 

 
SQS It is used to decouple various components of the application. To understand in simple terms, it is like a buffered storage in between various software components. 
 
To understand the concept how SQL works, let's discuss with a use case.
 
Consider a sender component ‘A’ and receiver component ‘B’. Now A is sending a messages to B at a higher rate than the rate receiver B can process. This creates a serious problem of losing messages in transit.  
 
image1 
 
To prevent messages getting lost, a SQS queue can be introduced to act as a buffer to prevent loss of messages. The messages are stored in the queue in transit and then delivered to the receiver. 
 
image2 
 
This is one of the use-cases for SQS, other use cases can be decoupling the application, asynchronous processing etc.
 

Key features of SQS

 
SQS is a cloud service and can be used by any type of software, application, or other service. SQS works at its own independent service in the cloud. A software connects with SQS using a connection by passing the credentials and queue names. SQL also allows applications to create and delete custom queues. 
  • At-Least-Once Delivery - A message in the queue is delivered at least once. Message delivery is guaranteed, no message is lost.[Text Wrapping Break]
  • Multiple components can work on a single queue. SQS uses a lock mechanism, if one component is using a message, it is made hidden to other components. Upon successful processing, message is deleted from the queue. If the message processing fails, it stays in the queue and is made visible to all the components. This feature is called Visibility Timeout.
  • There are two types of queues - Standard and FIFO. In standard queue the messages are picked up randomly. It might not be in the order it entered the queue while FIFO queue uses first-in-first-out, it ensures the order.
  • For the messages that cannot be processed are kept in dead-letter queue.
  • Billing is done based on the number of requests to the queue. SQS is a good service to be used for applications to increase efficiency, reliability and performance. 

Benefits of SQS

 
Here is a list of key benefits of SQS.
 
SQS is easy to setup without any overhead
 
Implementing SQS, there is no upfront cost or administrative cost. It is all configurable in AWS cloud and APIs are provide to manage queues programmatically. AWS's pay-as-you-go model allows you to pay for what you use only. 
 
SQL is reliable
 
Use Amazon SQS to transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be available. SQS lets you decouple application components so that they run and fail independently, increasing the overall fault tolerance of the system. Multiple copies of every message are stored redundantly across multiple availability zones so that they are available whenever needed.
 
SQS is secure
 
You can use Amazon SQS to exchange sensitive data between applications using server-side encryption (SSE) to encrypt each message body. Amazon SQS SSE integration with AWS Key Management Service (KMS) allows you to centrally manage the keys that protect SQS messages along with keys that protect your other AWS resources. AWS KMS logs every use of your encryption keys to AWS CloudTrail to help meet your regulatory and compliance needs.
 
SQS is scalable and and cost-effective
 
Amazon SQS leverages the AWS cloud to dynamically scale based on demand. SQS scales elastically with your application so you don’t have to worry about capacity planning and pre-provisioning. There is no limit to the number of messages per queue, and standard queues provide nearly unlimited throughput. Costs are based on usage which provides significant cost saving versus the “always-on” model of self-managed messaging middleware.
 

Conclusion

 
In the above article, we studied Amazon SQS. Hope you understood.