prd-009 - amazon simple notification service (sns)

19
Community - Cloud AWS su Google+ Cloud AWS Amazon Web Services cloud-aws.com Servizio Amazon SNS Hangout 09 del 18.03.2014 Davide Riboldi Massimo Della Rovere Oggi vedremo il servizio di Amazon SNS per la gestione delle notifiche tra applicazioni e servizi esterni. CLOUD AWS #cloudaws

Upload: cloud-aws

Post on 05-Aug-2015

83 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: PRD-009 - Amazon Simple Notification Service (SNS)

Community - Cloud AWS su Google+

Cloud AWS

Amazon Web Services

cloud-aws.com

Servizio Amazon SNS

Hangout 09 del 18.03.2014

● Davide Riboldi● Massimo Della Rovere

Oggi vedremo il servizio di Amazon SNS per la gestione delle notifiche tra applicazioni e servizi esterni.

CLOUD AWS

#cloudaws

Page 2: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Descrizione generale

Cloud AWS

● Amazon SNS è un servizio che coordina e gestisce la consegna o l’invio di messaggi verso degli endpoint chiamati anche client. Ci sono due tipi di client:

● I publisher comunicano in maniera asincrona verso i subscriber inviando un messaggio attraverso un punto d’accesso logico chiamato topic.

● I subscriber (web server, indirizzi email o code SQS) ricevono i messaggi o le notifiche attraverso uno dei protocolli supportati (SQS, HTTP/S, email, SMS) una volta che questi vengono associati ad un topic.

Page 3: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Descrizione generale

Cloud AWS

Subscriberendpoint (SQS)

Subscriberendpoint (HTTP/S)

Subscriberendpoint (email)

Subscriberendpoint (sms)Simple Notification Service

(Amazon SNS)

SNS Topic

Publisherendpoint

Publisherendpoint

Publisherendpoint

Page 4: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Descrizione generale

Cloud AWS

● Quando si utilizza Amazon SNS (come proprietario) è possibile creare un topic e controllare gli accessi con delle policy che determinano quale publisher e quale subscriber possono comunicare con il topic.

● Un publisher può inviare messaggi ad un topic che lui stesso ha creato, oppure verso un topic per il quale gli sono stati concessi i permessi di pubblicazione. Quindi anche topic al di fuori del proprio account.

Page 5: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Descrizione generale

Cloud AWS

● Invece di avere uno specifico indirizzo di destinazione per ogni messaggio inviato, un publisher invia il suo messaggio verso un topic. Amazon SNS abbina il topic ad una lista di subscriber che lo hanno sottoscritto e invia un messaggio ad ognuno di loro.

● Ogni topic possiede un nome univoco che identifica l’endpoint in Amazon SNS, questo nome viene utilizzato dal publisher per postare i messaggi e dal subscriber per registrare le notifiche.

Publisherendpoint

Subscriberendpoint

nome univoco

Subscriberendpoint

Topic

Page 6: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Scenario “fanout”

Cloud AWS

● Si parla di uno scenario “fanout” quando in Amazon SNS un messaggio viene inviato ad un topic e questo viene replicato e mandato su più code Amazon SQS, endpoint HTTP o indirizzi email. Questo ci permette di sfruttare un sistema di elaborazione asincrono parallelo.

SNS Topic

Publisherendpoint

Subscriberendpoint

Subscriberendpoint

EC2

EC2

Page 7: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Scenario “fanout”

Cloud AWS

● Per esempio prendiamo in considerazione una applicazione di e-commerce, questa applicazione può essere sviluppata per inviare un messaggio SNS verso un topic ogni qual volta venga eseguito un ordine per un prodotto, le code di Amazon SQS sottoscritte al topic riceveranno una identica notifica per ogni nuovo ordine.

● Una istanza di Amazon EC2 collegata ad una di queste code potrebbe gestire l’elaborazione dell’ordine, mentre un’altra istanza EC2 potrebbe essere collegata ad data warehouse per l’analisi di tutti gli ordini ricevuti.

Page 8: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Scenario “fanout”

Cloud AWS

● Lo scenario “fanout” potrebbe anche essere utilizzato per replicare i dati inviati in produzione verso l’ambiente di sviluppo, è possibile migliorare il testing dell’applicazione continuando ad alimentare l’ambiente di sviluppo con dati reali che arrivano dalla produzione.

SNS Topic

Publisherendpoint

Subscriberendpoint

Subscriberendpoint

Produzione

Testing

Page 9: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Application and System Alert

Cloud AWS

● Gli avvisi di sistema o delle applicazioni sono delle notifiche che vengono innescate da delle soglie predefinite e inviano uno stato.

