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, 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
- 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
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.