• Share
  • Email
  • Embed
  • Like
  • Private Content
Architecture Best Practices für Webanwendungen auf AWS
 

Architecture Best Practices für Webanwendungen auf AWS

on

  • 1,668 views

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 ...

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.

Statistics

Views

Total Views
1,668
Views on SlideShare
872
Embed Views
796

Actions

Likes
0
Downloads
21
Comments
1

5 Embeds 796

http://blog.stevieswebsite.de 757
http://www.a-coding-project.de 29
http://cloud.feedly.com 5
http://digg.com 3
https://twitter.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Das war auf jeden Fall ein sehr interessanter Beitrag!

    Ich habe mal meine Notizen zu dem Vortrag veröffentlicht:
    http://blog.stevieswebsite.de/2013/11/mein-besuch-auf-der-developer-conference-2013-in-hamburg/#amazon
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Architecture Best Practices für Webanwendungen auf AWS Architecture Best Practices für Webanwendungen auf AWS Presentation Transcript

    • Architecture Best Practices für Webanwendungen aus Amazon Web Services Steffen Krause Technical Evangelist @sk_bln skrause@amazon.de
    • 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ügbar!
    • Was die Nutzer wollen... Schnell! Immer verfügbar! Features! Persönlich!
    • Wie?
    • Leistungsfähige Webanwendungen
    • 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
    • Globale AWS Infrastruktur 9 Regionen 25 Availability Zones Ständige Erweiterung
    • Regel 1: Bedienen Sie alle Webanfragen a) Stellen Sie sicher, dass die Anfragen an die Vordertür kommen Anfrage DNS Anwendung Daten
    • 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
    • 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
    • Demo: DNS Failover http://bit.ly/R53Failover
    • 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
    • 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
    • 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
    • Regel 2: Bedienen Sie Anfragen möglichst schnell a) Wählen Sie die schnellste Route Anfrage Region A Route53 Region B
    • Regel 2: Bedienen Sie Anfragen möglichst schnell a) Wählen Sie die schnellste Route Anfrage 16ms Region A Route53 92ms Region B
    • Regel 2: Bedienen Sie Anfragen möglichst schnell a) Wählen Sie die schnellste Route Anfrage 16ms Region A Route53 92ms Region B
    • 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
    • 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
    • Demo: CloudFront http://bit.ly/CFDemoDE
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • “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
    • 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
    • Regel 4: Vereinfachung durch Dienste 30% On-Premises Infrastruktur 70% Ihr Geschäft Verwalten der vorhandenen Infrastruktur
    • 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%
    • Geteilte Verantwortung Kunde Gebäude Betriebssystem Physische Sicherheit Applikationen Rechner-Infrastruktur Storage-Infrastruktur + Security Groups Firewalls Netzwerk-Infrastruktur Netzwerk-Konfiguration Virtualisierungsschicht Benutzerverwaltung =
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Verwenden Sie AWS für... Schnell! Immer verfügbar! Features! Persönlich!
    • Verwenden Sie AWS für... Elastische ✔ Kapazität ✔ Agilität & Automatische Ops Hochverfügbar, Global Storage, Big Data, Analytics ✔ ✔
    • 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/
    • skrause@amazon.de