In questa presentazione spiegheremo come disegnare architetture elastiche e affidabili su AWS, usando le architetture web come punto di riferimento. Verranno anche coperti aspetti di scalabilità, sicurezza, gestione delle applicazioni e copertura globale.
2. Nicola Previati – previati@amazon.com
Mario Vetrano – mvetrano@amazon.com
3. I tuoi feedback sono importanti
Raccontaci:
Cosa ti piace , cosa non ti piace
Cosa vorresti ascoltare
durante questi webinar
Quali servizi vorresti vedere offerti da AWS
4. Mission di AWS
Permettere ad Aziende e Sviluppatori
di creare applicazioni complesse e
scalabili attraverso l’utilizzo di servizi
web*.
*Quello che oggi viene comunemente chiamato “cloud”
9. Una Copertura Globale
Region
US-WEST (N. California) EU-WEST (Ireland)
ASIA PAC (Tokyo)
ASIA PAC (Singapore)
US-WEST (Oregon)
SOUTH AMERICA (Sao Paulo)
US-EAST (Virginia)
GOV CLOUD
ASIA PAC (Sydney)
11. Edge Location
Dallas(2)
St.Louis
Miami
JacksonvilleLos Angeles (2)
Palo Alto
Seattle
Ashburn(2)
Newark
New York (3)
Dublin
London(2)
Amsterdam(2)
Stockholm
Frankfurt(2)
Paris(2)
Singapore(2)
Hong Kong(2)
Tokyo(2)
Sao Paulo
South Bend
San Jose
Osaka
Milan
Sydney
Una Copertura Globale
Seoul
Mumbai
Chennai
18. 503
Service Temporarily Unavailable
The server is temporarily unable to service
your request due to maintenance downtime or
capacity problems. Please try again later.
19. 503
Service Temporarily Unavailable
The server is temporarily unable to service
your request due to maintenance downtime or
capacity problems. Please try again later.
28. Cosa vogliono gli utenti…
Una navigazione
rapida e veloce
Un sito sempre
disponibile ed
accessibile
29. Cosa vogliono gli utenti…
Una navigazione
rapida e veloce
Un sito sempre
disponibile ed
accessibile
Una applicazione
personalizzata e
ricca di contenuti
30. Cosa vogliono gli utenti…
Una navigazione
rapida e veloce
Un sito sempre
disponibile ed
accessibile
Una applicazione
personalizzata e
ricca di contenuti
Nuove funzionalità
introdotte spesso e
rapidamente
31. Architetture web scalabili e robuste
Una navigazione
rapida e veloce
Un sito sempre
disponibile ed
accessibile
Una applicazione
personalizzata e
ricca di contenuti
Nuove funzionalità
introdotte spesso e
rapidamente
34. Regola 2: Servire le richieste velocemente
Regola 1: Servire tutte le richieste web
Regola 3: Gestire richieste a qualsiasi scala
Regola 4: Semplificare l’architettura con i servizi
Regola 5: Automatizzare la gestione operativa
Regola 6: Sfruttare le unicità del Cloud
35. DNS Applicazione Dati
Regola 1: Servire tutte le richieste web
a) Fate in modo che le richieste raggiungano la vostra applicazione
38. DNS Applicazione DatiRichieste
…tutto quello che
sta dietro diventa
irrilevante
Se i Client non
riescono a risolvere
il vostro indirizzo …
Regola 1: Servire tutte le richieste web
a) Fate in modo che le richieste raggiungano la vostra applicazione
39. DNS Applicazione DatiRichieste
“SLA per
Disponibilità
al 100%”
Route53
Funzionalità Dettegli
Globale Grazie alla distribuzione delle edge location AWS sul globo garantisce una
risoluzione dei nomi veloce ed affidabile
Scalabile Scalabilità automatica in base al volume di query
Routing basato sulla
latenza
Supporta la risoluzione degli endpoint in base alla latenza, rendendo
possibile la distribuzione delle applicazioni su più Region
Integrato L’integrazione nativa con gli altri servizi AWS permette a Route 53 di
operare come punto d’ingresso verso ELB, EC3 ed S3
Sicuro L’integrazione nativa con IAM consente un controllo granulare
sull’accesso ai record DNS
http://aws.amazon.com/route53/sla
Regola 1: Servire tutte le richieste web
a) Fate in modo che le richieste raggiungano la vostra applicazione
40. DNS Applicazione DatiRichieste
a) Fate in modo che le richieste raggiungano la vostra applicazione
b) Fate in modo che le richieste vengano processate all’arrivo
Route53
Regola 1: Servire tutte le richieste web
41. Region
Elastic
Load
Balancer Region
Availability Zone
Availability Zone
Availability Zone
Availability Zone
Route53
Elastic load balancing
Multi-availability zone
Multi-region
DNS Applicazione DatiRichieste
a) Fate in modo che le richieste raggiungano la vostra applicazione
b) Fate in modo che le richieste vengano processate all’arrivo
Regola 1: Servire tutte le richieste web
42. Region
DNS Applicazione DatiRichieste
a) Fate in modo che le richieste raggiungano la vostra applicazione
b) Fate in modo che le richieste vengano processate all’arrivo
c) Fate in modo di fornire i dati in risposta alle richieste
Elastic
Load
Balancer Region
Availability Zone
Availability Zone
Availability Zone
Availability Zone
Route53
Regola 1: Servire tutte le richieste web
43. Region
Elastic
Load
Balancer
Route53
Region
Availability Zone
Availability Zone
Availability Zone
Availability Zone
Multi-AZ RDS
(Master-slave)
Inter-region
replication
Read-replica
DNS Applicazione DatiRichieste
a) Fate in modo che le richieste raggiungano la vostra applicazione
b) Fate in modo che le richieste vengano processate all’arrivo
c) Fate in modo di fornire i dati in risposta alle richieste
Regola 1: Servire tutte le richieste web
44. Regola 2: Servire le richieste velocemente
Regola 1: Servire tutte le richieste web
Regola 3: Gestire richieste a qualsiasi scala
Regola 4: Semplificare l’architettura con i servizi
Regola 5: Automatizzare la gestione operativa
Regola 6: Sfruttare le unicità del Cloud
50. a) Scegliete il percorso più veloce
b) Alleggerite gli application server
London
Milan
NY
Contenuti serviti da S3
/images/*
3
Contenuti serviti da EC2
*.php
2
CNAME singolo
www.miosito.com
1
CloudFront
Content Delivery Network (CDN) globale
che permette una facile distribuzione dei
contenuti agli utenti finali garantendo
bassa latenza, alta velocità di
trasferimento dati e nessun commitment
di utilizzo.
Regola 2: Servire le richieste velocemente
51. Senza CloudFront
I web/application server su EC2 assorbono il carico di
traffico generato dalle richieste degli utenti
a) Scegliete il percorso più veloce
b) Alleggerite gli application server
Regola 2: Servire le richieste velocemente
52. Con CloudFront
Il carico dovuto alle richieste degli
utenti viene assorbito da CloudFront,
mentre i cluster EC2 possono fare
down scale
Offload
Scale
Down
a) Scegliete il percorso più veloce
b) Alleggerite gli application server
Regola 2: Servire le richieste velocemente
54. a) Scegliete il percorso più veloce
b) Alleggerite gli application server
c) Usate la cache dove potete
ElastiCache
Mette a disposizione un livello di
caching compatibile con Memcached
Permette di servire sia i contenuti con
accesso frequente che quelli con
richieste sporadiche tramite un cluster
di cache scalabile
Permette di ridurre il carico di lavoro
dei database e di altri server
nell’infrastruttura
Regola 2: Servire le richieste velocemente
55. a) Scegliete il percorso più veloce
b) Alleggerite gli application server
c) Usate la cache dove potete
d) Ottenete latenze dell’ordine dei millisecondi nei casi in cui conta
Scala
PerformanceQuerysulDatabase
Consistenza desiderata, predicibilità
Regola 2: Servire le richieste velocemente
56. Aumentando la scala
dell’applicazione le
performance
decrescono
a) Scegliete il percorso più veloce
b) Alleggerite gli application server
c) Usate la cache dove potete
d) Ottenete latenze dell’ordine dei millisecondi nei casi in cui conta
Scala
PerformanceQuerysulDatabase
Consistenza desiderata, predicibilità
Regola 2: Servire le richieste velocemente
57. Problemi di gestione
Data sharding
Data caching
Provisioning
Cluster management
Fault management
Aumentando la scala
dell’applicazione le
performance
decrescono
a) Scegliete il percorso più veloce
b) Alleggerite gli application server
c) Usate la cache dove potete
d) Ottenete latenze dell’ordine dei millisecondi nei casi in cui conta
Scala
PerformanceQuerysulDatabase
Consistenza desiderata, predicibilità
Regola 2: Servire le richieste velocemente
58. Performance delle Query con Dynamo DB
Performance delle
Query con DB
relazionali
DynamoDB
Bassa latenza
Larga scala
Nessun onere amministrativo
Performance predicibili
a) Scegliete il percorso più veloce
b) Alleggerite gli application server
c) Usate la cache dove potete
d) Ottenete latenze dell’ordine dei millisecondi nei casi in cui conta
Scala
PerformanceQuerysulDatabase
Regola 2: Servire le richieste velocemente
59. Latenza media dell’ordine dei millisecondi
lato server
Utilizza dischi allo stato solido ed è costruito
per mantenere latenze consistenti e veloci su
ogni scala d’utilizzo
Performance delle Query con Dynamo DB DynamoDB
Bassa latenza
Larga scala
Nessun onere amministrativo
Performance predicibili
a) Scegliete il percorso più veloce
b) Alleggerite gli application server
c) Usate la cache dove potete
d) Ottenete latenze dell’ordine dei millisecondi nei casi in cui conta
Scala
PerformanceQuerysulDatabase
Regola 2: Servire le richieste velocemente
60. Regola 2: Servire le richieste velocemente
Regola 1: Servire tutte le richieste web
Regola 3: Gestire richieste a qualsiasi scala
Regola 4: Semplificare l’architettura con i servizi
Regola 5: Automatizzare la gestione operativa
Regola 6: Sfruttare le unicità del Cloud
61. Regola 3: Gestire richieste a qualsiasi scala
a) Effettuate Scale up
Scalare in verticale
da $0.02/ora
Unità di base per la capacità di calcolo
Diverse opzioni per CPU, memoria e dischi locali
17 tipologie di istanze già disponibili, dalla micro fino alle
cluster compute o istanze con supporto SSD
Effettuate Scale up con Elastic Compute Cloud (EC2)
62. a) Effettuate Scale up
b) Effettuate Scale out
Trigger
auto-scaling
policy
as-create-auto-scaling-group MyGroup
--launch-configuration MyConfig
--availability-zones eu-west-1a
--min-size 4
--max-size 200
Auto-scaling
Permette il ridimensionamento automatico di cluster di
calcolo in base a trigger definibili
Regola 3: Gestire richieste a qualsiasi scala
63. Manuale
Tramite chiamata alle API o CLI per
lanciare/terminare istanze; bisogna solo
specificare la varizione in +/- nella
capacità di calcolo
Schedulato
Effettuate Scale up/down schedulati su
base di data e ora
In base a trigger
Scalate la capacità di calcolo in risposta
ad allarmi pre configurati su attività di
monitoraggio in tempo reale
Ribilaciamento automatico
Le istanze vengono automaticamente
avviate/terminate per assicurare criteri di
bilanciamento definiti fra diverse AZ
a) Effettuate Scale up
b) Effettuate Scale out
Regola 3: Gestire richieste a qualsiasi scala
64. Manuale
Tramite chiamata alle API o CLI per
lanciare/terminare istanze; bisonga solo
specificare la varizione in +/- nella
capacità di calcolo
Schedulato
Effettuate Scale up/down schedulati su
base di data e ora
In base a trigger
Scalate la capacità di calcolo in risposta
ad allarmi pre configurati su attività di
monitoraggio in tempo reale
Ribilaciamento automatico
Le istanze vengono automaticamente
avviate/terminate per assicurare criteri di
bilanciamento definiti fra diverse AZ
Scalate la capacità manualmente
in modo preventivo
Es: prima di un evento marketing
aggiungiere 10 istanze aggiuntive per
supportare il traffico addizionale
Scalate la capacità in modo
regolare e programmato
Es: scalare da 0 a 2 istanze ogni notte per
processare i messaggi nella coda SQS e
nuovamente da 2 a 0 istanze a fine lavoro
Sclate in modo dinamico in base
a metriche personalizzate
ES: in base alla lunghezza di una coda SQS,
carico medio della CPU, latenza ELB
Scalate per mantenere la
capacità di calcolo fra AZ
ES: Mantenere invariata la disponibilità di
istanze nel caso una AZ diventi
indisponibile
a) Effettuate Scale up
b) Effettuate Scale out
Regola 3: Gestire richieste a qualsiasi scala
65. a) Effettuate Scale up
b) Effettuate Scale out
c) Componete la scalabilità
Elastic Block Store
Fino a 4000 Provisioned IOPS
per ogni volume EBS
Performance predicibili per workload
intensivi come i database
DynamoDB
Performance predicibili in lettura/scrittura
definibili a livello di singola tabella
Scalabilità e predicibilità gestibili via API e
Console web
Regola 3: Gestire richieste a qualsiasi scala
66.
67. “AWS ci ha dato la flessibilità di portare online
un massiccio quantitativo di risorse in un breve
arco temporale, consentendoci anche di farlo
con agevolezza dal punto di vista operativo.
AWS è senza dubbio il Cloud Provide di
riferimento per Shazam”
Jason Titus,
CTO
DynamoDB:
Più di 500,000 scritture al
secondo
Amazon EMR:
Più di 1 milione di scritture
per secondo
68. Regola 2: Servire le richieste velocemente
Regola 1: Servire tutte le richieste web
Regola 3: Gestire richieste a qualsiasi scala
Regola 4: Semplificare l’architettura con i servizi
Regola 5: Automatizzare la gestione operativa
Regola 6: Sfruttare le unicità del Cloud
70. Infrastruttura
nel Cloud AWS
Sul vostro
Business
Più tempo per focalizzarsi
sul vostro business
Configurare gli asset
nel Cloud
70%
30%70%
Infrastruttura
in “casa”
30%
Per la gestione e manutenzione
delle infrastrutture
Regola 4: Semplificare l’architettura con i servizi
71. Relational Database Service
Database-as-a-Service
Senza installare o gestire le istanze di database
Configurazioni scalabili e in alta affidabilità
DynamoDB
Database NoSQL con throughput definito
Bassa latenza, alte prestazioni
Architettura distribuita in alta affidabilità
Usare RDS
per i database
Usare DynamoDB per
database chiave-
valore a bassa latenza
Regola 4: Semplificare l’architettura con i servizi
72. Amazon SQS
Task da processare
Risultati ottenuti
Amazon SQS
Messaggistica a code affidabile e
scalabile per scambiare messaggi tra
istanze
Task A
Task B
(Auto-scaling)
Task C
2
3
1
Simple Workflow
Coordinare attività tra applicazioni in
modo affidabile
Risorse all’interno o all’esterno di AWS
Gestisce lo stato in architetture
complesse e distribuite
Porta workflow e
processi complessi nel
Cloud con SWF
Messaggistica a code
affidabile, senza
installare nulla
Regola 4: Semplificare l’architettura con i servizi
73. Cloud Search
Un motore di ricerca elastico
basato sul motore Amazon A9
Un servizio gestito
con funzionalità avanzate
Scala automaticamente
Document
Server
Risultati
Search
Server
Un motore di ricerca
pronto senza dover
installare nulla
Analizza grandi volumi
di dati in modo
efficiente con EMR
Elastic MapReduce
Un cluster Hadoop elastico
Integrato con S3 e DynamoDB
Script di analisi con Hive e Pig
Può usare istanze spot
per ottimizzare i costi
Regola 4: Semplificare l’architettura con i servizi
74.
75. “Amazon CloudSearch ci ha permesso di fornire
nuove funzionalità di ricerca. I nostri clienti
possono ora trovare quello che cercano più
velocemente e più semplicemente di prima…
…Abbiamo evitato molti mesi di
implementazione e sviluppo usando Amazon
Cloudsearch”
Don MacAskill
CEO & Chief Geek
SmugMug
76.
77.
78. Regola 2: Servire le richieste velocemente
Regola 1: Servire tutte le richieste web
Regola 3: Gestire richieste a qualsiasi scala
Regola 4: Semplificare l’architettura con i servizi
Regola 5: Automatizzare la gestione operativa
Regola 6: Sfruttare le unicità del Cloud
80. Regola 5: Automatizzare la gestione operativa
a) Tutto in AWS è programmabile
b) Deployment con un solo “click”
CloudFormation
Crea uno “stack” in automatico
Un framework per automatizzare le risorse AWS
Funzionalità Descrizione
Piattaforme supportate Le risorse AWS, da EC2 allo IAM
Creazione delle risorse Crea le risorse AWS e aggiorna
sullo stato di avanzamento
Dichiarativo Descrivi lo stack con una sintassi JSON che puoi
mettere sotto “source control”
Personalizzabile Accetta parametri nella creazione di uno stack
81. Regola 5: Automatizzare la gestione operativa
a) Tutto in AWS è programmabile
b) Deployment con un solo “click”
c) Disegna per l’alta affidabilità con procedure di “auto riparazione”
Personalizza l’avvio delle
istanze
L’istanza può configurarsi
dinamicamente
chiedendosi all’avvio
“cosa devo fare?”
Gestisce la capacità
delle istanze
Le istanze non
funzionanti sono
sostituite nel gruppo
Monitora cosa accade,
crea allarmi che attivano
azioni correttive
Metriche standard o custom
su cui creare allarmi
Rispondi con azioni che
automatizzano la gestione
Avvio Auto Scaling CloudWatch
82. Regola 5: Automatizzare la gestione operativa
a) Tutto in AWS è programmabile
b) Deployment con un solo “click”
c) Disegna per l’alta affidabilità con procedure di “auto riparazione”
83. Regola 2: Servire le richieste velocemente
Regola 1: Servire tutte le richieste web
Regola 3: Gestire richieste a qualsiasi scala
Regola 4: Semplificare l’architettura con i servizi
Regola 5: Automatizzare la gestione operativa
Regola 6: Sfruttare le unicità del Cloud
84. Regola 6: Sfruttare le unicità del Cloud
a) Ottimizza i costi con il tipo di istanza migliore
85. Istanze Unix/Linux
a partire da $0.02/ora
Paghi solo quello che usi
Flessibilità e costi ridotti
Nessun costo inizale
o contratti a lungo termine
Casi d’Uso:
Applicazioni con carico impredicibile
o a breve termine
Ambienti di sviluppo o test
Istanze On-demand
Ad 1 o 3 anni
Paghi un costo inizale, il costo oraario è
sostanzialmente ridotto
Basso costo e predicibilità delle spese
Assicura la disponibilità di potenza
computazionale quando richiesta
Casi d’Uso:
Applicazioni con utilizzi stabili o predicibili
Applicazioni che richiedono capacità riservata,
disponibile quando serve
Istanze Reserved
Fai una offerta sulla capacità EC2
non utilizzata
Il prezzo delle istanze Spot è basato su
domanda/offerta ed è determinato
automaticamente
Gestione efficiente di carichi di lavoro
dinamici ed “ampi”
Casi d’Uso:
Applicazioni con periodo di esecuzione flessibile
Applicazioni che necessitano di un costo ridotto
per essere utili
Istanze Spot
Regola 6: Sfruttare le unicità del Cloud
a) Ottimizza i costi con il tipo di istanza migliore
87. a) Ottimizza i costi con il tipo di istanza migliore
b) Analizza i dati rapidamente con Elastic MapReduce
Regola 6: Sfruttare le unicità del Cloud
Elastic MapReduce
Un cluster Hadoop elastico
Integrato con S3 e DynamoDB
Script di analisi con Hive e Pig
Può usare istanze spot per ottimizzare i costi
Funzionalità Descrizione
Scalabile Usa il numero di istanze di cui hai bisogno.
Modifica il numero di istanze
durante l’esecuzione dell’analisi
Integrato con
altri servizi
S3 come sorgente e/o destinazione dell’analisi
Integrato con DynamoDB
Piattaforme
supportate
Supporta linguaggi come Hive e Pig per definire le
procedure di analisi
Permette di definire procedure complesse in
Cascading, Java, Ruby, Perl, Python, PHP, R, or C++
Efficiente Può usare istanze Spot
Monitoring Verifica l’andamento dei “job”
dalla console di gestione
88. a) Ottimizza i costi con il tipo di istanza migliore
b) Analizza i dati rapidamente con Elastic MapReduce
Elastic
MapReduce
Code Name
node
Output
S3
S3 + DynamoDB
Elastic cluster
HDFS
Queries
+ BI
Via JDBC, Pig, Hive
Dati in Ingresso
Regola 6: Sfruttare le unicità del Cloud
89. Funzionalità “powered by”
Amazon Elastic MapReduce:
People Who Viewed this Also Viewed
Review highlights
Auto complete as you type on search
Search spelling suggestions
Top searches
Ads
200 job Elastic MapReduce al giorno
che analizzano 3TB di dati
90. “Con AWS i nostri sviluppatori possono fare cose che
prima non potevano…
…I nostri amministratori di sistema possono focalizzarsi
su altri aspetti.”
Dave Marin
Search and data-mining engineer
91. Istanze Cluster Compute
Ambienti HVM
Processori Intel® Xeon® E5-2670
10 Gigabit Ethernet
Cluster Compute
80 EC2
Compute Units
60GB RAM
3TB Local
Disk
Network placement group
Le istanze Cluster compute in un “Placement Group” hanno
una rete a bassa latenza con 10 Gbps bi-direzionale
10Gbps
Regola 6: Sfruttare le unicità del Cloud
a) Ottimizza i costi con il tipo di istanza migliore
b) Analizza i dati rapidamente con Elastic MapReduce
c) Crea un “super computer” quando ne hai bisogno
92. Regola 2: Servire le richieste velocemente
Regola 1: Servire tutte le richieste web
Regola 3: Gestire richieste a qualsiasi scala
Regola 4: Semplificare l’architettura con i servizi
Regola 5: Automatizzare la gestione operativa
Regola 6: Sfruttare le unicità del Cloud
93. Cosa vogliono gli utenti…
Una navigazione
rapida e veloce
Un sito sempre
disponibile ed
accessibile
Una applicazione
personalizzata e
ricca di contenuti
Nuove funzionalità
introdotte spesso e
rapidamente
96. Con AWS
Capacità elastica,
si paga solo quello
che si usa
✔ Una copertura
globale in alta
affidabilità
✔
Gestione
agile ed
automatizzabile
✔
97. Con AWS
Capacità elastica,
si paga solo quello
che si usa
✔ Una copertura
globale in alta
affidabilità
✔
Gestione
agile ed
automatizzabile
✔ Storage robusto ed
efficiente, big data
& analisi dei dati
✔
98. NASA TV Route 53 DNS
Multi-region & AZ
Elastic Loadbalancing
Amazon Live Streaming
Cloud Front
Cloud Formation