Die wichtigsten Technologien für die Entwicklung von Webanwendungen
Architecture Best Practices für Webanwendungen auf AWS
-
Upload
aws-germany -
Category
Technology
-
view
1.865 -
download
2
description
Transcript of Architecture Best Practices für Webanwendungen auf AWS
Architecture Best Practices für Webanwendungen aus Amazon Web Services
Steffen KrauseTechnical Evangelist
Was die Nutzer wollen...
Was die Nutzer wollen...
Schnell!
Was die Nutzer wollen...
Schnell!Immer
verfügbar!
Was die Nutzer wollen...
Schnell!
Features!
Immer verfügba
r!
Was die Nutzer wollen...
Schnell!
Features!
Persönlich!
Immer verfügba
r!
Wie?
Leistungsfähige Webanwendungen
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 1: Bedienen Sie alle Webanfragen
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
Globale AWS Infrastruktur
9 Regionen
25 Availability Zones
Ständige Erweiterung
DNS Anwendung DatenAnfrage
a) Stellen Sie sicher, dass die Anfragen an die Vordertür kommen
Regel 1: Bedienen Sie alle Webanfragen
DNS Anwendung DatenAnfrage
…dann ist dies alles irrelevant
Die Clients können Ihren
Domainnamen nicht auflösen?
Regel 1: Bedienen Sie alle Webanfragena) Stellen Sie sicher, dass die Anfragen an die Vordertür kommen
DNS Anwendung DatenAnfrage
“100% verfügbar”
SLA
Regel 1: Bedienen Sie alle Webanfragen
Route53
http://aws.amazon.com/route53/sla
a) Stellen Sie sicher, dass die Anfragen an die Vordertür kommen
Feature Details
Global Unterstützt durch die globalen AWS Edge Locations – schnelle und zuverlässige DNS Auflösung
Skalierbar Skaliert automatisch abhängig von Abfragevolumen
Latency based Routing Unterstützt Auflösung der Endpunkte auf Basis der Latenz, ermöglicht Anwendungen in mehreren Regionen
Integriert Integration in andere AWS Dienste, Auflösung für Load Balancer, S3 und EC2
Sicher Integration mit IAM ermöglicht detaillierte Kontrolle über DNS Record Zugriff
Demo: DNS Failoverhttp://bit.ly/R53Failover
Region
DNS Anwendung DatenAnfrage
Regel 1: Bedienen Sie alle Webanfragen
Elastic Load
Balancer Region
Availability Zone
Availability Zone
Availability Zone
Availability Zone
Route53
a) Stellen Sie sicher, dass die Anfragen an die Vordertür kommenb) Machen Sie die Tür auf, wenn die Anfragen ankommen
Elastic Load BalancingMehrere Availability ZonesMehrere Regionen
Region
Regel 1: Bedienen Sie alle Webanfragen
DNS Anwendung DatenAnfrage
Elastic Load
Balancer
Route53
Region
Availability Zone
Availability Zone
Availability Zone
Availability Zone
a) Stellen Sie sicher, dass die Anfragen an die Vordertür kommenb) Machen Sie die Tür auf, wenn die Anfragen ankommenc) Erstellen Sie eine Antwort aus den Daten
Multi-AZ RDS
(Master-Slave)
Replikation zwischen Regionen
Read Replicas
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 1: Bedienen Sie alle Webanfragen
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
Regel 2: Bedienen Sie Anfragen möglichst schnella) Wählen Sie die schnellste Route
Region A
Route53
Region B
Anfrage
Regel 2: Bedienen Sie Anfragen möglichst schnella) Wählen Sie die schnellste Route
Region A
Route53
Region B
16ms 92ms
Anfrage
Regel 2: Bedienen Sie Anfragen möglichst schnella) Wählen Sie die schnellste Route
Region A
Route53
Region B
16ms 92ms
Anfrage
Regel 2: Bedienen Sie Anfragen möglichst schnell
Region A
Route53
Region B
16ms
AnfrageRegion A DNS Eintrag
a) Wählen Sie die schnellste Route
Regel 2: Bedienen Sie Anfragen möglichst schnella) Wählen Sie die schnellste Routeb) Entlasten Sie die Anwendungsserver
London
Paris
NY
Bedient von S3/images/*
3
Bedient vonEC2*.php
2
EinCNAMEwww.mysite.com
1
CloudFrontWeltweites Content Distribution Network
Einfache Verteilung von Inhalten an Benutzer
mit niedriger Latenz und hoher
Geschwindigkeit. Ohne Vertragsbindung
Demo: CloudFronthttp://bit.ly/CFDemoDE
Regel 2: Bedienen Sie Anfragen möglichst schnella) Wählen Sie die schnellste Routeb) Entlasten Sie die Anwendungsserverc) Cachen Sie wo Sie können
ElastiCacheMemcached 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
Regel 2: Bedienen Sie Anfragen möglichst schnella) Wählen Sie die schnellste Routeb) Entlasten Sie die Anwendungsserverc) Cachen Sie wo Sie könnend) Einstellige Latenz wo es wichtig ist
Skalierung
Dat
enba
nk A
bfra
ge-P
erfo
rman
ce
Gewünschte konsistente Performance
Tatsächliche, abnehmende
Performance bei Skalierung
Skalierung
Tatsächliche, abnehmende
Performance bei Skalierung
Regel 2: Bedienen Sie Anfragen möglichst schnella) Wählen Sie die schnellste Routeb) Entlasten Sie die Anwendungsserverc) Cachen Sie wo Sie könnend) Einstellige Latenz wo es wichtig ist
Dat
enba
nk A
bfra
ge-P
erfo
rman
ce
Gewünschte konsistente Performance
Managementprobleme
Data ShardingData Caching
ProvisionierungCluster Management
Fehlertoleranz
Regel 2: Bedienen Sie Anfragen möglichst schnella) Wählen Sie die schnellste Routeb) Entlasten Sie die Anwendungsserverc) Cachen Sie wo Sie könnend) Einstellige Latenz wo es wichtig ist
Dynamo DB Abfrage-Performance
Durchschnittliche serverseitige Latenz: einstellige Millisekunden
Verwendet SSDs, Entworfen für konsistente geringe Latenz bei jeder Skalierung
Skalierung
Dat
enba
nk A
bfra
ge-P
erfo
rman
ce
DynamoDB
Niedrige LatenzGroße Skalierung
Keine AdministrationVorhersagbare Performance
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 1: Bedienen Sie alle Webanfragen
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
Regel 3: Skalieren Sie mit der Anfrageanzahla) 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
Regel 3: Skalieren Sie mit der Anfrageanzahla) Scale Upb) 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 ScalingAutomatische Anpassung der Anzahl der EC2-Instanzen
nach aktuellem Bedarf
a) Scale Upb) Scale Out
Regel 3: Skalieren Sie mit der Anfrageanzahl
ManuellSenden eines API Aufrufs oder
Kommandozeilenaufruf zum Erstellen oder Terminieren von Instanzen (+/-)
Nach ZeitplanSkalierung (+/-) basiert auf Datum und
Zeit
Nach PolicySkalierung basiert auf Bedingungen, basiert
auf benutzerdefinierten Bedingungen
Auto-RebalanceInstanzen werden erstellt und Terminiert
um Ausbalancierung zwischen verschiedenen AZs zu erhalten
Regel 3: Skalieren Sie mit der Anfrageanzahla) Scale Upb) Scale Outc) Schnellere Datenbanken
Elastic Block StoreProvisioned IOPS: Bis zu 4000
IO/s pro EBS Volume
Vorhersehbare Performance
für anspruchsvolle Workloads
wie Datenbanken
DynamoDBProvisionierte Lese/Schreib-
Performance pro Tabelle
Vorhersehbare hohe
Performance mit geringer
Latenz
Fallstudie
“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.
AWS is now Shazam’s cloud provider of choice,”
Jason Titus,CTO
DynamoDB: über 500000 Writes pro
Sekunde
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 1: Bedienen Sie alle Webanfragen
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
Ihr Geschäft
70%
On-PremisesInfrastruktur
30%
Verwalten der vorhandenen Infrastruktur
Regel 4: Vereinfachung durch Dienste
AWSCloud-basierte
Infrastruktur
Ihr Geschäft
Mehr Zeit für Ihr Geschäft Konfiguration der Cloud-Dienste
70%
30%70%
On-PremisesInfrastruktur
30%
Verwalten der vorhandenen Infrastruktur
Regel 4: Vereinfachung durch Dienste
Geteilte Verantwortung
Gebäude
Physische Sicherheit
Rechner-Infrastruktur
Storage-Infrastruktur
Netzwerk-Infrastruktur
Virtualisierungsschicht
Betriebssystem
Applikationen
Security Groups
Firewalls
Netzwerk-Konfiguration
Benutzerverwaltung
+ =
Kunde
Relational Database ServiceDatabase-as-a-Service
Datenbank-Instanzen ohne Installation und Administration
Skalierbare und fehlertolerante Konfigurationen
DynamoDBNoSQL Datenbank mit provisioniertem Durchsatz
Hohe, vorhersagbare Performance
Vollständig verteilte, fehlertolerante Architektur
Verwenden Sie RDS für relationale Datenbanken
Verwenden Sie DynamoDB als
High Performance Key-Value DB
Regel 4: Vereinfachung durch Dienste
Amazon SQS
Processing
task/processing
trigger
Processing results
Amazon SQSZuverlässiger, hoch skalierbarer Message
Queue Dienst für Nachrichten zwischen
Instanzen
Task A
Task B
(Auto-scaling)
Task C
2
3
1
Simple Workflow (SWF)Koordinierte Verarbeitung über mehrere
Anwendungen
Integration von AWS und nicht-AWS
Ressourcen
Verteilter Status in komplexen Systemen
Prozessübergreifende Workflows in der Cloud mit SWF
Zuverlässiges Message Queuing ohne
zusäzliche Software
Regel 4: Vereinfachung durch Dienste
Cloud SearchElastische Volltextsuch-Engine auf
Basis von Amazon A9
Voll gemanagter Dienst mit
umfassenden Features
Skaliert automatisch
DocumentServer
Results
SearchServer
Installieren Sie keine Suchmaschine, nutzen Sie CloudSearch
Verarbeiten Sie große Datenmengen
effizient mit EMR
Elastic MapReduceElastischer Hadoop Cluster
Integriert mit S3 & DynamoDB
Nutzung von Hive & Pig Analytics Skripts
Integration mit kostengünstigen Spot-
Instanzen
Regel 4: Vereinfachung durch Dienste
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 1: Bedienen Sie alle Webanfragen
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
Compute
Storage
Security Scaling
Database
NetworkingMonitoring
Messaging
Workflow
DNSLoad Balancing
BackupCDN
API
Regel 5: Automatisieren Sie den Betrieba) Alles ist programmierbar
Alles zugänglich über CLI, API oder
Konsole
Umfassende Automatisierung ermöglicht
einfachen Betrieb
Regel 5: Automatisieren Sie den Betrieba) Alles ist programmierbarb) Denken Sie in wegwerfbaren ein-Klick-Deployments
AWS Elastic BeanstalkAutomatisches
Ressourcen-Management
AWS CloudFormation
Templates für Deployment und
Verwaltung
Web App
Enterprise
App
Datenbank
AWS OpsWorks
Dev-Ops Framework für Application Lifecycle
Management
Regel 5: Automatisieren Sie den Betrieba) Alles ist programmierbarb) Denken Sie in wegwerfbaren ein-Klick-Deploymentsc) Entwerfen Sie für Fehler, planen Sie Selbstheilung
Passen Sie den Instanz-Start an
Instanzen sollten beim Start „Wer bin ich?“ fragen und sich
dynamisch auf Basis der Antwort konfigurieren
Kapazität basiert auf aktueller Last
Starte mit minimaler Anzahl Instanzen die
auch bei Fehlern noch ausreichend ist; Skalierung nach
aktuellem Bedarf
Wissen was los ist, automatische AktionenCloudWatch Standard und
benutzerdefinierte Metriken zur Alarm-Erstellung.
Reaktion mit automatisierten administrativen Aktionen
Bootstrapping Auto Scaling CloudWatch
Regel 5: Automatisieren Sie den Betrieba) Alles ist programmierbarb) Denken Sie in wegwerfbaren ein-Klick-Deploymentsc) Entwerfen Sie für Fehler, planen Sie Selbstheilung
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 1: Bedienen Sie alle Webanfragen
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
Small 1.7 GB, 1 ECU1 virtual core
Large 7.5 GB4 ECUs2 virtual cores
Extra Large 15 GB 8 ECUs4 virtual cores
Hi-Mem XL 17.1 GB6.5 ECUs2 virtual cores
Hi-Mem 2XL 34.2 GB13 ECUs4 virtual cores
Hi-Mem 4XL 68.4 GB26 ECUs8 virtual cores
High-CPU Med 1.7 GB 5 ECUs 2 virtual cores
High-CPU XL 7 GB 20 ECUs8 virtual cores
Micro 613 MB Up to 2 ECUs (for short bursts)
Cluster GPU 4XL 22 GB 33.5 ECUs8 Nehalem virtual cores 2 x NVIDIA Tesla “Fermi” M2050 GPUs
Cluster Compute 4XL 23 GB 33.5 ECUs 8 Nehalem virtual cores
Cluster Compute 8XL 60.5 GB 88 ECUs 8 core 2 x Intel Xeon
Medium 3.75 GB2 ECUs1 virtual cores
Regel 6: Nutzen Sie die Eigenschaften der Clouda) Optimieren Sie die Instanztypen
Unix/Linux Instanzen starten bei 0,02 USD / Stunde
„Pay as you go“ für Rechenleistung
Niedrige Kosten, flexibel
Keine Verpflichtung, keine initialen Kosten, Bezahlung nur für Nutzung
Anwendungsfälle
Anwendungen mit kurzfristiger, unbekannter oder unvorhersehbarer Last
Anwendungs-Entwicklung und Test
On-Demand Instanzen
1 oder 3 Jahre Bindung
Initiale Zahlung verringert Kosten pro Stunde deutlich
Niedrige Kosten / Vorhersehbarkeit
Reservierung: Kapazität ist verfügbar wenn sie gebraucht wird
Anwendungsfälle
Dauerhaft genutzte Anwendungen
Vorhersehbare Last
Reservierte Kapazität erforderlich, z.B. Disaster Recovery
Reserved Instanzen
Angebote für ungenutzte EC2 Kapazität
Spot Preis basiert auf Angebot und Nachfrage, wird automatisch bestimmt
Sehr kostengünstig, große, zeit-unkritische Lasten
Instanzen werden bei Steigen des Spot-Preises wieder terminiert
Anwendungsfälle
Apps mit flexiblen Start- und Endzeiten
Preissensitive Anwendungen
Zeit-unkritische Batchläufe
Spot Instanzen
Regel 6: Nutzen Sie die Eigenschaften der Clouda) Optimieren Sie die Instanztypen
a) Optimieren Sie die Instanztypenb) Werten Sie große Datenmengen mit Elastic MapReduce aus
Regel 6: Nutzen Sie die Eigenschaften der Cloud
Elastic MapReduceVerwalteter, elastischer Hadoop Cluster
Integration mit S3 & DynamoDB
Nutzt Hive & Pig Analytics Scripts
Integration mit EC2 Optionen wie Spot Instanzen
Feature Details
Skalierbar Verwenden Sie so viele Hadoop Compute Instanzen wie Sie wollen. Ändern Sie die Anzahl der Instanzen während der Job Flow läuft
Integriert mit anderen Diensten
Nahtlose Integration mit S3 als Quelle oder Ausgabe Integration mit DynamoDB
Umfassend Unterstützt Hive und Pig für Definition der Analysen, und komplexe Jobs in Cascading, Java, Ruby, Perl, Python, PHP, R, oder C++
Kosteneffizient Unterstützt Spot Instanzen
Monitoring Überwachung der Job Flows aus der AWS Konsole
Cluster Compute InstanzenOptimiert für hohe Rechenleistung
Intel® Xeon® E5-2670 Prozessoren
10 Gigabit Ethernet
Cluster Compute
80 EC2 Compute Units
60GB RAM
3TB LocalDisk
Network Placement GroupsCluster-Instances werden in „Placement Group“
bereitgestellt und erhalten dadurch eine
Netzwerkanbindung mit 10 Gbit/s und niedriger Latenz
10Gbit/s
Regel 6: Nutzen Sie die Eigenschaften der Clouda) Optimieren Sie die Instanztypenb) Werten Sie große Datenmengen mit Elastic MapReduce ausc) Erstellen Sie einen Supercomputer wenn Sie ihn brauchen
Regel 2: Bedienen Sie Anfragen möglichst schnell
Regel 1: Bedienen Sie alle Webanfragen
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
Verwenden Sie AWS für...
Schnell!
Features!
Persönlich!
Immer verfügba
r!
Verwenden Sie AWS für...
Elastische Kapazität
Hochverfügbar, Global
Agilität & Automatische
Ops
Storage,Big Data, Analytics
✔ ✔
✔ ✔
• 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/
Ressourcen