Webanwendungen sollen schnell, immer verfügbar, personalisiert sein und viele Features haben. Aber was heißt das für die Architektur der Anwendung auf Amazon Web Services. In diesem Webinar stellen wir anhand eines "Regelbuchs" Aufgaben vor, die eine Webanwendung erfüllen sollte und wie diese auf AWS erfüllt werden können.
9. Regel 1: Bedienen Sie alle Webanfragen
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 3: Skalieren Sie mit der Anfrageanzahl
Regel 4: Vereinfachung durch Dienste
Regel 5: Automatisieren Sie den Betrieb
Regel 6: Nutzen Sie die Eigenschaften der Cloud
11. Regel 1: Bedienen Sie alle Webanfragen
a) Stellen Sie sicher, dass die Anfragen an die Vordertür kommen
Anfrage
DNS
Anwendung
Daten
12. Regel 1: Bedienen Sie alle Webanfragen
a) Stellen Sie sicher, dass die Anfragen an die Vordertür kommen
Anfrage
DNS
Die Clients können
Ihren
Domainnamen nicht
auflösen?
Anwendung
Daten
…dann ist dies alles
irrelevant
13. Regel 1: Bedienen Sie alle Webanfragen
a) Stellen Sie sicher, dass die Anfragen an die Vordertür kommen
Anfrage
DNS
Anwendung
Feature
Global
“100%
verfügbar”
SLA
http://aws.amazon.com/route53/sla
Route53
Skalierbar
Latency based Routing
Integriert
Sicher
Daten
Details
Unterstützt durch die globalen AWS Edge Locations –
schnelle und zuverlässige DNS Auflösung
Skaliert automatisch abhängig von Abfragevolumen
Unterstützt Auflösung der Endpunkte auf Basis der
Latenz, ermöglicht Anwendungen in mehreren Regionen
Integration in andere AWS Dienste, Auflösung für Load
Balancer, S3 und EC2
Integration mit IAM ermöglicht detaillierte Kontrolle über
DNS Record Zugriff
15. Regel 1: Bedienen Sie alle Webanfragen
a) Stellen Sie sicher, dass die Anfragen an die Vordertür kommen
b) Machen Sie die Tür auf, wenn die Anfragen ankommen
Anfrage
Daten
Anwendung
DNS
Region
Availability Zone
Elastic Load Balancing
Mehrere Availability Zones
Mehrere Regionen
Availability Zone
Route53
Availability Zone
Elastic
Load
Balancer
Availability Zone
Region
16. Regel 1: Bedienen Sie alle Webanfragen
a) Stellen Sie sicher, dass die Anfragen an die Vordertür kommen
b) Machen Sie die Tür auf, wenn die Anfragen ankommen
c) Erstellen Sie eine Antwort aus den Daten
Anfrage
Anwendung
DNS
Daten
Region
Multi-AZ RDS
Availability Zone
(Master-Slave)
Replikation
zwischen
Regionen
Read Replicas
Availability Zone
Route53
Availability Zone
Elastic
Load
Balancer
Availability Zone
Region
17. Regel 1: Bedienen Sie alle Webanfragen
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 3: Skalieren Sie mit der Anfrageanzahl
Regel 4: Vereinfachung durch Dienste
Regel 5: Automatisieren Sie den Betrieb
Regel 6: Nutzen Sie die Eigenschaften der Cloud
18. Regel 2: Bedienen Sie Anfragen möglichst schnell
a) Wählen Sie die schnellste Route
Anfrage
Region
A
Route53
Region B
19. Regel 2: Bedienen Sie Anfragen möglichst schnell
a) Wählen Sie die schnellste Route
Anfrage
16ms
Region
A
Route53
92ms
Region B
20. Regel 2: Bedienen Sie Anfragen möglichst schnell
a) Wählen Sie die schnellste Route
Anfrage
16ms
Region
A
Route53
92ms
Region B
21. Regel 2: Bedienen Sie Anfragen möglichst schnell
a) Wählen Sie die schnellste Route
Anfrage
Region A DNS Eintrag
Route53
16ms
Region
A
Region B
22. Regel 2: Bedienen Sie Anfragen möglichst schnell
a) Wählen Sie die schnellste Route
b) Entlasten Sie die Anwendungsserver
CloudFront
3
Bedient von S3
/images/*
Weltweites Content Distribution Network
Einfache Verteilung von Inhalten an
Benutzer mit niedriger Latenz und hoher
Geschwindigkeit. Ohne Vertragsbindung
2
London
Bedient vonEC2
*.php
Paris
1
EinCNAME
www.mysite.com
NY
24. Regel 2: Bedienen Sie Anfragen möglichst schnell
a) Wählen Sie die schnellste Route
b) Entlasten Sie die Anwendungsserver
c) Cachen Sie wo Sie können
ElastiCache
Memcached oder Redis kompatibler
Caching-Dienst
Liefert häufig abgefragte, sich wenig
verändernde Daten aus einem
skalierbaren Caching-Cluster
Reduzieren der Last auf die
Datenbank und andere Server
25. Datenbank Abfrage-Performance
Regel 2: Bedienen Sie Anfragen möglichst schnell
a)
b)
c)
d)
Wählen Sie die schnellste Route
Entlasten Sie die Anwendungsserver
Cachen Sie wo Sie können
Einstellige Latenz wo es wichtig ist
Gewünschte konsistente Performance
Tatsächliche,
abnehmende
Performance bei
Skalierung
Skalierung
26. Datenbank Abfrage-Performance
Regel 2: Bedienen Sie Anfragen möglichst schnell
a)
b)
c)
d)
Wählen Sie die schnellste Route
Entlasten Sie die Anwendungsserver
Cachen Sie wo Sie können
Einstellige Latenz wo es wichtig ist
Gewünschte konsistente Performance
Managementprobleme
Tatsächliche,
abnehmende
Performance bei
Skalierung
Data Sharding
Data Caching
Provisionierung
Cluster Management
Fehlertoleranz
Skalierung
27. Datenbank Abfrage-Performance
Regel 2: Bedienen Sie Anfragen möglichst schnell
a)
b)
c)
d)
Wählen Sie die schnellste Route
Entlasten Sie die Anwendungsserver
Cachen Sie wo Sie können
Einstellige Latenz wo es wichtig ist
DynamoDB
Dynamo DB Abfrage-Performance
Durchschnittliche serverseitige Latenz:
einstellige Millisekunden
Niedrige Latenz
Große Skalierung
Keine Administration
Vorhersagbare Performance
Verwendet SSDs, Entworfen für konsistente
geringe Latenz bei jeder Skalierung
Skalierung
28. Regel 1: Bedienen Sie alle Webanfragen
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 3: Skalieren Sie mit der Anfrageanzahl
Regel 4: Vereinfachung durch Dienste
Regel 5: Automatisieren Sie den Betrieb
Regel 6: Nutzen Sie die Eigenschaften der Cloud
29. Regel 3: Skalieren Sie mit der Anfrageanzahl
a) Scale Up
Vertikale Skalierung
ab $0,02/h
Skalierung mit Elastic Compute Cloud (EC2)
Rechenkapazität in der Cloud
Auswahl an CPU, Memory & Festplatten-Optionen
Über 15 Instanztypen verfügbar von Micro bis Cluster Compute
30. Regel 3: Skalieren Sie mit der Anfrageanzahl
a) Scale Up
b) Scale Out
as-create-auto-scaling-group MyGroup
--launch-configuration MyConfig
--availability-zones eu-west-1a
--min-size 4
--max-size 200
Trigger
auto-scaling
policy
Auto Scaling
Automatische Anpassung der Anzahl der EC2-Instanzen
nach aktuellem Bedarf
31. Regel 3: Skalieren Sie mit der Anfrageanzahl
a) Scale Up
b) Scale Out
Manuell
Nach Zeitplan
Senden eines API Aufrufs oder
Kommandozeilenaufruf zum Erstellen oder
Terminieren von Instanzen (+/-)
Skalierung (+/-) basiert auf Datum und
Zeit
Nach Policy
Auto-Rebalance
Skalierung basiert auf Bedingungen, basiert
auf benutzerdefinierten Bedingungen
Instanzen werden erstellt und Terminiert
um Ausbalancierung zwischen
verschiedenen AZs zu erhalten
32. Regel 3: Skalieren Sie mit der Anfrageanzahl
a) Scale Up
b) Scale Out
c) Schnellere Datenbanken
Elastic Block Store
DynamoDB
Provisioned IOPS: Bis zu 4000
Provisionierte Lese/Schreib-
IO/s pro EBS Volume
Performance pro Tabelle
Vorhersehbare Performance
Vorhersehbare hohe
für anspruchsvolle Workloads
Performance mit geringer
wie Datenbanken
Latenz
33. “AWS gave us the flexibility to bring a massive
amount of capacity online in a short period of
time and allowed us to do so in an operationally
straightforward way.
DynamoDB:
über 500000 Writes pro
Sekunde
AWS is now Shazam’s cloud provider of choice,”
Jason Titus,
CTO
34. Regel 1: Bedienen Sie alle Webanfragen
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 3: Skalieren Sie mit der Anfrageanzahl
Regel 4: Vereinfachung durch Dienste
Regel 5: Automatisieren Sie den Betrieb
Regel 6: Nutzen Sie die Eigenschaften der Cloud
35. Regel 4: Vereinfachung durch Dienste
30%
On-Premises
Infrastruktur
70%
Ihr Geschäft
Verwalten der vorhandenen Infrastruktur
36. Regel 4: Vereinfachung durch Dienste
30%
On-Premises
Infrastruktur
AWS
Cloud-basierte
Infrastruktur
70%
Ihr Geschäft
Verwalten der vorhandenen Infrastruktur
Mehr Zeit für Ihr Geschäft
70%
Konfiguration der
Cloud-Dienste
30%
38. Regel 4: Vereinfachung durch Dienste
Relational Database Service
Verwenden Sie RDS
für relationale
Datenbanken
Database-as-a-Service
Datenbank-Instanzen ohne Installation und Administration
Skalierbare und fehlertolerante Konfigurationen
DynamoDB
NoSQL Datenbank mit provisioniertem Durchsatz
Hohe, vorhersagbare Performance
Vollständig verteilte, fehlertolerante Architektur
Verwenden Sie
DynamoDB als
High Performance
Key-Value DB
39. Regel 4: Vereinfachung durch Dienste
Amazon SQS
Zuverlässiger, hoch skalierbarer Message
Processing results
Queue Dienst für Nachrichten zwischen
Amazon SQS
Instanzen
Zuverlässiges Message
Queuing ohne
zusäzliche Software
1
Processing
task/processing
2
trigger
Prozessübergreifende
Workflows in der
Cloud mit SWF
Simple Workflow (SWF)
Task A
Koordinierte Verarbeitung über mehrere
Anwendungen
Task B
3
(Auto-scaling)
Integration von AWS und nicht-AWS
Ressourcen
Verteilter Status in komplexen Systemen
Task C
40. Regel 4: Vereinfachung durch Dienste
Cloud Search
Installieren Sie keine
Suchmaschine, nutzen
Sie CloudSearch
Document
Server
Elastische Volltextsuch-Engine auf
Basis von Amazon A9
Voll gemanagter Dienst mit
Search
Server
umfassenden Features
Skaliert automatisch
Results
Elastic MapReduce
Elastischer Hadoop Cluster
Integriert mit S3 & DynamoDB
Nutzung von Hive & Pig Analytics Skripts
Integration mit kostengünstigen SpotInstanzen
Verarbeiten Sie große
Datenmengen
effizient mit EMR
41. Regel 1: Bedienen Sie alle Webanfragen
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 3: Skalieren Sie mit der Anfrageanzahl
Regel 4: Vereinfachung durch Dienste
Regel 5: Automatisieren Sie den Betrieb
Regel 6: Nutzen Sie die Eigenschaften der Cloud
42. Regel 5: Automatisieren Sie den Betrieb
a) Alles ist programmierbar
Alles zugänglich
über CLI, API oder
Konsole
Compute
Security Scaling
CDN Backup
DNS Database
Storage Load Balancing
Workflow Monitoring
Networking
Messaging
Umfassende
Automatisierung ermöglicht
einfachen Betrieb
43. Regel 5: Automatisieren Sie den Betrieb
a) Alles ist programmierbar
b) Denken Sie in wegwerfbaren ein-Klick-Deployments
AWS
OpsWorks
AWS
CloudFormation
AWS Elastic
Beanstalk
Dev-Ops Framework
für Application Lifecycle
Management
Templates für
Deployment und
Verwaltung
Automatisches
RessourcenManagement
Web App
Enterprise
App
Datenbank
44. Regel 5: Automatisieren Sie den Betrieb
a) Alles ist programmierbar
b) Denken Sie in wegwerfbaren ein-Klick-Deployments
c) Entwerfen Sie für Fehler, planen Sie Selbstheilung
Bootstrapping
Auto Scaling
CloudWatch
Passen Sie den
Instanz-Start an
Kapazität basiert auf
aktueller Last
Wissen was los ist,
automatische Aktionen
Instanzen sollten beim Start
„Wer bin ich?“ fragen und sich
dynamisch auf Basis der
Antwort konfigurieren
Starte mit minimaler
Anzahl Instanzen die
auch bei Fehlern noch
ausreichend ist;
Skalierung nach
aktuellem Bedarf
CloudWatch Standard und
benutzerdefinierte Metriken
zur Alarm-Erstellung.
Reaktion mit automatisierten
administrativen Aktionen
45. Regel 5: Automatisieren Sie den Betrieb
a) Alles ist programmierbar
b) Denken Sie in wegwerfbaren ein-Klick-Deployments
c) Entwerfen Sie für Fehler, planen Sie Selbstheilung
46. Regel 1: Bedienen Sie alle Webanfragen
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 3: Skalieren Sie mit der Anfrageanzahl
Regel 4: Vereinfachung durch Dienste
Regel 5: Automatisieren Sie den Betrieb
Regel 6: Nutzen Sie die Eigenschaften der Cloud
47. Regel 6: Nutzen Sie die Eigenschaften der Cloud
a) Optimieren Sie die Instanztypen
Hi-Mem 4XL 68.4 GB
26 ECUs
8 virtual cores
Cluster Compute 8XL 60.5 GB
88 ECUs
8 core 2 x Intel Xeon
Hi-Mem 2XL 34.2 GB
13 ECUs
4 virtual cores
Cluster Compute 4XL 23 GB
33.5 ECUs
8 Nehalem virtual cores
Hi-Mem XL 17.1 GB
6.5 ECUs
2 virtual cores
Extra Large 15 GB
8 ECUs
4 virtual cores
Large 7.5 GB
4 ECUs
2 virtual cores
Small 1.7 GB,
1 ECU
1 virtual core
Micro 613 MB
Up to 2 ECUs (for
short bursts)
Medium 3.75 GB
2 ECUs
1 virtual cores
High-CPU Med 1.7 GB
5 ECUs
2 virtual cores
Cluster GPU 4XL 22 GB
33.5 ECUs
8 Nehalem virtual cores
2 x NVIDIA Tesla “Fermi”
M2050 GPUs
High-CPU XL 7 GB
20 ECUs
8 virtual cores
48. Regel 6: Nutzen Sie die Eigenschaften der Cloud
a) Optimieren Sie die Instanztypen
On-Demand Instanzen
Reserved Instanzen
Spot Instanzen
Unix/Linux Instanzen starten bei
0,02 USD / Stunde
1 oder 3 Jahre Bindung
Angebote für ungenutzte EC2 Kapazität
„Pay as you go“ für Rechenleistung
Initiale Zahlung verringert Kosten pro Stunde
deutlich
Spot Preis basiert auf Angebot und Nachfrage,
wird automatisch bestimmt
Niedrige Kosten, flexibel
Niedrige Kosten / Vorhersehbarkeit
Keine Verpflichtung, keine initialen Kosten,
Bezahlung nur für Nutzung
Reservierung: Kapazität ist verfügbar wenn sie
gebraucht wird
Sehr kostengünstig, große, zeit-unkritische
Lasten
Anwendungsfälle
Anwendungsfälle
Anwendungen mit kurzfristiger, unbekannter
oder unvorhersehbarer Last
Dauerhaft genutzte Anwendungen
Anwendungs-Entwicklung und Test
Vorhersehbare Last
Reservierte Kapazität erforderlich, z.B. Disaster
Recovery
Instanzen werden bei Steigen des Spot-Preises
wieder terminiert
Anwendungsfälle
Apps mit flexiblen Start- und Endzeiten
Preissensitive Anwendungen
Zeit-unkritische Batchläufe
49. Regel 6: Nutzen Sie die Eigenschaften der Cloud
a) Optimieren Sie die Instanztypen
b) Werten Sie große Datenmengen mit Elastic MapReduce aus
Elastic MapReduce
Verwalteter, elastischer Hadoop Cluster
Feature
Skalierbar
Integration mit S3 & DynamoDB
Nutzt Hive & Pig Analytics Scripts
Integration mit EC2 Optionen wie Spot Instanzen
Integriert mit
anderen Diensten
Umfassend
Kosteneffizient
Monitoring
Details
Verwenden Sie so viele Hadoop Compute
Instanzen wie Sie wollen. Ändern Sie die Anzahl
der Instanzen während der Job Flow läuft
Nahtlose Integration mit S3 als Quelle oder
Ausgabe Integration mit DynamoDB
Unterstützt Hive und Pig für Definition der
Analysen, und komplexe Jobs in Cascading, Java,
Ruby, Perl, Python, PHP, R, oder C++
Unterstützt Spot Instanzen
Überwachung der Job Flows aus der AWS
Konsole
50. Regel 6: Nutzen Sie die Eigenschaften der Cloud
a) Optimieren Sie die Instanztypen
b) Werten Sie große Datenmengen mit Elastic MapReduce aus
c) Erstellen Sie einen Supercomputer wenn Sie ihn brauchen
Cluster Compute Instanzen
Network Placement Groups
Optimiert für hohe Rechenleistung
Cluster-Instances werden in „Placement Group“
Intel® Xeon® E5-2670 Prozessoren
bereitgestellt und erhalten dadurch eine
10 Gigabit Ethernet
Netzwerkanbindung mit 10 Gbit/s und niedriger Latenz
80 EC2
Compute Units
60GB RAM
3TB Local
Disk
Cluster Compute
10Gbit/s
51. Regel 1: Bedienen Sie alle Webanfragen
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 3: Skalieren Sie mit der Anfrageanzahl
Regel 4: Vereinfachung durch Dienste
Regel 5: Automatisieren Sie den Betrieb
Regel 6: Nutzen Sie die Eigenschaften der Cloud
52. Verwenden Sie AWS für...
Schnell!
Immer
verfügbar!
Features!
Persönlich!
53. Verwenden Sie AWS für...
Elastische ✔
Kapazität
✔
Agilität &
Automatische
Ops
Hochverfügbar,
Global
Storage,
Big Data,
Analytics
✔
✔
54. Ressourcen
• http://aws.amazon.com/de
• Beginnen Sie mit dem Free Tier:
http://aws.amazon.com/de/free/
• 25 US$ Startguthaben für Neukunden:
http://aws.amazon.com/de/campaigns/account/
• Twitter: @AWS_Aktuell
• Facebook: http://www.facebook.com/awsaktuell
• Webinare: http://aws.amazon.com/de/about-aws/events/
• Slideshare: http://de.slideshare.net/AWSAktuell
• Bisherige Webinare: http://aws.amazon.com/de/recorded-webinar/