A Beginners Guide to Application Services within AWS

AWS provides a suite of application services, such as SQS, SNS, SES and SWF. Each service providing various features and rich toolsets to empower the development and design of your applications.

SQS (Simple Queue Service)

SQS is a web service that provides access to a distributed message queue. Messages are stored in the queue, these messages are then are retrieved from the queue for processing via the SQS API. You can think of SQS in the same light as other message queue programs such a RabbitMQ and Redis.

Within SQS there are 2 terms to note,

  • Visibility Timeout (default 30secs) – Triggered once the message is delivered, and prevents any further processing (from other worker nodes) during the timeout. This gives the processing client enough time to delete the message, whilst also providing a mechanism for recovery should the processing client fail.
  • Retention Period (default 4days, max 14days) – Messages are removed after the default retention period.

The other additional points and features to SQS are,

  • Messages can consist of up to 256KB of text.
  • Guarantees delivery of each message at least once.
  • Each queue supports multiple readers and writers.
  • Does NOT provide FIFO, i.e messages are not processed sequentially.
  • Messages are ALWAYS pulled from the queue.

SES (Simple Email Service)

SES is an email platform providing a cost-effective way to send and receive email using your own email addresses and domains[1], whilst eliminating the various complexities around managing an email based infrastructure.
SES integrates into other AWS services such as,

  • SNS, in order to publish delivery notifications
  • S3 for storing emails
  • Lambda for triggering functions based on received emails
  • KMS for encrypting received email.

On a final note, It is also worth mentioning that SES supports Easy DKIM.

SWF (Simple Workflow Service)

SWF is used to coordinate various services across your distributed system.
Simple Work Flow provides the concept of Actors. There are 3 types of Actors,

  • Workflow Starters – Initiates a workflow
  • Deciders – Controls the flow of activity tasks
  • Activity Workers – Executes the activity tasks

Additionally, the other key points to note are,

  • Unlike SQS which has up to a 14 day retention period SWF’s retention period of tasks is 1 year.
  • Its is consumed via a task-oriented API
  • Tasks are assigned only once.

SNS (Simple Notification Service)

SNS is a service that provides the ability to publish messages from an application to either an application or a set of subscribers. Notifications can be,

  • Pushed to mobiles directly
  • Sent via SMS
  • Sent via Email
  • Published via SQS queues
  • Sent to any HTTP Endpoint
  • Used to trigger Lambda functions

Additionally, SNS

  • Allows you to group multiple recipients using topics
  • For resilience messages are stored across multiple AZ’s
  • SNS is push, no polling, making it instantaneous

Elastic Transcoder

The Elastic Transcoder service converts media files into predefined formats for phones, tablets and PCs. Billing is based on the minutes taken to transcode along with the resolution it is transcoded at.

References

[1] http://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html

Rick Donato

Want to become a certified AWS expert?

Here is our hand-picked selection of the best courses you can find online:
Ultimate AWS Certified Cloud Practitioner course
Ultimate AWS Certified Solutions Architect Associate course
Ultimate AWS Certified Developer Associate course
and our recommended certification practice exams:
AlphaPrep Practice Tests - Free Trial