Amazon Simple Notification Service (SNS) is a new web service that makes it possible to set up and send notifications from the cloud. As the service runs on Amazon's EC there are the usual advantages of cloud hosting i.e. no up-front costs and you only pay for the resources you need and actually use. Of course any application needing a cloud hosted messaging service has a requirement to send lots of messages in as close to realtime as possible.
SNS can be used to publish messages from an application and deliver them to subscribers or other applications. It provides a web services interface that can be used to create topics developers want to notify applications (or people) about, subscribe clients to these topics, publish messages, and have these messages delivered over clients' protocol of choice (i.e. HTTP, email, etc.). The messages are delivered using a "push" mechanism that eliminates the need to periodically check or "poll" for new information and updates.
Amazon suggests that SNS can be used to monitoring applications, workflow systems, time-sensitive information updates, mobile applications, and many other - but really Amazon is hoping the the low startup cost will entice developers to think up new uses and applications based on push messaging.
The only costs of sending messages through SNS are a small per-request, notification delivery, and data transfer fee. You can even get started with SNS for free. Each month the first 100,000 Requests over HTTP and email respectively are free. Many applications, and certainly applications in their early stages of development, should be able to operate for free - again lowering the barrier to innovation. However you will still have to pay for the Data Transfer if you go over 1GByte per month (about $0.10 per GByte).
Using SNS is fairly simple. First your app creates a topic which acts as an access point which identifies a specific subject or event type. Clients subscribe to access points. Once a topic is created, the topic owner can set policies for it, such as limiting who can publish messages or subscribe to notifications, or specifying which notification protocols will be supported (i.e. HTTP/HTTPS, email). A single topic can support notification deliveries over multiple transport protocols.
Next you add subscribers to a topic: Subscribers specify the protocol format and end-point (URL, email address, etc.) for notifications to be delivered. Upon receiving a subscription request, SNS sends a confirmation message to the specified end-point, asking the subscriber to explicitly opt-in to receiving notifications from that topic. Opting-in can be done by calling an API, using a command line tool, or – for email notifications – simply clicking on a link.
Finally with the topic fully set up your app can publish messages / send out notifications.These are delivered by the SNS system running on the Amazon EC2 cloud.
Full pricing details are available at http://aws.amazon.com/sns.
To sign up for Amazon SNS and other AWS services, visit http://aws.amazon.com.