webinar s3 für fortgeschrittene

116
Amazon S3 Für Fortgeschrittene Steffen Krause– Technical Evangelist @sk_bln

Upload: aws-germany

Post on 20-Jun-2015

487 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Webinar S3 für Fortgeschrittene

Amazon S3

Für Fortgeschrittene

Steffen Krause– Technical Evangelist@sk_bln

Page 2: Webinar S3 für Fortgeschrittene

Mehr als nur ein „Simple“ Storage Service

Ein umfassendes, verteiltes modernes Speichersystem

Grundlage für viele verschiedene Architekturen

Amazon S3

Page 3: Webinar S3 für Fortgeschrittene

Case Study

Page 4: Webinar S3 für Fortgeschrittene

“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/

Case Study

Page 5: Webinar S3 für Fortgeschrittene

Case Study

Page 6: Webinar S3 für Fortgeschrittene

Case Study

Page 7: Webinar S3 für Fortgeschrittene

Case Study

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

Page 8: Webinar S3 für Fortgeschrittene

Sie speichern in S3AWS speichert mit 99,999999999%

Dauerhaftigkeit

Page 9: Webinar S3 für Fortgeschrittene

Sehr skalierbarer Web-Zugriff auf Objekte

Mehrere redundante Kopien innerhalb einer Region

Sie speichern in S3AWS speichert mit 99,999999999%

Dauerhaftigkeit

Page 10: Webinar S3 für Fortgeschrittene

Aber es ist mehr als ein Simple Storage Service

Page 11: Webinar S3 für Fortgeschrittene

Objekte in S3

Billionen Objekte(1012)

Mehr als 2 Millionen Anfragen pro Sekunde

Page 12: Webinar S3 für Fortgeschrittene

Was ist S3?

Hoch skalierbare Datenspeicherung

Zugriff über APIsEin Web Store, kein Dateisystem

Schnell

Hochverfügbar und dauerhaft

Kostengünstig

Page 13: Webinar S3 für Fortgeschrittene

Ein Web Store, kein Dateisystem

Write Once, Read Many (WORM)

Eventually Consistent

Page 14: Webinar S3 für Fortgeschrittene

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

Page 15: Webinar S3 für Fortgeschrittene

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

Page 16: Webinar S3 für Fortgeschrittene

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

Page 17: Webinar S3 für Fortgeschrittene

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

Page 18: Webinar S3 für Fortgeschrittene

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

Page 19: Webinar S3 für Fortgeschrittene

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

Page 20: Webinar S3 für Fortgeschrittene

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

Page 21: Webinar S3 für Fortgeschrittene

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

Page 22: Webinar S3 für Fortgeschrittene

Ein Web Store, kein Dateisystem

Write Once, Read Many (WORM)

Eventually Consistent

Page 23: Webinar S3 für Fortgeschrittene

*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

Page 24: Webinar S3 für Fortgeschrittene

Ein regionaler DienstIhre Daten verlassen nie die RegionEs sei denn, Sie bewegen die Daten

Page 25: Webinar S3 für Fortgeschrittene

SpeicherklassenKontrollieren die Art, wie S3 die Daten hält

Page 26: Webinar S3 für Fortgeschrittene

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

Page 27: Webinar S3 für Fortgeschrittene

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

Page 28: Webinar S3 für Fortgeschrittene

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

Page 29: Webinar S3 für Fortgeschrittene

GlacierSuitable 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

StandardDesigned 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 StorageReduces 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

Page 30: Webinar S3 für Fortgeschrittene

NamensräumeObjektbenennung, Buckets & Keys

Page 31: Webinar S3 für Fortgeschrittene

Amazon S3 Namensraum

Global eindeutig

Bucket Name + Objektname (Key)

Page 32: Webinar S3 für Fortgeschrittene

Amazon S3 Namensraum

Amazon S3

Bucket Bucket

Objekt Objekt ObjektObjekt

Bucket

Objekt Objekt

Page 33: Webinar S3 für Fortgeschrittene

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

Page 34: Webinar S3 für Fortgeschrittene

Amazon S3 Namensraum

Objekt-Key

Eindeutig innerhalb des Bucket

Page 35: Webinar S3 für Fortgeschrittene

Amazon S3 Namensraum

Max. 1024 Bytes UTF-8 Einschließlich „Path“-Prefixe

Objekt-Key

Eindeutig innerhalb des Bucket

Page 36: Webinar S3 für Fortgeschrittene

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

Page 37: Webinar S3 für Fortgeschrittene

Durchsatz-Optimierung