● Amazon SNS viene utilizzato da molti servizi presenti su AWS per ricevere notifiche immediate quando si verificano degli eventi.

● Il sistema delle notifiche può essere utilizzato anche per innescare dei processi di autoscaling al verificarsi di determinati eventi.

Page 10: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Notifiche utente

Cloud AWS

● Significa trasmettere messaggi ad individui o gruppi attraverso email o SMS. Ad esempio è possibile sviluppare una applicazione che utilizzi amazon SNS per inviare delle news ad utenti che hanno sottoscritto un servizio via email o sms.

SNS Topic

Publisherendpoint

Subscriberendpoint

Subscriberendpoint

SMS

EMAIL

Page 11: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Creazione Topic

Cloud AWS

● Come abbiamo già detto un Topic è un canale di comunicazione utilizzato per inviare messaggi e sottoscrivere le notifiche. Fornisce un punto di accesso per publisher e subscriber per comunicare tra di loro.

● Eseguire accesso console AWS.● Selezionare servizio SNS e regione.● Opzione Create Topic

Page 12: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Creazione Subscriber

Cloud AWS

● Per ricevere i messaggi pubblicati in un topic, bisogna iscrivere l’endpoint al topic. Quindi bisogna creare un subscriber, questo può essere un server, un indirizzo email o una coda SQS.

● Andare su My Subscriptions.● Premere Create New Subscription.● Scegliere il protocollo.● Specificare il valore di endpoint.● Confermare la sottoscrizione.

Page 13: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Creazione Publisher

Cloud AWS

● Come publisher possiamo utilizzare per fare delle prove direttamente la management console, che mette a disposizione un semplice tools per spedire i messaggi al topic che abbiamo appena creato.

● Selezionare il tasto publish.● Specificare soggetto e descrizione.● Spedire il messaggio al topic.● Specificare il valore di endpoint.● Controllare messaggio ricevuto.

Page 14: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Messaggi e protocolli

Cloud AWS

● Se esistono diversi subscriber che si sono registrati al topic e questi hanno dei protocolli di comunicazione diversi, è possibile spedire al topic un messaggio con differenti contenuti in base al protocollo.

● Ad esempio possiamo mandare un messaggio molto breve per la spedizione di un SMS e uno più lungo per una spedizione di posta elettronica.

● Alcuni protocolli supportati sono http, https, email, SMS, JSON, SQS ect. Ognuno di questi può avere un messaggio con contenuti diversi con lo stesso invio.

Page 15: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Cancellazione configurazioni

Cloud AWS

● In questo esempio abbiamo visto come creare un topic, configurare un subscriber e utilizzare un publisher, adesso vediamo come cancellare il tutto.

● Dalla management console se selezionate il servizio di Amazon SNS trovate un menu chiamato “Topics”, una volta selezionato otterrete la lista dei subscriber registrati da dove potete selezionare le opzioni.

● Troverete l’opzione “delete subscription” e una volta che il topic rimane senza sottoscrizioni potete usare anche l’opzione chiamata “delete topic”.

Page 16: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Gestione degli accessi

Cloud AWS

Amazon SNS permette di gestire la sicurezza del servizio attraverso delle policy. Queste policy definiscono i diritti di accesso alle varie funzionalità del servizio, le possibilità sono tantissime vediamone alcune:

● Autorizzare un’altro account AWS.● Limitare solo un protocollo.● Permettere la pubblicazione SQS.

Page 17: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Mobile Push Notification

Cloud AWS

● Con Amazon SNS è possibile inviare messaggi di notifica direttamente verso una app installata su un device mobile. I messaggi di notifica inviati verso un endpoint mobile possono apparire nell’app come un messaggio di allarme, avvisi sonori o badge updates.

● I servizi di push notification supportati da Amazon:

○ Apple Push Notification Service (APNS)○ Apple Push Notification Service Sandbox (APNS_SANDBOX)○ Amazon Device Messaging (ADM)○ Google Cloud Messaging for Android (GCM)

Page 18: PRD-009 - Amazon Simple Notification Service (SNS)

Amazon SNS - Mobile Push Notification

Cloud AWS

SNS Topic

Publisherendpoint

Subscriberendpoint

Push Notification

SystemAPNS GCM

ADM

● I servizi di notifica come APNS e GCM mantengono il collegamento alle app e ai dispositivi mobili ad essi associati per l’utilizzo dei loro servizi. Quando le app e i dispositivi mobili vengono registrati al servizio, questi restituiscono un device token. Amazon SNS utilizza il device token per la creazione dell’endpoint mobile e per potergli inviare i messaggi di notifica.