31
Wissensmanagementsystem Peritor Minea Skalieren einer Web Anwendung mit Amazon S3 und EC2 Jonathan Weiss, Peritor Wissensmanagement GmbH

Skalieren einer Web Anwendung

Embed Size (px)

DESCRIPTION

A presenation about scaling web applications with Amazon S3 and EC2, presented at the Linuxtag 2007 in Berlin, Germany

Citation preview

Page 1: Skalieren einer Web Anwendung

WissensmanagementsystemPeritor Minea

Skalieren einer Web Anwendung

mit Amazon S3 und EC2

Jonathan Weiss, Peritor Wissensmanagement GmbH

Page 2: Skalieren einer Web Anwendung

2

Ausgangslage

Eine Maschine:

• Apache

• Ruby / Perl / PHP / Java

• MySQL

Page 3: Skalieren einer Web Anwendung

3

Worst Case Popularität

Page 4: Skalieren einer Web Anwendung

4

Steiniger Weg

Page 5: Skalieren einer Web Anwendung

5

Problem: Backup

• Hochverfügbar

• Redundant

• Große Datenmengen

Page 6: Skalieren einer Web Anwendung

6

Problem: File System

• Wichtige Dateien müssen allen Systemen zugänglich sein

• NFS / Samba unpraktikable Lösungen

Page 7: Skalieren einer Web Anwendung

7

Problem: Plötzliche Lastspitzen

Page 8: Skalieren einer Web Anwendung

8

Problem: UngleichmäßigeBelastung

Page 9: Skalieren einer Web Anwendung

9

Don‘t reinvent the wheel!

Page 10: Skalieren einer Web Anwendung

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

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

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

13

S3 mit AWS::S3 (Ruby)Upload

Download

Page 14: Skalieren einer Web Anwendung

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

15

EC2 ToolsVerfügbare Images auflisten

Neue Instanz starten

Einloggen per SSH

Instanz beenden

Page 16: Skalieren einer Web Anwendung

16

Und jetzt?

Wie löse ich meineProbleme damit?

Page 17: Skalieren einer Web Anwendung

17

S3 - Backup

• s3sync.rb

• Brackup

• Jungle Disk

• S3 FUSE

• s3DAV

• Duplicity

• S3Browser

• Firefox S3 Organizer extension

• …

Page 18: Skalieren einer Web Anwendung

18

s3sync.rb

Backup

Restore

Page 19: Skalieren einer Web Anwendung

19

S3 als asset host

Page 20: Skalieren einer Web Anwendung

20

S3 als asset host

Setup DNS

Setup Rails Konfiguration

Page 21: Skalieren einer Web Anwendung

21

S3 als asset host

welcome.rhtml Template

Output

Page 22: Skalieren einer Web Anwendung

22

S3 - User Data Speicher

Page 23: Skalieren einer Web Anwendung

23

attachment_fu Rails plugin

Setup

Page 24: Skalieren einer Web Anwendung

24

attachment_fu Rails plugin

Upload

Download

Page 25: Skalieren einer Web Anwendung

25

On-Demand Computing mit EC2

Zeitgesteuert, z.B. mit cron

Page 26: Skalieren einer Web Anwendung

26

On-Demand Computing mit EC2

Lastgesteuert, z.B. mit Monit

Page 27: Skalieren einer Web Anwendung

27

On-Demand Computing mit EC2

Page 28: Skalieren einer Web Anwendung

28

EC2 Helfer

Capazon / Elastic Rails

WeoCEO

Page 29: Skalieren einer Web Anwendung

29

EC2 Helfer

Rightscale

Page 30: Skalieren einer Web Anwendung

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

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