8. Varianten
• Infrastruktur
Amazon EC2, Sun Grid, Skytap
• (Software-)Platform
Google AppEngine, Mosso, Salesforce
9. Amazon EC2
• EC2 = „Elastic Compute Cloud“
• eng verknüpft mit „Simple Storage Service“ (S3)
• beides Teil von „Amazon Web Services“
• Paravirtualisierung auf Basis von Xen
10. EC2 Komponenten
• Amazon Machine Image (AMI)
„Blueprint“ für neue Instanzen
kein Schreibzugriff seitens der Instanz
• Instance
laufende, virtuelle Maschine
• Instance Storage
Festplattenspeicher einer Instanz
verschwindet bei Herunterfahren der Instanz
11. Instanz-Typen
CPU (CU) RAM (GB) Instance Storage (TB)
20,0
15,0
8,0
7,5
7,0
5,0
4,0
1,7 1,7 1,7 1,7
1,0 0,9
0,2 0,4
S L XL High CPU M High CPU XL
Stand 11/2008, CU = Compute Unit
12. Softwareunterstützung
• Betriebssysteme
RHEL, Oracle Enterprise Linux, openSUSE,
Fedora, Debian, etc.
Windows 2003 Server
• Software („building block“ AMIs)
Oracel 11g, MSSQL Server 2005, JBoss, etc.
14. Features
• Availability Zones
Unterteilung von Regionen in geographisch
verteilte und technisch unabhängige
„availability zones“.
erhöhte Ausfallsicherheit bei Nutzung
mehrerer „availability zones“
15. Features
• Elastic Block Store
„Amazon EBS volumes are highly available,
highly reliable volumes that can be attached to
a running Amazon EC2 instance and are
exposed as standard block devices.“
Lebenszyklus unabhängig von Instanz
Snapshot nach S3, repliziert über alle
„availability zones“
16. Features
• Elastic IP Addresses
IP-Adresse verknüpft mit Account, nicht mit
konkreter Instanz
programmatisches remapping der IP-Adresse
via API
kein „propagation delay“
17. Simple Storage Service
• bis zu 100 Buckets pro Benutzer
• Objects (Dateien) werden identifiziert durch
Bucket + Key (Dateiname)
• flache Hierarchie, aber Key darf „/“ enthalten
• z.B. Bucket „foobar“, Key „foo/bar.txt“
http://foobar.s3.amazonaws.com/foo/bar.txt
• Administration via REST oder SOAP API
• BitTorrent-Unterstützung (/foo/bar.txt?torrent)
18. Szenario
S3 EC2
Client
AMI Instanz
(AppServer)
Client
AMI Instanz
(AppServer)
AMI Client
Instanz
(DB)
EBS
Snapshot
EBS
19. Kosten
EC2 min max
Instanz (pro h) $0,10 $1,20
1GB Transfer $0,10 $0,17
S3
1GB Storage $0,12 $0,15
1GB Transfer $0,10 $0,17
1k Requests $0,01 $0,10
Transfer zwischen EC2 und S3 (US) ist kostenlos
Stand 11/2008
21. Google AppEngine
• Framework für Python
• Platform beinhaltet persistenten Speicher
(„Datastore“)
• Unterstützung für weitere Sprachen in
Entwicklung
• Django-Unterstützung (mittelmäßig)
• Unterstützung für SSO durch Google-Accounts
• lokale Entwicklungsumgebung inkl. Datastore
23. Datastore
• Models
Subklasse von db.Model
enthält ein oder mehrere Properties
✦ StringProperty, TextProperty, ListProperty,
CategoryProperty, ...
✦ ReferenceProperty
zur Laufzeit für jedes Entity veränderlich
25. Datastore
• Google Query Language GQL
SELECT * FROM <kind>
[WHERE <condition> [AND <condition> ...]]
[ORDER BY <property> [ASC | DESC] [, ...]
[LIMIT [<offset>,]<count>]
[OFFSET <offset>]
<condition> := <property> {< | <= | > | >= | = | != } <value>
<condition> := <property> IN <list>
<condition> := ANCESTOR IS <entity or key>
26. Limits / Quotas
• 1MB-Limit für Datenstrukturen
• 10-Sekunden-Limit für Antwortzeit
• „short term high CPU quota“
• 1000-Records-Limit für Queries
• max. 1000 Dateien/500MB pro Anwendung
• diverse Request- und Call-Limits