skalieren einer web anwendung
DESCRIPTION
A presenation about scaling web applications with Amazon S3 and EC2, presented at the Linuxtag 2007 in Berlin, GermanyTRANSCRIPT
![Page 1: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/1.jpg)
WissensmanagementsystemPeritor Minea
Skalieren einer Web Anwendung
mit Amazon S3 und EC2
Jonathan Weiss, Peritor Wissensmanagement GmbH
![Page 2: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/2.jpg)
2
Ausgangslage
Eine Maschine:
• Apache
• Ruby / Perl / PHP / Java
• MySQL
![Page 3: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/3.jpg)
3
Worst Case Popularität
![Page 4: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/4.jpg)
4
Steiniger Weg
![Page 5: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/5.jpg)
5
Problem: Backup
• Hochverfügbar
• Redundant
• Große Datenmengen
![Page 6: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/6.jpg)
6
Problem: File System
• Wichtige Dateien müssen allen Systemen zugänglich sein
• NFS / Samba unpraktikable Lösungen
![Page 7: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/7.jpg)
7
Problem: Plötzliche Lastspitzen
![Page 8: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/8.jpg)
8
Problem: UngleichmäßigeBelastung
![Page 9: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/9.jpg)
9
Don‘t reinvent the wheel!
![Page 10: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/10.jpg)
10
Amazon Web Services
Simple Storage Service - S3
Redundanter Speicherplatz
$0,15 per GB Speicherplatz
$0,10 - $0,20 per GB Traffic
Virtueller Server pro Stunde
$0,10 pro CPU Stunde
$0,10 - $0,20 pro GB Traffic
Elastic Compute Cloud - EC2
…….
E-Commerce S..
![Page 11: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/11.jpg)
11
S3 - Simple Storage Service
• Beliebig viel redundanter, hochverfügbarer Speicherplatz
• max. 2GB pro Datei
• Organisiert in „Buckets“
• Upload über Web Service API
• Abruf über
• Web Service
• HTTP / HTTPS
• BitTorrent
![Page 12: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/12.jpg)
12
S3 - Buckets
• Unique über ganz S3
• Enthalten beliebigviele Key-Value-Metadata Tupel
• Enthalten keine Buckets!
• Key kann „/“ enthalten
MyBucket_name
S3
foto_5.jpg
/backups/januar.tgz
/fotos/2007/001.png
www.peritor.com
/site/screen.css
/site/script.js
FreeBSD-6.2.iso
![Page 13: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/13.jpg)
13
S3 mit AWS::S3 (Ruby)Upload
Download
![Page 14: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/14.jpg)
14
EC2 - Elastic Compute Cloud
• XEN basiert
• (Beliebig) viele virtuelle Server steuerbar über Web Service
• 1,7 GHz
• 1,75 GB RAM
• 160 GB lokaler Speicherplatz (nicht persistent!)
• Einsatz der Linux Distribution der Wahl (Linux 2.6.16),Verwaltung der Amazon Machine Images (AMI) auf S3
• ACLs regeln Zugriff auf Hosts / Ports
![Page 15: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/15.jpg)
15
EC2 ToolsVerfügbare Images auflisten
Neue Instanz starten
Einloggen per SSH
Instanz beenden
![Page 16: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/16.jpg)
16
Und jetzt?
Wie löse ich meineProbleme damit?
![Page 17: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/17.jpg)
17
S3 - Backup
• s3sync.rb
• Brackup
• Jungle Disk
• S3 FUSE
• s3DAV
• Duplicity
• S3Browser
• Firefox S3 Organizer extension
• …
![Page 18: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/18.jpg)
18
s3sync.rb
Backup
Restore
![Page 19: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/19.jpg)
19
S3 als asset host
![Page 20: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/20.jpg)
20
S3 als asset host
Setup DNS
Setup Rails Konfiguration
![Page 21: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/21.jpg)
21
S3 als asset host
welcome.rhtml Template
Output
![Page 22: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/22.jpg)
22
S3 - User Data Speicher
![Page 23: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/23.jpg)
23
attachment_fu Rails plugin
Setup
![Page 24: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/24.jpg)
24
attachment_fu Rails plugin
Upload
Download
![Page 25: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/25.jpg)
25
On-Demand Computing mit EC2
Zeitgesteuert, z.B. mit cron
![Page 26: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/26.jpg)
26
On-Demand Computing mit EC2
Lastgesteuert, z.B. mit Monit
![Page 27: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/27.jpg)
27
On-Demand Computing mit EC2
![Page 28: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/28.jpg)
28
EC2 Helfer
Capazon / Elastic Rails
WeoCEO
![Page 29: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/29.jpg)
29
EC2 Helfer
Rightscale
![Page 30: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/30.jpg)
30
Ressourcen
• Amazon Web Serviceshttp://aws.amazon.com
• s3sync.rbhttp://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
• Attachment_fuhttp://svn.techno-weenie.net/projects/plugins/attachment_fu/
• Elastic Railshttp://www.elasticrails.com
• Capazonhttp://capazon.rubyforge.org
• RightScalehttp://www.rightscale.com
• WeoCEOhttp://weoceo.weogeo.com/
![Page 31: Skalieren einer Web Anwendung](https://reader035.vdocuments.mx/reader035/viewer/2022081404/5598b3451a28abb8608b4584/html5/thumbnails/31.jpg)
31
Internet: www.peritor.comE-Mail: [email protected]
Telefon: +49 (0)30 69 40 11 94Telefax: +49 (0)30 69 40 11 95
© Peritor Wissensmanagement GmbH