SNS is Simple Notification Service. SNS is an AWS managed web service which is easy to set up, operate, and send a notification from the cloud platform like AWS. It provides developers with the highly scalable, cost-effective, and flexible capability to publish messages from an application and send them to other applications.
Feature of SNS:
- SNS is fast, flexible, fully managed push notification service.
- It is a web service that coordinates and manages the delivery or sending of messages to subscribing endpoints or clients.
- It allows for sending individual messages or fan-out messages to a large number of recipients or to other distributed AWS services.
→ Messages published to an SNS topics will be delivered to the subscriber immediately
→ Inexpensive, pay as-you-go model with no upfront cost.
- Reliable-At least three copies of the data are store across multiple AZ in same region.
- It is a way of sending messages when you are using auto scaling, it triggers an SNS service which will email you that ‘’your EC2 instance is growing’’ or “your EC2 instance is reducing”.
Amazon SNS is a web service that manages sending messages to the subscribing endpoint. In AWS SNS we have two clients:
Publisher are also known as producers that produce and send the message to the SNS. Publisher is the one who has all privileges which can manage who can send messages on topic.
Subscribers are those who receive the messenger notifications from AWS SNS (Webservers, email address, Amazon SQS Queues, AWS Lambda).
- It is a logical access point and communication channel.
- Each topic has a unique name.
- A topic name is limited to 256 alphanumeric characters.
- The topic name must be unique within the AWS account
- Each topic is assigned and AWS ARN once it gets created.
- A topic can support subscribers and notification deliveries over multiple protocols.
Delivery Formats/Transport protocols (Endpoints)
- AWS Lambda
Limitations of AWS SNS:
- By default, only the topic owner (who created it) can publish to the SNS topic.
- The owner can set/change permissions to one or more users (with valid AWS ID) to publish this topic.
- Only the owner of the topic can grant/change permissions for the topic.
- Subscribers can be those with/without AWS ID. Only subscribers with AWS ID can request Subscription.
- Both publishers and subscribers can use SSL to help secure the channel to send and receive messages.
Supported Push Notification Platforms:
- Amazon device messaging
- Apple push notification service
- Google cloud messaging
- Windows push notification service
- Baidu cloud push for android
SNS Topic can have subscribers from any supported push notification platform as well as any other endpoint type such as SMS or Email.
When you publish a notification to a topic, SNS will send identical copies of that message to each endpoint subscribed to the topic.
Amazon SNS alternatives:
- Amazon Kinesis Data Stream
- Amazon Managed Queue Service (AWS MQ)
- Apache Kafka
- Twilio(Third Party)
- Pusher(Third Party)
Amazon SNS Pricing
- Publish action- Each 64kb of request payload count as one request so, 256kb payload will changed as four request.
- Mobile push notification- For e.g. $0.50/million request.
- SMS- Price depends on country
- Email – $2/100,000
- HTTP/s Notification – $0.60/million
- SQS and lambda calls are free. These are charged at SQS and
- Data transfer.
AWS SNS SETUP
- Login to your amazon console is in the services tab you will find SNS click on it.
- Now we need to create a topic. Basically it is a message channel when you publish a message to a topic it fans-out the message to all subscribed endpoints.
- After the topic is created it will be shown to you in your next tab and the rest of the basic details you can set as default.
- Now in the access policy section we need to define who can publish the topic. In my case I am taking default only the topic owner can publish option.
- Now define who can subscribe to this topic in my case I am taking everyone can subscribe.
- Now in section delivery retry policy I am using the default options.
- Now in delivery status logging I am using default options because we don’t want to collect logs and the tags this time we are not giving any tag to this service. Once it is done click create topic.
- Once it is created you will see a successful message that topic is created successfully now you can create subscription and send messages to them from this topic.
- Now click on create subscription to create subscription.
- Now create a subscription select protocol which you want to choose. In my case I am taking email.
- In the endpoint enter your email on which we want a message. And rest of the options use default. Once it is done click create subscription.
- Now on your email you will receive a mail for subscription. So click on confirm subscription.
- Once subscription is confirmed the status will be changed to confirm.
- Now select subscription and then click on publish message to send messages.
- Now fill the subject and message body whatever message we want to send to our subscribers.
- Once all the details fill click on publish message.
- Once you receive a message published to a topic successfully then we will receive mail in your inbox. So in this way we can send messages to our subscribers.
Send text messaging from SNS
Amazon SNS lets you send SMS text messages to any phone number.
- For sending sms text messages select text messaging from the left panel in the SNS service and click on publish text message.
- In the next tab you will have to choose message type (i.e. Transactional & promotional) I am using promotional messages for now.
- After this fill the mobile number and message you want to deliver to your customer.
- Once you click publish message it will send a message on your phone number.