S3 partitioniert automatisch basiert auf Key Prefix:

Tipp

2134857/gamedata/start.png2134857/gamedata/resource.rsrc2134857/gamedata/results.txt2134858/gamedata/start.png2134858/gamedata/resource.rsrc2134858/gamedata/results.txt2134859/gamedata/start.png2134859/gamedata/resource.rsrc2134859/gamedata/results.txt

Objekt Keys:Bucket:

mynewgame

Page 38: Webinar S3 für Fortgeschrittene

Durchsatz-OptimierungTi

pp

2134857/gamedata/start.png2134857/gamedata/resource.rsrc2134857/gamedata/results.txt2134858/gamedata/start.png2134858/gamedata/resource.rsrc2134858/gamedata/results.txt2134859/gamedata/start.png2134859/gamedata/resource.rsrc2134859/gamedata/results.txt

mynewgame

InkrementelleGame Id

S3 partitioniert automatisch basiert auf Key Prefix:

Objekt Keys:Bucket:

Page 39: Webinar S3 für Fortgeschrittene

Durchsatz-OptimierungTi

p

2134857/gamedata/start.png2134857/gamedata/resource.rsrc2134857/gamedata/results.txt2134858/gamedata/start.png2134858/gamedata/resource.rsrc2134858/gamedata/results.txt2134859/gamedata/start.png2134859/gamedata/resource.rsrc2134859/gamedata/results.txt

mynewgame

mynewgame/2

Partition:

S3 partitioniert automatisch basiert auf Key Prefix:

Objekt Keys:Bucket:

Page 40: Webinar S3 für Fortgeschrittene

Durchsatz-OptimierungTi

p

7584312/gamedata/start.png7584312/gamedata/resource.rsrc7584312/gamedata/results.txt8584312/gamedata/start.png8584312/gamedata/resource.rsrc8584312/gamedata/results.txt9584312/gamedata/start.png9584312/gamedata/resource.rsrc9584312/gamedata/results.txt

mynewgame

Umgekehrte Game Id

S3 partitioniert automatisch basiert auf Key Prefix:

Objekt Keys:Bucket:

Page 41: Webinar S3 für Fortgeschrittene

Durchsatz-OptimierungTi

p

7584312/gamedata/start.png7584312/gamedata/resource.rsrc7584312/gamedata/results.txt8584312/gamedata/start.png8584312/gamedata/resource.rsrc8584312/gamedata/results.txt9584312/gamedata/start.png9584312/gamedata/resource.rsrc9584312/gamedata/results.txt

mynewgame

mynewgame/7mynewgame/8mynewgame/9

Partitionen:

S3 partitioniert automatisch basiert auf Key Prefix:

Objekt Keys:Bucket:

Page 42: Webinar S3 für Fortgeschrittene

VerschlüsselungAbsicherung von ruhenden Daten

Page 43: Webinar S3 für Fortgeschrittene

Server Side Encryption

Automatische Verschlüsselung von ruhenden Daten

DauerhafteS3 Schlüssel-Speicherung

Einfach zusätzlicher PUT Header

StarkesAES-256

Voll verwaltetKein eigenes Schlüsselmanagement notwendig

Benutzerdefinierte Schlüssel möglich

Alternativ: Clientseitige Verschlüsselung über das AWS Java SDK oder beliebige andere Bibliotheken

Page 44: Webinar S3 für Fortgeschrittene

Serverseitige Verschlüsselung O

bjek

t Put

Bucket

High level design

Daten

Page 45: Webinar S3 für Fortgeschrittene

Serverseitige Verschlüsselung O

bjek

t Put

Daten Bucket Verschlüsseltes Objekt

Schlüssel pro Objekt

Verschlüsseltes Objekt

High level design

Page 46: Webinar S3 für Fortgeschrittene

Serverseitige Verschlüsselung O

bjek

t Put

Daten Bucket Verschlüsseltes Objekt

Verschlüsselter Schlüssel pro

ObjektSchlüssel pro Objekt

Verschlüsseltes Objekt

Master-Schlüssel

High level design

Page 47: Webinar S3 für Fortgeschrittene

Serverseitige Verschlüsselung O

bjek

t Put

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

Page 49: Webinar S3 für Fortgeschrittene

ZugriffskontrolleSie entscheiden, wer was tun darf

Page 50: Webinar S3 für Fortgeschrittene

Secure by Default

Sie entscheiden, was freigegeben wirdPolicies für Buckets und Objekte

Policies, ACLs & IAMVerwenden Sie S3 Policies, ACLs oder

