S3 (Simple Storage Service) und EBS (Elastic Block Store) sind zwei von Amazon angebotene Dateispeicherdienste. Der Hauptunterschied zwischen ihnen besteht darin, womit sie verwendet werden können. EBS ist speziell für EC2-Instanzen (Elastic Computing Cloud) gedacht und kann nur dann aufgerufen werden, wenn es an eine Instanz angehängt ist. Andererseits ist S3 nicht auf EC2 beschränkt. Die Dateien innerhalb eines S3-Buckets können mit HTTP-Protokollen und sogar mit BitTorrent abgerufen werden. Viele Sites verwenden S3, um die meisten ihrer Dateien zu speichern, da sie für HTTP-Clients zugänglich sind. Webbrowser zum Beispiel.
Wie bereits oben erwähnt, benötigen Sie eine Art Software, um Informationen mit S3 lesen oder schreiben zu können. Mit EBS kann ein Volume in einer EC2-Instanz gemountet werden, und es erscheint wie eine Festplattenpartition. Es kann mit jedem Dateisystem formatiert werden, und Dateien können von der EC2-Instanz genauso wie auf einer Festplatte geschrieben oder gelesen werden.
Wenn es um die Gesamtmenge geht, die Sie einlagern können, hat S3 immer noch die Oberhand. EBS hat ein Standardlimit von 20 Volumes, wobei jedes Volume bis zu 1 TB Daten enthält. Bei S3 liegt das Standardlimit bei 100 Buckets, wobei jeder Bucket eine unbegrenzte Datenkapazität hat. S3-Benutzer müssen sich keine Sorgen um das Füllen eines Eimers machen, und das einzige Problem ist, dass Sie genügend Eimer für Ihre Bedürfnisse haben.
Eine Einschränkung von EBS ist die Unfähigkeit, von mehreren Instanzen gleichzeitig verwendet zu werden. Sobald es von einer Instanz bereitgestellt wird, kann es von keiner anderen Instanz verwendet werden. S3 kann mehrere Bilder seines Inhalts haben, sodass er von vielen gleichzeitig verwendet werden kann. Ein interessanter Nebeneffekt dieser Fähigkeit ist etwas, das als "eventuelle Konsistenz" bezeichnet wird. Mit EBS erfolgt das Lesen oder Schreiben von Daten fast sofort. Mit S3 werden die Änderungen nicht sofort geschrieben. Wenn Sie also etwas schreiben, werden möglicherweise nicht die Daten zurückgegeben, die von einer Leseoperation zurückgegeben werden.
Zusammenfassung: