Skip to main content

What is Amazon SQS?

What is Amazon SQS?
(Image credit: Everything Possible / Shutterstock)

The messaging that occurs within a web application can be quite complex. In a cloud computing environment, it’s even more complex. There are web services, distributed computing components, microservices, and other pieces of code that must communicate with each other. Often, these services reside on a completely different network or server, and yet the messages still need to be delivered quickly, efficiently, and with optimal security.

Decades ago, the concept of a message queuing service solved this messaging distribution problem long before cloud computing even came into fruition. Services such as Microsoft Message Queuing were designed for servers in a data center to communicate with each other and delivers the messages needed by applications within the infrastructure. IBM MQ worked in a  similar way, making sure applications that are not on the same server or even in the same data center could send messages reliably, quickly, efficiently, and securely.

Amazon SQS (Simple Queue Service) is designed for a cloud computing environment and accomplishes a similar goal. It is a message queuing service that allows you to run business applications and services so that the messaging is not dependent on the IT infrastructure itself. This means the messages can run and fail independently of each other in a way that does not cause slowdowns, system-wide faults, or a disturbance within the application.

One of the key features of Amazon SQS is that it sends server-side encrypted messages, which means there are fewer risks in sending messages between applications and services that are running on the cloud computing environment. As you may have read in the news, one of the attack vectors for hackers is sometimes the messages and the communication between applications that run in the cloud, which exposes the data to criminals who can breach a data center. Because the messaging is encrypted, the risk is far less serious.

The messages use 256-bit AES (Advanced Encryption Standard) encryption to make sure messages arrive safely. SQS supports the AWS Key Management service to make sure encryption keys are managed effectively and AWS Cloudtrail to log encryption keys.

The advantage of this is that SQS meets the requirements for the banking industry, healthcare, and other sectors. Within those sectors, compliance and regulations dictate that you must use a key management system and generate logs that can be reproduced in the event of a lawsuit.

 

Benefits of Amazon SQS

Because of these features related to security, the most critical benefit to use SQS is that it is fully secure in terms of protecting the messages sent between web applications. In a large hospital, for example, there might be dozens of web applications used to manage patient health records and financial records, and all of those applications can run in the cloud for easy accessibility and scaling. Yet, they are also protected from a data breach because of the server-side encryption, and they meet the requirements of HIPAA (Health Insurance Portability and Accountability Act) in terms of data discovery and security standards.

In addition to this, a major advantage to using Amazon SQS is that it is available for web applications right now without the usual setup, installation, configuration, and build-outs. You don’t need to first purchase and build the messaging infrastructure and make sure it is all compliant with regulations, and you don’t need to purchase any of the message queuing service software that is typically needed to make it all work.

Once you start using Amazon SQS, you also don’t need to think about scaling the infrastructure, the compute environment, or the online storage required. This is all done “on the fly” as your needs change and as you increase (or decrease) the number of message queues you have. There’s no need to plan for the scaling or to build out additional servers or storage. As the web application requires more throughput for messages, or as you add more applications and more message queues, you can rely on SQS to scale as needed. This can involve only a few message queues or thousands, and involve one web app or hundreds.

Related to this is the benefit of how the cost structure works. There is a free tier for a smaller number of message queues, but as you scale up, you only pay for the infrastructure you actually need. This is a dramatic departure from the typical method, dating back to the 90s, where you had to build the data center to accommodate all future web application needs, then watch as those compute resources sat idle and unused most of the time as you scale up.

Suffice it to say, this also means fewer headaches for your staff in managing the message queuing service and the related servers and storage needed. Your staff can focus on the web application itself and features that meet the business needs, not the compute resources.