IAM um Regeln zu definieren

Page 51: Webinar S3 für Fortgeschrittene

IAMDetailliert

Administrierung als Teil des rollenbasierten Zugriffs

Anwenden von Policies auf S3 auf Rollen-, Benutzer- und

Gruppenebene

Allow

ActionsPutObject

Resourcearn:aws:s3:::mybucket/*

Bob Jane

Page 52: Webinar S3 für Fortgeschrittene

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

ActionsPutObject

Resourcearn:aws:s3:::mybucket/*

Bob Jane

AllowBob, Jane

ActionsPutObject

Resourcearn:aws:s3:::mybucket/*

mybucket

Page 53: Webinar S3 für Fortgeschrittene

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

ActionsPutObject

Resourcearn:aws:s3:::mybucket/*

Bob Jane

AllowBob, Jane

ActionsPutObject

Resourcearn:aws:s3:::mybucket/*

mybucket

AllowEveryone, Bob, Jane

ActionsRead

mybucket myobject

Page 54: Webinar S3 für Fortgeschrittene

{"Statement":[{ "Effect":"Allow", "Principal":{"AWS":["4649-6425", "5243-0045"]}, "Action":"*", "Resource":"/mybucket/*", "Condition":{ "IpAddress":{"AWS:SourceIp":"176.13.0.0/12"}}}]}

Zugriffskontrolle – Bucket Policy

Bucke

t pol

icy

Page 55: Webinar S3 für Fortgeschrittene

{"Statement":[{ "Effect":"Allow", "Principal":{"AWS":["4649-6425", "5243-0045"]}, "Action":"*", "Resource":"/mybucket/*", "Condition":{ "IpAddress":{"AWS:SourceIp":"176.13.0.0/12"}}}]}

Zugriffskontrolle – Bucket Policy

Bucke

t pol

icy

Zugelassene Accounts

Page 56: Webinar S3 für Fortgeschrittene

{"Statement":[{ "Effect":"Allow", "Principal":{"AWS":["4649-6425", "5243-0045"]}, "Action":"*", "Resource":"/mybucket/*", "Condition":{ "IpAddress":{"AWS:SourceIp":"176.13.0.0/12"}}}]}

Zugriffskontrolle – Bucket Policy

Bucke

t pol

icy

Ressource

Page 57: Webinar S3 für Fortgeschrittene

{"Statement":[{ "Effect":"Allow", "Principal":{"AWS":["4649-6425", "5243-0045"]}, "Action":"*", "Resource":"/mybucket/*", "Condition":{ "IpAddress":{"AWS:SourceIp":"176.13.0.0/12"}}}]}

Zugriffskontrolle – Bucket Policy

Bucke

t pol

icy

Zugelassene Quelladresse

Page 58: Webinar S3 für Fortgeschrittene

Lifecycle ManagementAutomatische Verwaltung der Objekte

Page 59: Webinar S3 für Fortgeschrittene

Lifecycle Management

Page 60: Webinar S3 für Fortgeschrittene

Lifecycle Management

Objekt-LöschungDauerhafte Löschung von Objekten aus S3

Page 61: Webinar S3 für Fortgeschrittene

Lifecycle Management

Objekt-LöschungDauerhafte Löschung von Objekten aus S3

Objekt-ArchivierungVerschieben von Objekten von S3

nach Glacier

Page 62: Webinar S3 für Fortgeschrittene

GlacierDauerhaftes Langzeitarchiv

Page 63: Webinar S3 für Fortgeschrittene

Dauerhaftes Glacier Archiv

DauerhaftEntworfen für 99,999999999%

Dauerhaftigkeit der Archive

KosteneffizientWrite-Once, Read-Never.

Kosteneffiziente LangzeitspeicherungBezahlung für Datenzugriff

Page 64: Webinar S3 für Fortgeschrittene

Logs ✗Zugänglich aus S3

Objekte verfallen und werden aus S3 gelöscht

Zeit

Lifecycle Mgm

tV

erfa

ll

Page 65: Webinar S3 für Fortgeschrittene

Logs

Txns

✗Zugänglich aus S3

Objekte verfallen und werden aus S3 gelöscht

Zeit

Zugänglich aus S3

Objekt-Übergang nach Glacier

Lifecycle Mgm

tV

erfa

llÜ

berg

ang

Page 66: Webinar S3 für Fortgeschrittene

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

Lifecycle Mgm

tV

erfa

llÜ

berg

ang

Page 67: Webinar S3 für Fortgeschrittene

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-5Stunden

Objekt in S3 RRS für x Stunden

Lifecycle Mgm

tV

erfa

llÜ

berg

ang

Page 68: Webinar S3 für Fortgeschrittene

3-5 Stunden ZugriffszeitWir gehen davon aus, dass Sie nicht oft

zugreifen

Page 69: Webinar S3 für Fortgeschrittene

Konso

le

Page 70: Webinar S3 für Fortgeschrittene

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 } } } };

.net

Page 71: Webinar S3 für Fortgeschrittene

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 } } } };

.net

Übergang nach Glacier nach 1 Jahr

Page 72: Webinar S3 für Fortgeschrittene

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 } } } };

.net

Lösche Objekt nach 10 Jahren

Page 73: Webinar S3 für Fortgeschrittene

Konso

le

Page 74: Webinar S3 für Fortgeschrittene

DEMOLifecycle Policies

Page 75: Webinar S3 für Fortgeschrittene

REST API

POST /ObjectName?restore HTTP/1.1Host: BucketName.s3.amazonaws.comDate: dateAuthorization: signatureValueContent-MD5: MD5

<RestoreRequest xmlns="http://s3.amazonaws.com/doc/2006-3-01"> <Days>NumberOfDays</Days></RestoreRequest>

Page 76: Webinar S3 für Fortgeschrittene

REST API

POST /ObjectName?restore HTTP/1.1Host: BucketName.s3.amazonaws.comDate: dateAuthorization: signatureValueContent-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:

Page 77: Webinar S3 für Fortgeschrittene

Website HostingStatische Sites direkt aus S3

Page 78: Webinar S3 für Fortgeschrittene

Es ist ein Web Dienst……also können wir Web-Inhalte

ausliefern

Page 79: Webinar S3 für Fortgeschrittene

Konso

le

Einstellung Default Documents

Umleitung von Anfragen

Page 80: Webinar S3 für Fortgeschrittene

{ "Version":"2008-10-17", "Statement":[{

"Sid":"PublicReadGetObject", "Effect":"Allow",

"Principal": { "AWS": "*" }, "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::example-bucket/*" ] } ]}

Bucke

t Pol

icy

Page 81: Webinar S3 für Fortgeschrittene

{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

Page 82: Webinar S3 für Fortgeschrittene

DEMOWebsite Hosting

Page 83: Webinar S3 für Fortgeschrittene

R53

Web

sites Recordset für:

aws-exampl.es

Page 84: Webinar S3 für Fortgeschrittene

Website Bucket Name:

bucket

Recordset für:

Website Bucket Name:

bucketError.html

Index.html

R53

Web

sites

www.aws-exampl.es aws-exampl.es

aws-exampl.es

Page 85: Webinar S3 für Fortgeschrittene

Website Bucket Name:

bucket

Recordset für:

Website Bucket Name:

bucketError.html

Index.html

R53

Web

sites

www.aws-exampl.es aws-exampl.es

aws-exampl.es

Website Redirect nach:aws-exampl.es

Page 86: Webinar S3 für Fortgeschrittene

Website Bucket Name:

bucket

Recordset für:

Website Bucket Name:

bucketError.html

Index.html

R53

Web

sites

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:

Page 87: Webinar S3 für Fortgeschrittene

Website Bucket Name:

bucket

Recordset für:

Website Bucket Name:

bucketError.html

Index.html

R53

Web

sites

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:

Page 89: Webinar S3 für Fortgeschrittene

Zeitbeschränkte URLsKontrollieren Sie, wie lange Objekte zugreifbar sind

Page 90: Webinar S3 für Fortgeschrittene

Signierte URLsBieten zeitbeschränkten Zugriff

auf Objekte

ZugriffsrechteFü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

Page 91: Webinar S3 für Fortgeschrittene

Pytho

n Bot

o

>>> 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%2BGOohFeJ5pdEzxtdaIFIA6w%3D&Expires=1391425142&AWSAccessKeyId=AKIAIRBKBJ3ZAYAXFC2Q’

>>> 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=tALx9KeeSisDSC0N7KlM%2BIDFZXI%3D&Expires=1391425562&AWSAccessKeyId=AKIAIRBKBJ3ZAYAXFC2Q'

Erster Parameter ist Link-Lebenszeit in

Sekunden

Erzwinge nicht-SSL-Link

Page 92: Webinar S3 für Fortgeschrittene

Fehler: Link Expired

<?xml version="1.0" encoding="UTF-8"?><Error><Code>AccessDenied</Code><Message>Request has expired</Message><RequestId>70297390BE427DC7</RequestId><Expires>2014-02-03T11:03:58Z</Expires><HostId>I0rI0OWUCnBttFSpEw6Mx4u8uRHgtOSw9k2euDW37skFCU7HH0ulSkUGGaUbn2vg</HostId><ServerTime>2014-02-03T11:08:22Z</ServerTime>

</Error>

Page 93: Webinar S3 für Fortgeschrittene

Objekt-VersionierungErhalt der Objektgeschichte

Page 94: Webinar S3 für Fortgeschrittene

PersistentAuch Historie von

gelöschten Objekten bleibt erhalten

Auf Bucket-EbeneErhält automatisch alle Versionen des Objekts

Page 95: Webinar S3 für Fortgeschrittene

PersistentAuch Historie von

gelöschten Objekten bleibt erhalten

Auf Bucket-EbeneErhält automatisch alle Versionen des Objekts

Page 96: Webinar S3 für Fortgeschrittene

PersistentAuch Historie von

gelöschten Objekten bleibt erhalten

Auf Bucket-EbeneErhält automatisch alle Versionen des Objekts

Page 97: Webinar S3 für Fortgeschrittene

Pytho

n bo

to

>>> 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 jU9eVv800OlP4PQx6zskMEyPIoExne57myfile.txt xOJzMvMmGv0Bx2v4QpIypbkkH2XE2yyqmyfile.txt 8cjozv9Hmkzum8xj.8q8BZxR5CuXnzon

Object Versions

-IDs

Page 98: Webinar S3 für Fortgeschrittene

Pytho

n bo

to

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

Page 99: Webinar S3 für Fortgeschrittene

Pytho

n bo

to

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

Page 100: Webinar S3 für Fortgeschrittene

Pytho

n bo

to

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

Page 101: Webinar S3 für Fortgeschrittene

MetadatenSystem- und Benutzer-generiert

Page 102: Webinar S3 für Fortgeschrittene

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

Page 103: Webinar S3 für Fortgeschrittene

Benutzer-Metadaten

x-amz-meta-{your metadata key in here}

Key-Value Paare, die mit den Objekten gespeichert werden

Page 104: Webinar S3 für Fortgeschrittene

>>> key.set_metadata(’my_tag', ’my metadata')

>>> key.get_metadata(’my_tag')’my metadata'

Pytho

n bo

to

Page 105: Webinar S3 für Fortgeschrittene

CloudFrontContent Delivery von weltweiten Edge Locations

Page 106: Webinar S3 für Fortgeschrittene

CloudFront

Edge Locations

Dallas(2)

St.Louis

Miami

JacksonvilleLos Angeles (2)

Palo Alto

Seattle

Ashburn(3)

NewarkNew 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

OsakaMilan

Sydney

Madrid

Seoul

Mumbai

ChennaiMarseille

Warsaw

Manila

Taipei

Rio de Janeiro

Page 107: Webinar S3 für Fortgeschrittene

Globale Content-Verteilung

DownloadHerunterladen von statischen und

dynamischen Objekten

StreamingRTMP Streaming direkt aus

Mediendateien in S3

Page 108: Webinar S3 für Fortgeschrittene

Konso

le

Page 109: Webinar S3 für Fortgeschrittene

Konso

le

Edge Access Control

Optionaler CNAME

Cache Control

S3 Bucket

Weiterleitung

Page 110: Webinar S3 für Fortgeschrittene

Konso

le

Page 111: Webinar S3 für Fortgeschrittene

S3 Bucket

Optionaler CNAME

Logging nach S3

Konso

le

Page 112: Webinar S3 für Fortgeschrittene

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

Beisp

iel

Streaming Distribution

Download Distribution

Page 113: Webinar S3 für Fortgeschrittene

Zusammenfassung

Page 114: Webinar S3 für Fortgeschrittene

S3 – flexibler Web Storage

Applikations-BackendsEinfach mit dem S3 SDK

einzubinden

BootstrappingSkripte für EC2 Instance

Bootstrapping in S3

ApplikationslogsLogs speichern und mit

EMR analysieren Web contentServe content and distribute globally

DocumentationStore documents with

versioning and security models

Backups & ArchiveStorage Gateway,

Dritthersteller-Werkzeuge

Page 115: Webinar S3 für Fortgeschrittene

aws.amazon.com/[email protected]

@sk_bln

Codebeispiele: github.com/ianmas-aws/s3-masterclass

Page 116: Webinar S3 für Fortgeschrittene

• 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