Amazon S3
Für Fortgeschrittene
Steffen Krause– Technical Evangelist
@sk_bln
Mehr als nur ein „Simple“ Storage Service
Ein umfassendes, verteiltes modernes Speichersystem
Grundlage für viele verschie...
“Spotify needed a storage solution that
could scale very quickly without
incurring long lead times for upgrades.
This led ...
Minecraft Realms and AWS S3
Minecraft Welten und Spielstatus
sind in Amazon S3 gespeichert.
Das System nutzt S3
Versionier...
Sie speichern in S3
AWS speichert mit 99,999999999%
Dauerhaftigkeit
Sehr skalierbarer Web-
Zugriff auf Objekte
Mehrere redundante Kopien
innerhalb einer Region
Sie speichern in S3
AWS speich...
Aber es ist mehr als ein
Simple Storage Service
Objekte in S3
Billionen Objekte
(1012)
Mehr als 2 Millionen
Anfragen pro Sekunde
Was ist S3?
Hoch skalierbare Datenspeicherung
Zugriff über APIsEin Web Store, kein Dateisystem
Schnell
Hochverfügbar und d...
Ein Web Store, kein Dateisystem
Write Once,
Read Many
(WORM)
Eventually
Consistent
Konzept-Diagramm, nicht tatsächliche Implementierung
Region
Availability Zone
Indexing Storage
Load balancers
Web servers
...
Region
Availability Zone
Indexing Storage
Load balancers
Web servers
Availability Zone
Indexing Storage
Load balancers
Web...
Region
Availability Zone
Indexing Storage
Load balancers
Web servers
Availability Zone
Indexing Storage
Load balancers
Web...
Region
Availability Zone
Indexing Storage
Load balancers
Web servers
Availability Zone
Indexing Storage
Load balancers
Web...
Region
Availability Zone
Indexing Storage
Load balancers
Web servers
Availability Zone
Indexing Storage
Load balancers
Web...
Region
Availability Zone
Indexing Storage
Load balancers
Web servers
Availability Zone
Indexing Storage
Load balancers
Web...
Region
Availability Zone
Indexing Storage
Load balancers
Web servers
Availability Zone
Indexing Storage
Load balancers
Web...
Region
Availability Zone
Indexing Storage
Load balancers
Web servers
Availability Zone
Indexing Storage
Load balancers
Web...
Ein Web Store, kein Dateisystem
Write Once,
Read Many
(WORM)
Eventually
Consistent
*außer US-STANDARD Region
Neue Objekte
Updates
Deletes
Daten werden synchron in mehreren Einrichtungen
gespeichert ehe SUC...
Ein regionaler Dienst
Ihre Daten verlassen nie die Region
Es sei denn, Sie bewegen die Daten
Speicherklassen
Kontrollieren die Art, wie S3 die Daten hält
Standard
Bietet 99,999999999%
Dauerhaftigkeit und 99,99%
Verfügbarkeit der Objekte
innerhalb eines Jahres
Entworfen, um de...
Reduced
Redundancy Storage
Reduziert die Kosten durch
Datenspeicherung mit geringerer
Redundanz als der Standard
Storage
B...
Glacier
Geeignet für Datenarchivierung, wo
Daten selten zugegriffen werden und
eine Zugriffszeit von mehreren
Stunden akze...
Glacier
Suitable for archiving data,
where data access is infrequent
and a retrieval time of several
hours is acceptable
U...
Namensräume
Objektbenennung, Buckets & Keys
Amazon S3 Namensraum
Global eindeutig
Bucket Name + Objektname (Key)
Amazon S3 Namensraum
Amazon S3
Bucket Bucket
Objekt Objekt ObjektObjekt
Bucket
Objekt Objekt
Amazon S3 Namensraum
Amazon S3
jones-docshare media.mydomain.com
beach.jpg img1.jpg style.cssdrafts/rpt.doc
yourdomain.com...
Amazon S3 Namensraum
Objekt-Key
Eindeutig innerhalb des Bucket
Amazon S3 Namensraum
Max. 1024 Bytes UTF-8 Einschließlich „Path“-Prefixe
Objekt-Key
Eindeutig innerhalb des Bucket
Amazon S3 Namensraum
assets/js/jquery/plugins/jtables.js
Das ist ein Objekt-Key
Max. 1024 Bytes UTF-8 Einschließlich „Path...
Durchsatz-Optimierung
S3 partitioniert automatisch basiert auf Key Prefix:
2134857/gamedata/start.png
2134857/gamedata/res...
Durchsatz-Optimierung
2134857/gamedata/start.png
2134857/gamedata/resource.rsrc
2134857/gamedata/results.txt
2134858/gamed...
Durchsatz-Optimierung
2134857/gamedata/start.png
2134857/gamedata/resource.rsrc
2134857/gamedata/results.txt
2134858/gamed...
Durchsatz-Optimierung
7584312/gamedata/start.png
7584312/gamedata/resource.rsrc
7584312/gamedata/results.txt
8584312/gamed...
Durchsatz-Optimierung
7584312/gamedata/start.png
7584312/gamedata/resource.rsrc
7584312/gamedata/results.txt
8584312/gamed...
Verschlüsselung
Absicherung von ruhenden Daten
Server Side Encryption
Automatische Verschlüsselung von
ruhenden Daten
Dauerhafte
S3 Schlüssel-Speicherung
Einfach
zusätzl...
Serverseitige Verschlüsselung
Bucket
High level design
Daten
Serverseitige Verschlüsselung
Daten Bucket Verschlüsseltes Objekt
Schlüssel pro Objekt
Verschlüsseltes Objekt
High level d...
Serverseitige Verschlüsselung
Daten Bucket Verschlüsseltes Objekt
Verschlüsselter
Schlüssel pro
ObjektSchlüssel pro Objekt...
Serverseitige Verschlüsselung
Daten Bucket Verschlüsseltes Objekt
Verschlüsselter
Schlüssel pro
Objekt
Schlüssel-
Manageme...
docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
Zugriffskontrolle
Sie entscheiden, wer was tun darf
Secure by Default
Sie entscheiden, was freigegeben wird
Policies für Buckets und Objekte
Policies, ACLs & IAM
Verwenden Si...
IAM
Detailliert
Administrierung als Teil des
rollenbasierten Zugriffs
Anwenden von Policies auf S3
auf Rollen-, Benutzer- ...
Bucket PoliciesIAM kontra
Detailliert
Administrierung als Teil des
rollenbasierten Zugriffs
Anwenden von Policies auf S3
a...
Bucket Policies ACLskontraIAM kontra
Detailliert
Administrierung als Teil des
rollenbasierten Zugriffs
Anwenden von Polici...
{"Statement":[{
"Effect":"Allow",
"Principal":{"AWS":["4649-6425", "5243-0045"]},
"Action":"*",
"Resource":"/mybucket/*",
...
{"Statement":[{
"Effect":"Allow",
"Principal":{"AWS":["4649-6425", "5243-0045"]},
"Action":"*",
"Resource":"/mybucket/*",
...
{"Statement":[{
"Effect":"Allow",
"Principal":{"AWS":["4649-6425", "5243-0045"]},
"Action":"*",
"Resource":"/mybucket/*",
...
{"Statement":[{
"Effect":"Allow",
"Principal":{"AWS":["4649-6425", "5243-0045"]},
"Action":"*",
"Resource":"/mybucket/*",
...
Lifecycle Management
Automatische Verwaltung der Objekte
Lifecycle Management
Lifecycle Management
Objekt-Löschung
Dauerhafte Löschung von Objekten aus S3
Lifecycle Management
Objekt-Löschung
Dauerhafte Löschung von Objekten aus S3
Objekt-Archivierung
Verschieben von Objekten ...
Glacier
Dauerhaftes Langzeitarchiv
Dauerhaftes Glacier Archiv
Dauerhaft
Entworfen für 99,999999999%
Dauerhaftigkeit der Archive
Kosteneffizient
Write-Once, R...
Logs
✗Zugänglich aus S3
Objekte
verfallen und
werden aus
S3 gelöscht
Zeit
Verfall
Logs
Txns
✗Zugänglich aus S3
Objekte
verfallen und
werden aus
S3 gelöscht
Zeit
Zugänglich aus S3
Objekt-Übergang
nach Glac...
Logs
Txns
✗Zugänglich aus S3
Objekte
verfallen und
werden aus
S3 gelöscht
Zeit
Zugänglich aus S3
Objekt-Übergang
nach Glac...
Logs
Txns
✗Zugänglich aus S3
Objekte
verfallen und
werden aus
S3 gelöscht
Zeit
Zugänglich aus S3
Objekt-Übergang
nach Glac...
3-5 Stunden Zugriffszeit
Wir gehen davon aus, dass Sie nicht oft
zugreifen
using (client = new AmazonS3Client()){
var lifeCycleConfiguration = new LifecycleConfiguration()
{
Rules = new List<Lifecy...
using (client = new AmazonS3Client()){
var lifeCycleConfiguration = new LifecycleConfiguration()
{
Rules = new List<Lifecy...
using (client = new AmazonS3Client()){
var lifeCycleConfiguration = new LifecycleConfiguration()
{
Rules = new List<Lifecy...
DEMO
Lifecycle Policies
POST /ObjectName?restore HTTP/1.1
Host: BucketName.s3.amazonaws.com
Date: date
Authorization: signatureValue
Content-MD5: ...
POST /ObjectName?restore HTTP/1.1
Host: BucketName.s3.amazonaws.com
Date: date
Authorization: signatureValue
Content-MD5: ...
Website Hosting
Statische Sites direkt aus S3
Es ist ein Web Dienst…
…also können wir Web-Inhalte
ausliefern
Einstellung Default Documents
Umleitung von Anfragen
{
"Version":"2008-10-17",
"Statement":[{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Acti...
{bucket-name}.s3-website-{region}.amazonaws.com
e.g. mybucket.s3-website-eu-west-1.amazonaws.com
s3-{region}.amazonaws.com...
DEMO
Website Hosting
R53
Recordset für:
aws-exampl.es
Website Bucket Name:
bucket
Recordset für:
Website Bucket Name:
bucket
Error.
html
Index
.html
R53
www.aws-exampl.es aws-e...
Website Bucket Name:
bucket
Recordset für:
Website Bucket Name:
bucket
Error.
html
Index
.html
R53
www.aws-exampl.es aws-e...
Website Bucket Name:
bucket
Recordset für:
Website Bucket Name:
bucket
Error.
html
Index
.html
R53
www.aws-exampl.es aws-e...
Website Bucket Name:
bucket
Recordset für:
Website Bucket Name:
bucket
Error.
html
Index
.html
R53
www.aws-exampl.es aws-e...
docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html
Zeitbeschränkte URLs
Kontrollieren Sie, wie lange Objekte zugreifbar sind
Signierte URLs
Bieten zeitbeschränkten Zugriff
auf Objekte
Zugriffsrechte
Für Objekte in nichtöffentlichen
Buckets um Zugr...
>>> import boto
>>> conn = boto.connect_s3()
>>> conn.generate_url(300, 'GET', bucket='ianmas-aws.testbucket',
key='testfi...
Fehler: Link Expired
AccessDenied
Request has expired
70297390BE427DC7
2014-02-03T11:03:58Z
I0rI0OWUCnBttFSpEw6Mx4u8uRHgtO...
Objekt-Versionierung
Erhalt der Objektgeschichte
Persistent
Auch Historie von
gelöschten Objekten
bleibt erhalten
Auf Bucket-Ebene
Erhält automatisch alle
Versionen des Ob...
Persistent
Auch Historie von
gelöschten Objekten
bleibt erhalten
Auf Bucket-Ebene
Erhält automatisch alle
Versionen des Ob...
Persistent
Auch Historie von
gelöschten Objekten
bleibt erhalten
Auf Bucket-Ebene
Erhält automatisch alle
Versionen des Ob...
>>> import boto
>>> conn = boto.connect_s3()
>>> bucket = conn.get_bucket(’mybucket')
>>> versions = bucket.list_versions(...
>>> key = bucket.get_key('myfile.txt',
version_id='8cjozv9Hmkzum8xj.8q8BZxR5CuXnzon’)
>>> key.get_contents_as_string()
'th...
>>> key = bucket.get_key('myfile.txt',
version_id='8cjozv9Hmkzum8xj.8q8BZxR5CuXnzon’)
>>> key.get_contents_as_string()
'th...
>>> key = bucket.get_key('myfile.txt',
version_id='8cjozv9Hmkzum8xj.8q8BZxR5CuXnzon’)
>>> key.get_contents_as_string()
'th...
Metadaten
System- und Benutzer-generiert
Name Beschreibung Änderbar?
Date Object creation date No
Content-Length Object size in bytes No
Content-MD5 Base64 encoded...
Benutzer-Metadaten
{your metadata key in here}
Key-Value Paare, die mit den Objekten gespeichert werden
>>> key.set_metadata(’my_tag', ’my metadata')
>>> key.get_metadata(’my_tag')
’my metadata'
CloudFront
Content Delivery von weltweiten Edge Locations
CloudFront
Edge Locations
Dallas(2)
St.Louis
Miami
JacksonvilleLos Angeles (2)
Palo Alto
Seattle
Ashburn(3)
Newark
New Yor...
Globale Content-Verteilung
Download
Herunterladen von statischen und
dynamischen Objekten
Streaming
RTMP Streaming direkt ...
Edge Access
Control
Optionaler CNAME
Cache Control
S3 Bucket
Weiterleitung
S3 Bucket
Optionaler CNAME
Logging nach S3
<html>
<script type='text/javascript'
src=’http://d2ew7gdzogp20x.cloudfront.net/jwplayer/jwplayer.js'></script>
<body>
<di...
Zusammenfassung
S3 – flexibler Web Storage
Applikations-Backends
Einfach mit dem S3 SDK
einzubinden
Bootstrapping
Skripte für EC2 Instance...
aws.amazon.com/de
skrause@amazon.de
@sk_bln
Codebeispiele: github.com/ianmas-aws/s3-masterclass
• Anfangen mit dem Free Tier:
http://aws.amazon.com/de/free/
• 25 US$ credits für neue Kunden:
http://aws.amazon.com/de/ca...
Webinar S3 für Fortgeschrittene
Webinar S3 für Fortgeschrittene
Webinar S3 für Fortgeschrittene
Webinar S3 für Fortgeschrittene
Webinar S3 für Fortgeschrittene
Webinar S3 für Fortgeschrittene
Webinar S3 für Fortgeschrittene
Nächste SlideShare
Wird geladen in …5
×

Webinar S3 für Fortgeschrittene

946 Aufrufe

Veröffentlicht am

Webinar vom 14.08.2014
In Amazon S3 sind Billionen von Objekten in verschiedensten Formaten gespeichert, von Backups über Web Site Assets bis zu digitalen Medien. In diesem Webinar gehen wir auf Features von S3 wie das Hosten von statischen Websites, Verschlüsselung oder Lifecycle Policies ein. Wir schauen auf die vielen Möglichkeiten, die Amazon S3 bietet, sprechen über Anwendungsfälle und Best Practices.
Die Aufzeichnung ist hier: http://youtu.be/Qad5GNvTz-U

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
946
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
6
Aktionen
Geteilt
0
Downloads
14
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Webinar S3 für Fortgeschrittene

  1. 1. Amazon S3 Für Fortgeschrittene Steffen Krause– Technical Evangelist @sk_bln
  2. 2. Mehr als nur ein „Simple“ Storage Service Ein umfassendes, verteiltes modernes Speichersystem Grundlage für viele verschiedene Architekturen Amazon S3
  3. 3. “Spotify needed a storage solution that could scale very quickly without incurring long lead times for upgrades. This led us to cloud storage, and in that market, Amazon Simple Storage Service (Amazon S3) is the most mature large-scale product. Amazon S3 gives us confidence in our ability to expand storage quickly while also providing high data durability.” Emil Fredriksson, Operations Director Find out more at : aws.amazon.com/solutions/case-studies/spotify/
  4. 4. Minecraft Realms and AWS S3 Minecraft Welten und Spielstatus sind in Amazon S3 gespeichert. Das System nutzt S3 Versionierung und gibt dem Administrator die Möglichkeit, auf eine frühere Version zurückzurollen. Das Team hat effiziente Uploads durch Nutzung von S3 Multipart Upload implementiert. Details: aws.typepad.com/aws/2014/01/hosting-minecraft-realms-on-aws.html
  5. 5. Sie speichern in S3 AWS speichert mit 99,999999999% Dauerhaftigkeit
  6. 6. Sehr skalierbarer Web- Zugriff auf Objekte Mehrere redundante Kopien innerhalb einer Region Sie speichern in S3 AWS speichert mit 99,999999999% Dauerhaftigkeit
  7. 7. Aber es ist mehr als ein Simple Storage Service
  8. 8. Objekte in S3 Billionen Objekte (1012) Mehr als 2 Millionen Anfragen pro Sekunde
  9. 9. Was ist S3? Hoch skalierbare Datenspeicherung Zugriff über APIsEin Web Store, kein Dateisystem Schnell Hochverfügbar und dauerhaft Kostengünstig
  10. 10. Ein Web Store, kein Dateisystem Write Once, Read Many (WORM) Eventually Consistent
  11. 11. Konzept-Diagramm, nicht tatsächliche Implementierung Region Availability Zone Indexing Storage Load balancers Web servers Availability Zone Indexing Storage Load balancers Web servers Ein Web Store, kein Dateisystem Write Once, Read Many (WORM) Eventually Consistent
  12. 12. Region Availability Zone Indexing Storage Load balancers Web servers Availability Zone Indexing Storage Load balancers Web servers Konzept-Diagramm, nicht tatsächliche Implementierung Ein Web Store, kein Dateisystem Write Once, Read Many (WORM) Eventually Consistent
  13. 13. Region Availability Zone Indexing Storage Load balancers Web servers Availability Zone Indexing Storage Load balancers Web servers Konzept-Diagramm, nicht tatsächliche Implementierung Ein Web Store, kein Dateisystem Write Once, Read Many (WORM) Eventually Consistent
  14. 14. Region Availability Zone Indexing Storage Load balancers Web servers Availability Zone Indexing Storage Load balancers Web servers Konzept-Diagramm, nicht tatsächliche Implementierung Ein Web Store, kein Dateisystem Write Once, Read Many (WORM) Eventually Consistent
  15. 15. Region Availability Zone Indexing Storage Load balancers Web servers Availability Zone Indexing Storage Load balancers Web servers Konzept-Diagramm, nicht tatsächliche Implementierung Ein Web Store, kein Dateisystem Write Once, Read Many (WORM) Eventually Consistent
  16. 16. Region Availability Zone Indexing Storage Load balancers Web servers Availability Zone Indexing Storage Load balancers Web servers Konzept-Diagramm, nicht tatsächliche Implementierung Ein Web Store, kein Dateisystem Write Once, Read Many (WORM) Eventually Consistent
  17. 17. Region Availability Zone Indexing Storage Load balancers Web servers Availability Zone Indexing Storage Load balancers Web servers Konzept-Diagramm, nicht tatsächliche Implementierung Ein Web Store, kein Dateisystem Write Once, Read Many (WORM) Eventually Consistent
  18. 18. Region Availability Zone Indexing Storage Load balancers Web servers Availability Zone Indexing Storage Load balancers Web servers Konzept-Diagramm, nicht tatsächliche Implementierung Ein Web Store, kein Dateisystem Write Once, Read Many (WORM) Eventually Consistent
  19. 19. Ein Web Store, kein Dateisystem Write Once, Read Many (WORM) Eventually Consistent
  20. 20. *außer US-STANDARD Region Neue Objekte Updates Deletes Daten werden synchron in mehreren Einrichtungen gespeichert ehe SUCCESS zurückgegeben wird Read-after-write consistency* Schreiben dann lesen: Möglich dass Key nicht existiert Schreiben dann auflisten: Key kann in der Liste fehlen Überschreiben dann lesen: Alte Daten können zurückgegeben werden Löschen dann lesen: Alte Daten können zurückgegeben werden Löschen dann auflisten: Gelöschter Key kann noch in Liste enthalten sein Ein Web Store, kein Dateisystem Write Once, Read Many (WORM) Eventually Consistent
  21. 21. Ein regionaler Dienst Ihre Daten verlassen nie die Region Es sei denn, Sie bewegen die Daten
  22. 22. Speicherklassen Kontrollieren die Art, wie S3 die Daten hält
  23. 23. Standard Bietet 99,999999999% Dauerhaftigkeit und 99,99% Verfügbarkeit der Objekte innerhalb eines Jahres Entworfen, um den gleichzeitigen Verlust der Daten in zwei Einrichtungen zu überdauern Amazon S3 Speicherklassen
  24. 24. Reduced Redundancy Storage Reduziert die Kosten durch Datenspeicherung mit geringerer Redundanz als der Standard Storage Bietet 99,99% Dauerhaftigkeit und 99,99% Verfügbarkeit der Objekte innerhalb eines Jahres Standard Bietet 99,999999999% Dauerhaftigkeit und 99,99% Verfügbarkeit der Objekte innerhalb eines Jahres Entworfen, um den gleichzeitigen Verlust der Daten in zwei Einrichtungen zu überdauern Amazon S3 Speicherklassen
  25. 25. Glacier Geeignet für Datenarchivierung, wo Daten selten zugegriffen werden und eine Zugriffszeit von mehreren Stunden akzeptabel ist Verwendet den sehr kostengünstigen Amazon Glacier Storage-Dienst, wird aber von Amazon S3 verwaltet Reduced Redundancy Storage Reduziert die Kosten durch Datenspeicherung mit geringerer Redundanz als der Standard Storage Bietet 99,99% Dauerhaftigkeit und 99,99% Verfügbarkeit der Objekte innerhalb eines Jahres Standard Bietet 99,999999999% Dauerhaftigkeit und 99,99% Verfügbarkeit der Objekte innerhalb eines Jahres Entworfen, um den gleichzeitigen Verlust der Daten in zwei Einrichtungen zu überdauern Amazon S3 Speicherklassen
  26. 26. Glacier Suitable for archiving data, where data access is infrequent and a retrieval time of several hours is acceptable Uses the very low-cost Amazon Glacier storage service, but managed through Amazon S3 Objekte, die Sie lange Zeit archivieren wollen z.B. Digitales Archiv von alten Filmen und Sendungen Standard Designed to provide 99.999999999% durability and 99.99% availability of objects over a given year Designed to sustain the concurrent loss of data in two facilities Objekte, die hohe Dauerhaftigkeit haben sollen z.B. Master-Kopie eines Films Reduced Redundancy Storage Reduces costs by storing data at lower levels of redundancy than the Standard storage Designed to provide 99.99% durability and 99.99% availability of objects over a given year Objekte, bei denen Sie sich den Verlust leisten können oder die wieder erstellt werden können z.B. verschiedene Formate des Filmes Amazon S3 Speicherklassen
  27. 27. Namensräume Objektbenennung, Buckets & Keys
  28. 28. Amazon S3 Namensraum Global eindeutig Bucket Name + Objektname (Key)
  29. 29. Amazon S3 Namensraum Amazon S3 Bucket Bucket Objekt Objekt ObjektObjekt Bucket Objekt Objekt
  30. 30. Amazon S3 Namensraum Amazon S3 jones-docshare media.mydomain.com beach.jpg img1.jpg style.cssdrafts/rpt.doc yourdomain.com swf/mediaplayer.swf img/banner1.jpg
  31. 31. Amazon S3 Namensraum Objekt-Key Eindeutig innerhalb des Bucket
  32. 32. Amazon S3 Namensraum Max. 1024 Bytes UTF-8 Einschließlich „Path“-Prefixe Objekt-Key Eindeutig innerhalb des Bucket
  33. 33. Amazon S3 Namensraum assets/js/jquery/plugins/jtables.js Das ist ein Objekt-Key Max. 1024 Bytes UTF-8 Einschließlich „Path“-Prefixe Objekt-Key Eindeutig innerhalb des Bucket
  34. 34. Durchsatz-Optimierung S3 partitioniert automatisch basiert auf Key Prefix: 2134857/gamedata/start.png 2134857/gamedata/resource.rsrc 2134857/gamedata/results.txt 2134858/gamedata/start.png 2134858/gamedata/resource.rsrc 2134858/gamedata/results.txt 2134859/gamedata/start.png 2134859/gamedata/resource.rsrc 2134859/gamedata/results.txt Objekt Keys:Bucket: mynewgame
  35. 35. Durchsatz-Optimierung 2134857/gamedata/start.png 2134857/gamedata/resource.rsrc 2134857/gamedata/results.txt 2134858/gamedata/start.png 2134858/gamedata/resource.rsrc 2134858/gamedata/results.txt 2134859/gamedata/start.png 2134859/gamedata/resource.rsrc 2134859/gamedata/results.txt mynewgame Inkrementelle Game Id S3 partitioniert automatisch basiert auf Key Prefix: Objekt Keys:Bucket:
  36. 36. Durchsatz-Optimierung 2134857/gamedata/start.png 2134857/gamedata/resource.rsrc 2134857/gamedata/results.txt 2134858/gamedata/start.png 2134858/gamedata/resource.rsrc 2134858/gamedata/results.txt 2134859/gamedata/start.png 2134859/gamedata/resource.rsrc 2134859/gamedata/results.txt mynewgame mynewgame/2 Partition: S3 partitioniert automatisch basiert auf Key Prefix: Objekt Keys:Bucket:
  37. 37. Durchsatz-Optimierung 7584312/gamedata/start.png 7584312/gamedata/resource.rsrc 7584312/gamedata/results.txt 8584312/gamedata/start.png 8584312/gamedata/resource.rsrc 8584312/gamedata/results.txt 9584312/gamedata/start.png 9584312/gamedata/resource.rsrc 9584312/gamedata/results.txt mynewgame Umgekehrte Game Id S3 partitioniert automatisch basiert auf Key Prefix: Objekt Keys:Bucket:
  38. 38. Durchsatz-Optimierung 7584312/gamedata/start.png 7584312/gamedata/resource.rsrc 7584312/gamedata/results.txt 8584312/gamedata/start.png 8584312/gamedata/resource.rsrc 8584312/gamedata/results.txt 9584312/gamedata/start.png 9584312/gamedata/resource.rsrc 9584312/gamedata/results.txt mynewgame mynewgame/7 mynewgame/8 mynewgame/9 Partitionen: S3 partitioniert automatisch basiert auf Key Prefix: Objekt Keys:Bucket:
  39. 39. Verschlüsselung Absicherung von ruhenden Daten
  40. 40. Server Side Encryption Automatische Verschlüsselung von ruhenden Daten Dauerhafte S3 Schlüssel-Speicherung Einfach zusätzlicher PUT Header Starkes AES-256 Voll verwaltet Kein eigenes Schlüsselmanagement notwendig Benutzerdefinierte Schlüssel möglich Alternativ: Clientseitige Verschlüsselung über das AWS Java SDK oder beliebige andere Bibliotheken
  41. 41. Serverseitige Verschlüsselung Bucket High level design Daten
  42. 42. Serverseitige Verschlüsselung Daten Bucket Verschlüsseltes Objekt Schlüssel pro Objekt Verschlüsseltes Objekt High level design
  43. 43. Serverseitige Verschlüsselung Daten Bucket Verschlüsseltes Objekt Verschlüsselter Schlüssel pro ObjektSchlüssel pro Objekt Verschlüsseltes Objekt Master-Schlüssel High level design
  44. 44. Serverseitige Verschlüsselung Daten Bucket Verschlüsseltes Objekt Verschlüsselter Schlüssel pro Objekt Schlüssel- Management (Monatliche Rotation) Schlüssel pro Objekt Verschlüsseltes Objekt Master-Schlüssel High level design
  45. 45. docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
  46. 46. Zugriffskontrolle Sie entscheiden, wer was tun darf
  47. 47. Secure by Default Sie entscheiden, was freigegeben wird Policies für Buckets und Objekte Policies, ACLs & IAM Verwenden Sie S3 Policies, ACLs oder IAM um Regeln zu definieren
  48. 48. IAM Detailliert Administrierung als Teil des rollenbasierten Zugriffs Anwenden von Policies auf S3 auf Rollen-, Benutzer- und Gruppenebene Allow Actions PutObject Resource arn:aws:s3:::mybucket/* Bob Jane
  49. 49. Bucket PoliciesIAM kontra Detailliert Administrierung als Teil des rollenbasierten Zugriffs Anwenden von Policies auf S3 auf Rollen-, Benutzer- und Gruppenebene Detailliert Anwenden von Policies auf Bucket- Ebene in S3 Benutzereinschränkungen ohne die Verwendung von IAM Allow Actions PutObject Resource arn:aws:s3:::mybucket/* Bob Jane Allow Bob, Jane Actions PutObject Resource arn:aws:s3:::mybucket/* mybucket
  50. 50. Bucket Policies ACLskontraIAM kontra Detailliert Administrierung als Teil des rollenbasierten Zugriffs Anwenden von Policies auf S3 auf Rollen-, Benutzer- und Gruppenebene Detailliert Anwenden von Policies auf Bucket- Ebene in S3 Benutzereinschränkungen ohne die Verwendung von IAM Grob Zugriffskontroll-Regeln auf Bucket und/oder Objektebene in S3 Allow Actions PutObject Resource arn:aws:s3:::mybucket/* Bob Jane Allow Bob, Jane Actions PutObject Resource arn:aws:s3:::mybucket/* mybucket Allow Everyone, Bob, Jane Actions Read mybucket myobject
  51. 51. {"Statement":[{ "Effect":"Allow", "Principal":{"AWS":["4649-6425", "5243-0045"]}, "Action":"*", "Resource":"/mybucket/*", "Condition":{ "IpAddress":{"AWS:SourceIp":"176.13.0.0/12"} }}]} Zugriffskontrolle – Bucket Policy
  52. 52. {"Statement":[{ "Effect":"Allow", "Principal":{"AWS":["4649-6425", "5243-0045"]}, "Action":"*", "Resource":"/mybucket/*", "Condition":{ "IpAddress":{"AWS:SourceIp":"176.13.0.0/12"} }}]} Zugriffskontrolle – Bucket Policy Zugelassene Accounts
  53. 53. {"Statement":[{ "Effect":"Allow", "Principal":{"AWS":["4649-6425", "5243-0045"]}, "Action":"*", "Resource":"/mybucket/*", "Condition":{ "IpAddress":{"AWS:SourceIp":"176.13.0.0/12"} }}]} Zugriffskontrolle – Bucket Policy Ressource
  54. 54. {"Statement":[{ "Effect":"Allow", "Principal":{"AWS":["4649-6425", "5243-0045"]}, "Action":"*", "Resource":"/mybucket/*", "Condition":{ "IpAddress":{"AWS:SourceIp":"176.13.0.0/12"} }}]} Zugriffskontrolle – Bucket Policy Zugelassene Quelladresse
  55. 55. Lifecycle Management Automatische Verwaltung der Objekte
  56. 56. Lifecycle Management
  57. 57. Lifecycle Management Objekt-Löschung Dauerhafte Löschung von Objekten aus S3
  58. 58. Lifecycle Management Objekt-Löschung Dauerhafte Löschung von Objekten aus S3 Objekt-Archivierung Verschieben von Objekten von S3 nach Glacier
  59. 59. Glacier Dauerhaftes Langzeitarchiv
  60. 60. Dauerhaftes Glacier Archiv Dauerhaft Entworfen für 99,999999999% Dauerhaftigkeit der Archive Kosteneffizient Write-Once, Read-Never. Kosteneffiziente Langzeitspeicherung Bezahlung für Datenzugriff
  61. 61. Logs ✗Zugänglich aus S3 Objekte verfallen und werden aus S3 gelöscht Zeit Verfall
  62. 62. Logs Txns ✗Zugänglich aus S3 Objekte verfallen und werden aus S3 gelöscht Zeit Zugänglich aus S3 Objekt-Übergang nach Glacier VerfallÜbergang
  63. 63. Logs Txns ✗Zugänglich aus S3 Objekte verfallen und werden aus S3 gelöscht Zeit Zugänglich aus S3 Objekt-Übergang nach Glacier Wiederherstellung der Objekte für x Stunden VerfallÜbergang
  64. 64. Logs Txns ✗Zugänglich aus S3 Objekte verfallen und werden aus S3 gelöscht Zeit Zugänglich aus S3 Objekt-Übergang nach Glacier Wiederherstellung der Objekte für x Stunden 3-5 Stunden Objekt in S3 RRS für x Stunden VerfallÜbergang
  65. 65. 3-5 Stunden Zugriffszeit Wir gehen davon aus, dass Sie nicht oft zugreifen
  66. 66. using (client = new AmazonS3Client()){ var lifeCycleConfiguration = new LifecycleConfiguration() { Rules = new List<LifecycleRule> { new LifecycleRule { Id = "Archive and delete rule", Prefix = "projectdocs/", Status = LifecycleRuleStatus.Enabled, Transition = new LifecycleTransition() { Days = 365, StorageClass = S3StorageClass.Glacier }, Expiration = new LifecycleRuleExpiration() { Days = 3650 } } } };
  67. 67. using (client = new AmazonS3Client()){ var lifeCycleConfiguration = new LifecycleConfiguration() { Rules = new List<LifecycleRule> { new LifecycleRule { Id = "Archive and delete rule", Prefix = "projectdocs/", Status = LifecycleRuleStatus.Enabled, Transition = new LifecycleTransition() { Days = 365, StorageClass = S3StorageClass.Glacier }, Expiration = new LifecycleRuleExpiration() { Days = 3650 } } } }; Übergang nach Glacier nach 1 Jahr
  68. 68. using (client = new AmazonS3Client()){ var lifeCycleConfiguration = new LifecycleConfiguration() { Rules = new List<LifecycleRule> { new LifecycleRule { Id = "Archive and delete rule", Prefix = "projectdocs/", Status = LifecycleRuleStatus.Enabled, Transition = new LifecycleTransition() { Days = 365, StorageClass = S3StorageClass.Glacier }, Expiration = new LifecycleRuleExpiration() { Days = 3650 } } } }; Lösche Objekt nach 10 Jahren
  69. 69. DEMO Lifecycle Policies
  70. 70. POST /ObjectName?restore HTTP/1.1 Host: BucketName.s3.amazonaws.com Date: date Authorization: signatureValue Content-MD5: MD5 <RestoreRequest xmlns="http://s3.amazonaws.com/doc/2006-3-01"> <Days>NumberOfDays</Days> </RestoreRequest>
  71. 71. POST /ObjectName?restore HTTP/1.1 Host: BucketName.s3.amazonaws.com Date: date Authorization: signatureValue Content-MD5: MD5 <RestoreRequest xmlns="http://s3.amazonaws.com/doc/2006-3-01"> <Days>NumberOfDays</Days> </RestoreRequest> 202 Accepted 200 OK 409 Conflict Restoration already in progress Object already restored, number of days updated Restore request accepted Response codes:
  72. 72. Website Hosting Statische Sites direkt aus S3
  73. 73. Es ist ein Web Dienst… …also können wir Web-Inhalte ausliefern
  74. 74. Einstellung Default Documents Umleitung von Anfragen
  75. 75. { "Version":"2008-10-17", "Statement":[{ "Sid":"PublicReadGetObject", "Effect":"Allow", "Principal": { "AWS": "*" }, "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::example-bucket/*" ] } ] }
  76. 76. {bucket-name}.s3-website-{region}.amazonaws.com e.g. mybucket.s3-website-eu-west-1.amazonaws.com s3-{region}.amazonaws.com/{bucket-name}/{object-key} e.g. s3-eu-west-1.amazonaws.com/mybucket/img.png {bucket-name}.s3-{region}.amazonaws.com/{object-key} e.g. mybucket.s3-eu-west-1.amazonaws.com/img.png Website Adressierung Normale Adressierung
  77. 77. DEMO Website Hosting
  78. 78. R53 Recordset für: aws-exampl.es
  79. 79. Website Bucket Name: bucket Recordset für: Website Bucket Name: bucket Error. html Index .html R53 www.aws-exampl.es aws-exampl.es aws-exampl.es
  80. 80. Website Bucket Name: bucket Recordset für: Website Bucket Name: bucket Error. html Index .html R53 www.aws-exampl.es aws-exampl.es aws-exampl.es Website Redirect nach: aws-exampl.es
  81. 81. Website Bucket Name: bucket Recordset für: Website Bucket Name: bucket Error. html Index .html R53 www.aws-exampl.es aws-exampl.es aws-exampl.es aws-exampl.es Ein Record ‘Alias’ zur S3 Website: aws-exampl.es @ s3-website-eu-west-1.amazonaws.com docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html Website Redirect nach:
  82. 82. Website Bucket Name: bucket Recordset für: Website Bucket Name: bucket Error. html Index .html R53 www.aws-exampl.es aws-exampl.es aws-exampl.es aws-exampl.es aws-exampl.es @ s3-website-eu-west-1.amazonaws.com CNAME für www. nach: www.aws-exampl.es.s3-website-eu-west- 1.amazonaws.com docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html Ein Record ‘Alias’ zur S3 Website: Website Redirect nach:
  83. 83. docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html
  84. 84. Zeitbeschränkte URLs Kontrollieren Sie, wie lange Objekte zugreifbar sind
  85. 85. Signierte URLs Bieten zeitbeschränkten Zugriff auf Objekte Zugriffsrechte Für Objekte in nichtöffentlichen Buckets um Zugriff auf Objekte nach Zeitbeschränkung zu verhindern https://ianmas-aws.testbucket.s3.amazonaws.com/testfile.txt ?Signature=JHCa39GV1fKRKkEnAWzI88lH7f8%3D &Expires=1391425438 &AWSAccessKeyId=AKIAIRBKBJ3ZAYAXFC2Q
  86. 86. >>> import boto >>> conn = boto.connect_s3() >>> conn.generate_url(300, 'GET', bucket='ianmas-aws.testbucket', key='testfile.txt') 'https://ianmas- aws.testbucket.s3.amazonaws.com/testfile.txt?Signature=QUWA%2BGOohFeJ 5pdEzxtdaIFIA6w%3D&Expires=1391425142&AWSAccessKeyId=AKIAIRBKBJ3ZAYAX FC2Q’ >>> conn.generate_url(300, 'GET', bucket='ianmas-aws.testbucket', key='testfile.txt', force_http=True) 'http://ianmas- aws.testbucket.s3.amazonaws.com/testfile.txt?Signature=tALx9KeeSisDSC 0N7KlM%2BIDFZXI%3D&Expires=1391425562&AWSAccessKeyId=AKIAIRBKBJ3ZAYAX FC2Q' Erster Parameter ist Link-Lebenszeit in Sekunden Erzwinge nicht-SSL-Link
  87. 87. Fehler: Link Expired AccessDenied Request has expired 70297390BE427DC7 2014-02-03T11:03:58Z I0rI0OWUCnBttFSpEw6Mx4u8uRHgtOSw9k2euDW37skFCU7HH0ulSkUGGaUbn2vg 2014-02-03T11:08:22Z
  88. 88. Objekt-Versionierung Erhalt der Objektgeschichte
  89. 89. Persistent Auch Historie von gelöschten Objekten bleibt erhalten Auf Bucket-Ebene Erhält automatisch alle Versionen des Objekts
  90. 90. Persistent Auch Historie von gelöschten Objekten bleibt erhalten Auf Bucket-Ebene Erhält automatisch alle Versionen des Objekts
  91. 91. Persistent Auch Historie von gelöschten Objekten bleibt erhalten Auf Bucket-Ebene Erhält automatisch alle Versionen des Objekts
  92. 92. >>> import boto >>> conn = boto.connect_s3() >>> bucket = conn.get_bucket(’mybucket') >>> versions = bucket.list_versions() >>> for version in versions: ... print version.name + version.version_id ... myfile.txt jU9eVv800OlP4PQx6zskMEyPIoExne57 myfile.txt xOJzMvMmGv0Bx2v4QpIypbkkH2XE2yyq myfile.txt 8cjozv9Hmkzum8xj.8q8BZxR5CuXnzon Object Versions -IDs
  93. 93. >>> key = bucket.get_key('myfile.txt', version_id='8cjozv9Hmkzum8xj.8q8BZxR5CuXnzon’) >>> key.get_contents_as_string() 'this is version 1 of my file’ Inhalte einer Version abrufen
  94. 94. >>> key = bucket.get_key('myfile.txt', version_id='8cjozv9Hmkzum8xj.8q8BZxR5CuXnzon’) >>> key.get_contents_as_string() 'this is version 1 of my file’ >>> key = bucket.get_key('myfile.txt', version_id='xOJzMvMmGv0Bx2v4QpIypbkkH2XE2yyq’) >>> key.get_contents_as_string() 'this is version 2 of my file’
  95. 95. >>> key = bucket.get_key('myfile.txt', version_id='8cjozv9Hmkzum8xj.8q8BZxR5CuXnzon’) >>> key.get_contents_as_string() 'this is version 1 of my file’ >>> key = bucket.get_key('myfile.txt', version_id='xOJzMvMmGv0Bx2v4QpIypbkkH2XE2yyq’) >>> key.get_contents_as_string() 'this is version 2 of my file’ >>> key.generate_url(600) 'https://mybucket.s3.amazonaws.com/myfile.txt?Signature=ABCD& Expires=1358857379&AWSAccessKeyId=AB& versionId=xOJzMvMmGv0Bx2v4QpIypbkkH2XE2yyq' Erstellen einer 10 Minuten zugreifbaren URL für die ältere Version
  96. 96. Metadaten System- und Benutzer-generiert
  97. 97. Name Beschreibung Änderbar? Date Object creation date No Content-Length Object size in bytes No Content-MD5 Base64 encoded 128bit MD5 digest No x-amz-server-side-encryption Server side encryption enabled for object Yes x-amz-version-id Object version No x-amz-delete-marker Indicates a version enabled object is deleted No x-amz-storage-class Storage class for the object Yes x-amz-website-redirect-location Redirects request for the object to another object or external URL Yes System-Metadaten
  98. 98. Benutzer-Metadaten {your metadata key in here} Key-Value Paare, die mit den Objekten gespeichert werden
  99. 99. >>> key.set_metadata(’my_tag', ’my metadata') >>> key.get_metadata(’my_tag') ’my metadata'
  100. 100. CloudFront Content Delivery von weltweiten Edge Locations
  101. 101. CloudFront Edge Locations Dallas(2) St.Louis Miami JacksonvilleLos Angeles (2) Palo Alto Seattle Ashburn(3) Newark New York (3) Dublin London(2) Amsterdam (2) Stockholm Frankfurt(2) Paris(2) Singapore(2) Hong Kong (2) Tokyo (2) Sao Paulo South Bend San Jose Osaka Milan Sydney Madrid Seoul Mumbai ChennaiMarseille Warsaw Manila Taipei Rio de Janeiro
  102. 102. Globale Content-Verteilung Download Herunterladen von statischen und dynamischen Objekten Streaming RTMP Streaming direkt aus Mediendateien in S3
  103. 103. Edge Access Control Optionaler CNAME Cache Control S3 Bucket Weiterleitung
  104. 104. S3 Bucket Optionaler CNAME Logging nach S3
  105. 105. <html> <script type='text/javascript' src=’http://d2ew7gdzogp20x.cloudfront.net/jwplayer/jwplayer.js'></script> <body> <div id='player'></div> <script type='text/javascript'> jwplayer('player').setup({ file: "rtmp://s1eat02wfxn38u.cloudfront.net/cfx/st/montage-medium.mp4", width: "480", height: "270", }); </script> </body> </html> Streaming Distribution Download Distribution
  106. 106. Zusammenfassung
  107. 107. S3 – flexibler Web Storage Applikations-Backends Einfach mit dem S3 SDK einzubinden Bootstrapping Skripte für EC2 Instance Bootstrapping in S3 Applikationslogs Logs speichern und mit EMR analysieren Web content Serve content and distribute globally Documentation Store documents with versioning and security models Backups & Archive Storage Gateway, Dritthersteller-Werkzeuge
  108. 108. aws.amazon.com/de skrause@amazon.de @sk_bln Codebeispiele: github.com/ianmas-aws/s3-masterclass
  109. 109. • Anfangen mit dem Free Tier: http://aws.amazon.com/de/free/ • 25 US$ credits für neue Kunden: 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/ • Slides: http://de.slideshare.net/AWSAktuell • Demo-Serie auf Youtube: http://aws.typepad.com/awsaktuell/techsnacks-videos-deutsch.html Ressourcen

×