<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lars Schenk &#187; S3</title>
	<atom:link href="http://lars-schenk.com/tag/s3/feed" rel="self" type="application/rss+xml" />
	<link>http://lars-schenk.com</link>
	<description>IT-Services :: Software-Development since 1980 :: Freelancer since 1988</description>
	<lastBuildDate>Thu, 10 Jun 2010 22:51:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cloud Computing &#8211; DLD09</title>
		<link>http://lars-schenk.com/cloud-computing-dld09/323</link>
		<comments>http://lars-schenk.com/cloud-computing-dld09/323#comments</comments>
		<pubDate>Wed, 28 Jan 2009 19:59:20 +0000</pubDate>
		<dc:creator>Lars Schenk</dc:creator>
				<category><![CDATA[Video]]></category>
		<category><![CDATA[Virtualisierung]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[AppEngine]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[CloudFront]]></category>
		<category><![CDATA[Dr. Werner Vogels]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Marissa Mayer]]></category>
		<category><![CDATA[Russ Daniels]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[SimpleDB]]></category>

		<guid isPermaLink="false">http://lars-schenk.com/?p=323</guid>
		<description><![CDATA[If I had to convince a non technical person about Cloud Computing, I would show him this video. 
I really enjoyed listening to Dr. Werner Vogels. Dr. Vogels is Vice President &#038; Chief Technology Officer at Amazon.com where he is responsible for driving the company&#8217;s technology vision, which is to continuously enhance the innovation on [...]]]></description>
			<content:encoded><![CDATA[<p>If I had to convince a non technical person about Cloud Computing, I would show him this video. </p>
<p>I really enjoyed listening to Dr. <a href="http://www.allthingsdistributed.com/">Werner Vogels</a>. Dr. Vogels is Vice President &#038; Chief Technology Officer at Amazon.com where he is responsible for driving the company&#8217;s technology vision, which is to continuously enhance the innovation on behalf of Amazon&#8217;s customers at a global scale.<br />
This vision is why I have moved to EC2/S3 in 2007. I guess, I&#8217;ve finally become an <a href="http://aws.amazon.com/">Amazon AWS</a> fan boy.</p>
<p><script src="http://video.dld-conference.com/api/embed/aj4OXjC/600x338" type="text/javascript"></script><br />
Even if audio is a bit out of sync, it&#8217;s worth to listening this long session.<br />
As a developer from the bottom of my heart I like especially this quote: &#8220;There is no value in being a system administrator. You do not build a better product by being a better server maintainer.&#8221; This is so true, but I wonder how EC2 can free me from typical administration tasks. I still have to maintain my virtual server instances with the whole LAMP stack. Plus I have to think about how to scale horizontally (what to do when I need more virtual server instances).<br />
In contradiction to Amzon&#8217;s EC2, Google&#8217;s AppEngine promises to free me from doing the admin tasks (no OS/LAMP Stack to maintain) and to solve the scale problem (no Database Replication to set up). AppEngine scales out of the box &#8211; the downside is, that it offers a very limited runtime just for you app.<br />
True, a single EC2 instance doesn&#8217;t scale out of the box but it also doesn&#8217;t limit you in doing what you want to do on your virtual server. With EC2 I have to solve the scaling on my own. For this price I got more freedom.<br />
I&#8217;m exited to use and learn about EC2/S3/Storefront each day but I also hope that Google&#8217;s <a href="http://code.google.com/appengine/">AppEngine</a> will offer a wider range of runtime environments in the future. t&#8217;s an interesting Cloud-Year 2009! #buzzword</p>
]]></content:encoded>
			<wfw:commentRss>http://lars-schenk.com/cloud-computing-dld09/323/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon CloudFront &#8211; Content Delivery Network für S3</title>
		<link>http://lars-schenk.com/cloudfront/227</link>
		<comments>http://lars-schenk.com/cloudfront/227#comments</comments>
		<pubDate>Thu, 20 Nov 2008 01:28:01 +0000</pubDate>
		<dc:creator>Lars Schenk</dc:creator>
				<category><![CDATA[Virtualisierung]]></category>
		<category><![CDATA[tech-recipes]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[CDN]]></category>
		<category><![CDATA[CloudFront]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[S3]]></category>

		<guid isPermaLink="false">http://lars-schenk.com/cloudfront/227</guid>
		<description><![CDATA[CloudFront ist eine sinnvolle Erweiterung für Amazon S3: Wenn man S3 bisher als Asset-Server für statische Inhalte eingesetzt hat, so muss man sich für einen Standort entscheiden der möglichst nahe an der Zielgruppe betrieben wird. Ist meine Zielgruppe Europa, so wähle ich den S3 Standort dort und nehme in Kauf, dass User aus USA eine [...]]]></description>
			<content:encoded><![CDATA[<p>CloudFront ist eine sinnvolle Erweiterung für Amazon S3: Wenn man S3 bisher als Asset-Server für statische Inhalte eingesetzt hat, so muss man sich für einen Standort entscheiden der möglichst nahe an der Zielgruppe betrieben wird. Ist meine Zielgruppe Europa, so wähle ich den S3 Standort dort und nehme in Kauf, dass User aus USA eine höhre Latenzzeit haben werden. </p>
<p>Mit CloudFront kann ich nun vor meinen öffentlichen S3 noch ein <a href="http://en.wikipedia.org/wiki/Content_delivery_network">Content Delivery Network</a> vorschalten, dass automatisch meine Inhalte über alle verfügbaren Standorte synchronisert und bei Requests auf meine Inhalte immer die schnellste Verbindung auswählt. Mehr Details zur neuen CloudFront, dem Content Delivery Network von Amazon gibt&#8217;s unter <a href="http://aws.amazon.com/cloudfront/">aws.amazon.com/cloudfront/</a> und im original Wortlaut des Developer-Newsletters. <span id="more-227"></span> </p>
<blockquote><p>Dear AWS Customer,</p>
<p>Today, we&#8217;re excited to announce the public beta of Amazon CloudFront, a new web service for content delivery. With CloudFront, you can distribute content using a worldwide network of edge locations that provide low latency and high data transfer speeds. CloudFront works seamlessly with other AWS services such as Amazon S3, and like all AWS services, is self-service with no up-front commitments, no long-term contracts and pay-as-you-go pricing. You can sign up for CloudFront &#8211; and begin using it today &#8211; at aws.amazon.com/cloudfront.</p>
<p>The initial release lets developers and businesses deliver popular, publicly readable content worldwide. CloudFront has a number of exciting features that differ from many traditional methods of content delivery. It:</p>
<p>lets you get started easily there&#8217;s no need to contact a sales person or negotiate a contract. Anyone can get started in just minutes with only a credit card.<br />
works seamlessly with Amazon S3 &#8211; you can start delivering your files stored in Amazon S3 through CloudFront edge locations in a matter of minutes.<br />
is simple and easy to use &#8211; a single API call is all that&#8217;s needed to get started delivering your content.<br />
lets you pay only for what you use there are no minimum fees and no long-term commitments.<br />
To Use Amazon CloudFront, all you need to do is store your objects in Amazon S3 (make sure they are publicly readable), then, make a simple API call to register your bucket with CloudFront. This API call will return a new domain name for you to include in your web pages or application. When clients request an object using this domain name, they will be automatically routed to the nearest edge location used by Amazon CloudFront for fast delivery of your content. No negotiations, no upfront fees, and no volume commitments. It&#8217;s that simple.</p>
<p>You can learn more about Amazon CloudFront and get started using the service at aws.amazon.com/cloudfront.</p>
<p>Sincerely,<br />
The Amazon CloudFront Team</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://lars-schenk.com/cloudfront/227/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google App Engine &#8211; Eldorado für Entwickler</title>
		<link>http://lars-schenk.com/google-app-engine-eldorado-fur-entwickler/208</link>
		<comments>http://lars-schenk.com/google-app-engine-eldorado-fur-entwickler/208#comments</comments>
		<pubDate>Wed, 09 Apr 2008 15:06:41 +0000</pubDate>
		<dc:creator>Lars Schenk</dc:creator>
				<category><![CDATA[Video]]></category>
		<category><![CDATA[Virtualisierung]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[App Engine]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[SimpleDB]]></category>

		<guid isPermaLink="false">http://lars-schenk.com/google-app-engine-eldorado-fur-entwickler/208</guid>
		<description><![CDATA[ Google hat eine frühe Version der App Engine vorgestellt (Preview). Es verspricht mir all die Administrativen Task abzunehmen, die ich üblicherweise habe, wenn ich meine Web-Anwendung online bringen will. Ich brauche mich nicht mehr um Server kümmern (seien es klassische RootServer beim Hoster oder virtuelle Server wie z.b. bei EC2). Ich muss mich nicht [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; margin-left: 20px; margin-bottom: 10px;" src="http://code.google.com/appengine/images/appengine_lowres.jpg" /> Google hat eine frühe Version der <a href="http://code.google.com/appengine/">App Engine</a> vorgestellt (Preview). Es verspricht mir all die Administrativen Task abzunehmen, die ich üblicherweise habe, wenn ich meine Web-Anwendung online bringen will. Ich brauche mich nicht mehr um Server kümmern (seien es klassische RootServer beim Hoster oder virtuelle Server wie z.b. bei EC2). Ich muss mich nicht mehr darum kümmern, wie meine Applikation skaliert. Ich muss also keinen Mechanismus entwicklen wie bei EC2 wo ich meine Server und die Last überwache und ausgefallene Server ersetzte bzw. dynamsch weitere virtutelle Serverinstanzen zuschalten muss wenn mehr Last aufkommt &#8211; das alles macht Google App Engine automatisch für mich!</p>
<p>Es entlastet mich als Entwickler von all diesen adminstrativen Tasks die ich überlicherweise beim LAMP Stack habe. Es macht quasi den Administrator in mir arbeitslos und schenkt dem Entwickler in mir die frei gewordene Zeit um mich auf die Anwendung zu konzentrieren. </p>
<p>Teil 1 &#8211; Vorstellung der Google App Engine Preview:<br />
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/3Ztr-HhWX1c&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/3Ztr-HhWX1c&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>Ab 2:50 stellt Kevin Gibbs die Vorteile der App Engine gegenüber dem klassischen LAMP Stack vor. <span id="more-208"></span> Ich frage mich aber, ob die App Engine mir auch die Flexibelität des LAMP Stacks gibt &#8211; aber das kann zZ nicht beurteilt werden, da die App Engine ja zZ. nur ein Preview ist.</p>
<p>Mit Google App Engine kann ich die selbe Infrastruktur nutzen wie Google. Das ist analog wie bei Amazon mit S3, EC2 und SimpleDataService. Bei Amazon nutze ich jedoch virtuelle Server-Images mit EC2 und bin daher viel Flexibler als mit der Google App Engine (die als Sandbox doch sehr restriktiv ist). Ich habe bei EC2 aber halt auch den Mehraufwand, dass ich meine virtuellen Serverinstanzen selbst aufbauen (linux, apache, mysql, php order anderes) warten muss und ausgefallene Instanzen erkennen und ersetzten muss &#8211; ich muss dort Lösungen entwicklen für persistente Filesysteme (via integration von S3) und Lösungen entwicklen für persistene Datenbanken (SimpleDataService). All das ist bei Googles App Engine deutlich einfacher weil bereits in einem Gesamtframework integriert. Bei Amazon habe ich zwar mehr Freiheiten (mit meinen virtuellen Server Instanzen kann ich quasi alles anstellen und bin nicht nur auf das Hosting von WebApps beschränkt) &#8211; komme aber, wenn ich eine vergleichbare Skallierbarkeit mein Web App wie bei Google App Engine entwicklen möchte, zu den gleichen Restriktionen die die App Engine hat (kein Schreiben in lokales Filesystem, keine relationale Datenbank wie mySQL etc.).<br />
Google App Engine erscheint also als idealer &#8220;out of the box&#8221; Hoster für Django Apps. Sicher wird die App Engine auch bald für <a href="http://www.rubyonrails.org/">Ruby on Rails</a> verfügbar sein, da die Frameworks sehr ähnlich sind und sich RoR für Googles App Engine geradezu aufdrängt.</p>
<p>Teil 2 &#8211; eine einfache Demo.<br />
Die Original-Demo von Campfire ist wegen der geringen Auflösung nicht zu gebrauchen. Hier eine bessere Version mit dem gleichen Inhalt:<br />
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/bfgO-LXGpTM&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/bfgO-LXGpTM&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>Teil 3 &#8211; Betrachtung der 5 Komponenten des App Engine Stacks:</p>
<blockquote><p>
1) scalable serving infrastructure<br />
2) python runtime and libraries<br />
3) SDK<br />
4) web-based admin console<br />
5) scalable datastore
</p></blockquote>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/oG6Ac7d-Nx8&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/oG6Ac7d-Nx8&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>Interessant ist hier der Teil wo erklärt wird, wie die Skallierbarkeit umgesetzt wird. Man braucht eine Alternative zu klassischen relationalen Datenbanken (wie z.B. mySQL) die es erlaubt besser zu skallieren. Googles <a href="http://labs.google.com/papers/bigtable.html">Big-Table</a> und GQL sind die Komponenten, die für die App Engine den DataStore übernehen und so die Skallierbarkeit &#8220;out of the box&#8221; mit sich bringen. </p>
<p>Bei EC2 von Amazon kann ich natürlich auch weiterhin eigene mySQL Server einsetzen &#8211; aber wenn ich wirklich gross skalieren will, brauche ich auch etwas, das besser skalliert als mySQL. <a href="/grose-nachfrage-nach-simpledb-data-20-fur-web-20/198">Hierfür stellt mir Amazon via SimpleDB eine vergleichbare Technologie breit</a>. Aber ich muss das bei Amazon alles irgendwie erst unter einen Hut bringen und selbst managen (EC2, S3, SimpleDB, Integration RoR, Skallierung via virtueller Instanzen in Abhängigkeit der Last usw.) . All das gebe ich bei Google App Engine an Google ab &#8211; und zahle dafür natürlich den Preis, dass ich nicht so flexibel bin wie bei EC2.</p>
<p>Die Umstellung von relationalen Datenbank auf BigTable/GQL bzw. SimpeDB bei Amazon sehe ich zZ. als die größte Hürde für Apps die bereits mit Django oder RoR entwickelt wurden.</p>
<p>Teil 4 &#8211; Python Entwickler und Google Software Engineer Guido van Rossum spricht über Goolge App Engine:<br />
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/oTFL7FPLnXY&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/oTFL7FPLnXY&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>Als Entwickler teile ich seine Begeisterung für das Projekt &#8211; und als Sprache wünsche ich mir neben <a href="http://en.wikipedia.org/wiki/Python_%28programming_language%29">Python</a> natürlich Ruby.</p>
<p>Teil 5 &#8211; Google Product Manager Pete Koomen demonstriert App Engine&#8217;s web-basierte admin console:<br />
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/JcM2Ejk1tis&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/JcM2Ejk1tis&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>Hier muss sich zeigen, ob man die gleiche Flexibelität bekommen, die man hat, wenn man seine Logs selbst vorliegen hat (die kann ich per AWStats, SawMill usw. auswerten). Aber auch hier gibt es natürlich vereinfachungen: Wenn ich meinen eigenen Cluster von WWW-Servern fahre muss ich die Logs zusammenführen bevor ich sie auswerten kann.<br />
Auch fällt mir zZ die Vorstellung schwer, dass ich meinen Web-Server nicht mehr selbst konfigurieren kann.<br />
Als lokale Datensicherung für den DataStore (BigTable oder SimpleDB) wird es sicher auch ein Dump und eine Restore-Möglichkeit geben &#8211; denn irgendwie möchte man seine Daten ja auch lokal gesichert wissen. All das sind Punkte die man erst in der Praxis kennen lernen muss &#8211; aber von den Möglichkeiten, die Google mir mit der App Engine in die Hand legt bin ich total begeistert. Ich wünsche ich hätte ein 48-Stunden Tag, damit ich mich (neben meiner normalen Arbeit) damit beschäftigen könnte&#8230;</p>
<p>Teil 6 &#8211; Google Product Manager Paul McDonald zeigt einige Demo Anwendungen:<br />
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/K7usoKm5zwE&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/K7usoKm5zwE&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>Last but not least habe ich noch dieses Video gefunden:<br />
Dion Almaer von Google bringt es auf den Punkt, wenn er App Engine mit Amazon EC2, S3 und SimpleDB vergleicht. Ausserdem macht er grosse Hoffnung auf ein rasches Erscheinen von RoR via App Engine, da er selbst ein RoR Fan ist. Absolut sehenswert dieses Interview:</p>
<blockquote><p>On the train ride between Brussels and London, I got the chance to interview Dion Almaer, of Google, regarding the recently announced Google App Engine cloud computing product.
</p></blockquote>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/J8q1lFRVMRU&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/J8q1lFRVMRU&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>Einen leicht <a href="http://www.taz.de/1/leben/internet/artikel/1/google-wird-riesen-server/?src=TE&#038;cHash=f8b0ad3b18">verständlichen Artikel zu Google App Engine und die möglichen Strategien von Goolge habe ich bei taz.de gefunden</a>.</p>
<p><a href="http://www.brianberliner.com/2008/04/09/google-app-engine-body-slams-amazon-web-services/">Brian Berliner beschreibt es in seinem Blog</a> ganz treffend:</p>
<blockquote><p>
Amazon Web Services gives you the logs and asks you to build yourself a cabin. Amazon Web Services lets you change that cabin into a chateaux or a lodge, but you’ve got to wield the hammer.<br />
Google App Engine gives you a log cabin and asks you to move in, invite your friends, and start to party. When the party gets too big, Google App Engine builds you a bigger cabin, chateaux, or lodge. You keep partying.</p>
<p>I believe the simplest approach wins.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://lars-schenk.com/google-app-engine-eldorado-fur-entwickler/208/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon SimpleDB</title>
		<link>http://lars-schenk.com/amazon-simpledb/193</link>
		<comments>http://lars-schenk.com/amazon-simpledb/193#comments</comments>
		<pubDate>Fri, 14 Dec 2007 16:45:53 +0000</pubDate>
		<dc:creator>Lars Schenk</dc:creator>
				<category><![CDATA[Virtualisierung]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[SimpleDB]]></category>

		<guid isPermaLink="false">http://lars-schenk.com/amazon-simpledb/193</guid>
		<description><![CDATA[Wow, nach dem Release von Rails2 gibt es nun auch noch ein Weihnachtsgeschenk von Amazon:
Dear AWS Developers,
This is a short note to let a subset of our most active developers know about an upcoming limited beta of our newest web service: Amazon SimpleDB, which is a web service for running queries on structured data in [...]]]></description>
			<content:encoded><![CDATA[<p>Wow, nach dem Release von <a href="http://weblog.rubyonrails.org/2007/12/7/rails-2-0-it-s-done">Rails2</a> gibt es nun auch noch ein Weihnachtsgeschenk von Amazon:</p>
<blockquote><p>Dear AWS Developers,</p>
<p>This is a short note to let a subset of our most active developers know about an upcoming limited beta of our newest web service: Amazon SimpleDB, which is a web service for running queries on structured data in real time. This service works in close conjunction with Amazon Simple Storage Service (Amazon S3) and Amazon Elastic Compute Cloud (Amazon EC2), collectively providing the ability to store, process and query data sets in the cloud.</p>
<p>Traditionally, this type of functionality has been accomplished with a clustered relational database that requires a sizable upfront investment, brings more complexity than is typically needed, and often requires a DBA to maintain and administer. In contrast, Amazon SimpleDB is easy to use and provides the core functionality of a database &#8211; real-time lookup and simple querying of structured data &#8211; without the operational complexity.</p>
<p>Were excited about this upcoming service and wanted to let you know about it as soon as possible. We anticipate beginning the limited beta in the next few weeks.</p></blockquote>
<p>Seite zum Beta-Projekt bei Amazon: <a href="http://aws.amazon.com/sdb">Amazon SimpleDB</a> und <a href="http://docs.amazonwebservices.com/AmazonSimpleDB/2007-11-07/DeveloperGuide/?">Developer Guide</a>.<br />
AWS-Blog: <a href="http://aws.typepad.com/aws/2007/12/a-place-for-eve.html">A Place for Everything &#8211; Amazon SimpleDB</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lars-schenk.com/amazon-simpledb/193/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skalieren mit Amzon EC2 und S3</title>
		<link>http://lars-schenk.com/skalieren-mit-amzon-ec2-und-s3/192</link>
		<comments>http://lars-schenk.com/skalieren-mit-amzon-ec2-und-s3/192#comments</comments>
		<pubDate>Tue, 11 Dec 2007 13:05:44 +0000</pubDate>
		<dc:creator>Lars Schenk</dc:creator>
				<category><![CDATA[tech-recipes]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[S3]]></category>

		<guid isPermaLink="false">http://lars-schenk.com/skalieren-mit-amzon-ec2-und-s3/192</guid>
		<description><![CDATA[Jonathan Weiss zeigt in seinem Blog eine überarbeitete Version seines Vortrags zur Skalierung vom Ruby on Rails Apps mittels Amazon EC2 und S3.
Eine etwas älteres Video von seinem Vortrag (mit zum Teil überholten Aussagen, siehe hier und hier), welches aber dennoch wirklich ansehenswert ist, gibt es unter: www.loromoar.com. 
Jonathan stellt im Slide 34/35 &#8220;EC2 for [...]]]></description>
			<content:encoded><![CDATA[<p>Jonathan Weiss zeigt in seinem <a href="http://blog.innerewut.de/">Blog</a> eine überarbeitete Version seines Vortrags zur Skalierung vom <a href="http://www.rubyonrails.org/">Ruby on Rails</a> Apps mittels Amazon <a href="http://aws.amazon.com/ec2">EC2</a> und <a href="http://aws.amazon.com/s3">S3</a>.</p>
<p>Eine etwas älteres Video von seinem Vortrag (mit zum Teil überholten Aussagen, siehe <a href="/amazon-s3-nun-auch-in-europa-verfuegbar/186">hier</a> und <a href="/ec2-legt-big-iron-nach/182">hier</a>), welches aber dennoch wirklich ansehenswert ist, gibt es unter: <a href="http://www.loroma.com/loroma/movie.faces?movie=10">www.loromoar.com</a>. </p>
<p>Jonathan stellt im Slide 34/35 &#8220;EC2 for extra capacity&#8221; ein optionales Model vor, bei dem für die DB und den Loadbalancer ein Inhouse-Lösung angetrebt wird (Eigens RZ oder klassischer Hoster). Die Gründe dafür deutet er auch schon im Video an (welches dieses Modell noch nicht zum Gegenstand der Diskussion gemacht hatte): EC2 hat kein persistentes Speichermedium. Fällt die Instanz aus, gehen die Daten verloren. Wenn nicht konstant dedumpt und auf S3 gesichert wird, droht Datenverlust.<br />
Ich fürchte jedoch das gerade bei RoR-Anwendungen recht komplexe und viele SQL Abfragen entstehen, so das sich eine erhöhte Latenz zwischen den Application-Servern die unter EC2 laufen und der Datenbank, die inhouse läuft sehr negativ auf die Antwortzeiten auswirken könnte. Ich würde daher lieber die DB@EC2 belassen und das Verlustrisiko von Daten minimieren indem eine Replikation (Slave) in eine oder mehrere EC2 Instanzen oder auch auf einen Slave im eigenen RZ gemacht wird. Der Vorteil dabei ist, dass die Application-Server kürzere Latenzzeiten zur DB haben und der Traffic innerhalb EC2 bleibt und somit auch kostenlos ist. Fällt die Master-DB aus, so kann ein Slave die Aufgabe übernehmen.</p>
<p>Das Argument den Loadbalancer Inhouse zu nehmen ist, dass beim Ausfall des EC2 basierten Loadbalancers eine neue IP zugewiesen wird und es somit zur vorübergehenden Unerreichbarkeit kommen kann, wenn DNS-Server die Updates nicht rasch genug verarbeiten. Steht der Loadbalancer hingegen im eigenen RZ oder beim klassischen Hoster habe ich eine statische IP und kann das Problem (eher) umgehen, so dass keine DNS-Update erforderlich wird.<br />
Aber man erkauft sich diesen Vorteil zum einen durch mehr Latenzzeit: der Loadbalancer muss nun alle Requests erst an die weit entfernten EC2 Instanzen weiterreichen und auf deren Antwort warten. Der Weg von den Clients zum Loadbalaner kommt in diesem Fall dann noch hinzu. Hier kann es sich dann schon lohnen über eine Proxy/Cash-Lösung nachzudenken. Was aber ebenfalls noch zu berücksichtigen ist: Ich habe nun zwei mal den Traffic zu bezahlen: Einmal zwischen EC2 und dem Loadbalancer und hinzu dann noch der Traffic zwischen dem Loadbalancer und den Clients.</p>
<p>Also auf den ersten Blick würde ich den Loadbalancer doch lieber auch bei EC2 einsetzen&#8230;</p>
<p>Ein recht radikaler aber genialer Ansatz ist der Verzicht auf einen dedizierten Loadbalancer. </p>
<p>Lei Zhu beschreibt in seinem <a href="http://www.digital-web.com/articles/client_side_load_balancing/">Aritkel</a> wie man das Problem mit der dynamischen IP lösen kann indem man ganz auf einen Loadbalancer verzichtet und das Konzept und die Aufgabe des Loadbalancers gleich auf den Client überträgt: Client-Side Loadbalancing!</p>
<p>Zum Slide: <span id="more-192"></span></p>
<div style="width:425px;text-align:left" id="__ss_158656"><object style="margin:0px" height="355" width="425"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=web20-expo-berlin-2007-jweissppt-119445914793154-4"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=web20-expo-berlin-2007-jweissppt-119445914793154-4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"><a href="http://www.slideshare.net/?src=embed"><img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/></a> | <a href="http://slideshare.net/jweiss/web20-expo-berlin-2007-jweissppt" title="View this slideshow on SlideShare">View</a> | <a href="http://www.slideshare.net/upload">Upload your own</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://lars-schenk.com/skalieren-mit-amzon-ec2-und-s3/192/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Amazon S3 nun auch in Europa verfügbar.</title>
		<link>http://lars-schenk.com/amazon-s3-nun-auch-in-europa-verfuegbar/186</link>
		<comments>http://lars-schenk.com/amazon-s3-nun-auch-in-europa-verfuegbar/186#comments</comments>
		<pubDate>Fri, 09 Nov 2007 00:33:49 +0000</pubDate>
		<dc:creator>Lars Schenk</dc:creator>
				<category><![CDATA[Virtualisierung]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[S3]]></category>

		<guid isPermaLink="false">http://lars-schenk.com/amazon-s3-nun-auch-in-europa-verfuegbar/186</guid>
		<description><![CDATA[Nachdem Amazon erst kürzlich die EC2 Instanzen &#8220;Large&#8221; und &#8220;Extra Large&#8221; eingeführt hat, stößt Amazon nun mit dem Simple Storage Service (S3) nun auch nach Europa vor:

United States
      Storage
      $0.15 per GB-Month of storage used
      Data Transfer
    [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem Amazon erst <a href="/ec2-legt-big-iron-nach/182">kürzlich die EC2 Instanzen &#8220;Large&#8221; und &#8220;Extra Large&#8221; eingeführt hat</a>, stößt Amazon nun mit dem Simple Storage Service (S3) nun auch nach Europa vor:</p>
<blockquote><p>
United States</p>
<p>      Storage<br />
      $0.15 per GB-Month of storage used</p>
<p>      Data Transfer<br />
      $0.10 per GB &#8211; all data transfer in<br />
      $0.18 per GB &#8211; first 10 TB / month data transfer out<br />
      $0.16 per GB &#8211; next 40 TB / month data transfer out<br />
      $0.13 per GB &#8211; data transfer out / month over 50 TB</p>
<p>      Requests<br />
      $0.01 per 1,000 PUT or LIST requests<br />
      $0.01 per 10,000 GET and all other requests*<br />
      * No charge for delete requests </p>
<p>Europe</p>
<p>      Storage<br />
      $0.18 per GB-Month of storage used</p>
<p>      Data Transfer<br />
      $0.10 per GB &#8211; all data transfer in</p>
<p>      $0.18 per GB &#8211; first 10 TB / month data transfer out<br />
      $0.16 per GB &#8211; next 40 TB / month data transfer out<br />
      $0.13 per GB &#8211; data transfer out / month over 50 TB</p>
<p>      Requests<br />
      $0.012 per 1,000 PUT or LIST requests<br />
      $0.012 per 10,000 GET and all other requests*<br />
      * No charge for delete requests
</p></blockquote>
<p>Zwar sind die die Preise etwas höher als S3 in den USA, aber wenn man plant statischen Content via public buckets verfügbar zu machen, so ist S3 mit Standbein in Europa diesen Aufpreis ganz sicher wert.</p>
<p>Für die Verwendung mit EC2 bleibt S3 USA natürlich attraktiver, da es nicht nur schneller sein dürfte sondern hier auch der Traffic zwischen EC2 und S3 USA kostenfrei ist. Traffic zwischen EC2 und S3 Europa hingegen ist kostenpflichtig.</p>
<p>Damit wird greifbar, was ich mir schon länger wünsche: EC2 auch in Europa.</p>
]]></content:encoded>
			<wfw:commentRss>http://lars-schenk.com/amazon-s3-nun-auch-in-europa-verfuegbar/186/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatisierte Backups nach Amazon S3 mit s3sync</title>
		<link>http://lars-schenk.com/automatisierte-backups-nach-amazon-s3-mit-s3sync/137</link>
		<comments>http://lars-schenk.com/automatisierte-backups-nach-amazon-s3-mit-s3sync/137#comments</comments>
		<pubDate>Tue, 28 Aug 2007 10:14:44 +0000</pubDate>
		<dc:creator>Lars Schenk</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[tech-recipes]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[s3sync]]></category>

		<guid isPermaLink="false">http://lars-schenk.com/automatisierte-backups-nach-amazon-s3-mit-s3sync/137</guid>
		<description><![CDATA[Um meine Daten nach Amazon S3 zu sichern, habe ich mich unter der vielzahl verfügbarer Tools für S3Sync entschieden. Da dieses in ruby geschriebene Tools sich an rsync anlehnt und es auch unter Amazon EC2 wertvolle Dienste erbringt um das flüchtige Filesystem der virtuellen Server persistent zu halten, ist es für mich die erste Wahl.
Auf [...]]]></description>
			<content:encoded><![CDATA[<p>Um meine Daten nach <a href="http://www.amazon.com/s3/">Amazon S3</a> zu sichern, habe ich mich unter der <a href="http://elastic8.com/blog/tools_for_accessing_using_to_backup_your_data_to_and_from_s3.html">vielzahl verfügbarer Tools</a> für <a href="http://s3.amazonaws.com/ServEdge_pub/s3sync/README.txt">S3Sync</a> entschieden. Da dieses in <a href="http://www.ruby-lang.org">ruby</a> geschriebene Tools sich an <a href="http://samba.anu.edu.au/rsync/">rsync</a> anlehnt und es auch unter Amazon <a href="http://aws.amazon.com/ec2/">EC2</a> wertvolle Dienste erbringt um das flüchtige Filesystem der virtuellen Server persistent zu halten, ist es für mich die erste Wahl.</p>
<p>Auf einer Debian (oder auch Ubuntu) basierten Linux Distribution erfolgt die Installation mit: <span id="more-137"></span></p>
<div class="igBar"><span id="lcode-2"><a href="#" onclick="javascript:showPlainTxt('code-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-2">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># Ruby <span style="color:#006600; font-weight:bold;">&#40;</span>&gt;=<span style="color:#800000;color:#800000;">1</span>.<span style="color:#800000;color:#800000;">8</span>.<span style="color:#800000;color:#800000;">4</span><span style="color:#006600; font-weight:bold;">&#41;</span> und die OpenSSL ruby library werden benötigt</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ sudo apt-get install ruby libopenssl-ruby</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># In das Verzeichnis in das s3sync installiert werden soll</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ cd /home/user/</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># s3sync downloaden und entpacken</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ wget http:<span style="color:#FF9933; font-style:italic;">//s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ tar xvzf s3sync.<span style="">tar</span>.<span style="">gz</span>; rm s3sync.<span style="">tar</span>.<span style="">gz</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># das s3config.<span style="">yml</span> mit Umgebungsvariablen füllen</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">cp s3config.<span style="">yml</span>.<span style="">example</span> s3config.<span style="">yml</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># Das yml nur für den Owner lesbar machen</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">chmod <span style="color:#800000;color:#800000;">600</span> s3config.<span style="">yml</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">vi s3config.<span style="">yml</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># aws_access_key_id: <span style="color:#800000;color:#800000;">11111111111111111111111</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># aws_secret_access_key: <span style="color:#800000;color:#800000;">222222222222222222222</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># ssl_cert_file: /home/user/s3sync/my_ssl_cert</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"># <span style="color:#006600; font-weight:bold;">&#40;</span>hier nun die eigenen AWS Daten eintragen<span style="color:#006600; font-weight:bold;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Das Verwenden der yml Datei wurde erst in einer späten Version von s3sync hinzugefügt. Es erspart das Setzen der Umgebungsvariablen bevor das s3sync Script aufgerufen wird.</p>
<p>Ein Beispiel für ein SSL_CERT_FILE wird im <a href="http://s3.amazonaws.com/ServEdge_pub/s3sync/README.txt">Readme</a> von s3sync gegeben.</p>
<p>Besitzer, Gruppe und Rechte bleiben mit s3sync erhalten. Leider gehen mir aber die Timestamps verloren.</p>
<p>Weiterführende Dokumentation gibt es <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=931&#038;categoryID=100">hier</a>. In diesem Beispiel wird auch gezeigt wie man s3sync auf einer ec2 Instanz einsetzt.</p>
<p>Jeder Benutzer kann bis zu 100 Buckets erstellen. Da die Buckets bei öffentlichen Dateien als Teil der URL erscheinen sollte man sich hier sprechende und kurze Namen überlegen (sofern diese noch frei sind). Jedes Bucket kann man wie ein logisches Laufwerk betrachten. Daher ist es auch möglich in unterschiedlichen Buckets unterschiedliche Inhalte/Strukturen zu verwenden. Es spricht also nichts dagegen mit einem S3 Benutzerkonto <a href="http://">JungleDisk</a> oder andere S3 basierte Tools und S3Sync parallel in getrennten Buckets zu verwenden.</p>
<p>Während der Evaluierungsphase habe ich neben s3cmd.rb auch <a href="http://www.rjonna.com/ext/s3fox.php">S3Fox</a> verwendet um den Inhalt meiner mit s3sync.rb gefüllten Buckets zu kontrollieren. Wie auch bei rsync schätze ich den Vorteil, dass ich die erstellten Backups - anders als bei tar oder Duplicity - direkt betrachten, kontrollieren und nutzen kann. Da jede Datei in einem Key/Blob abgelegt wird, kann man leicht einzelne Dateien restaurieren oder über die S3 ACL öffentlich zugänglich machen. Leider hat S3Fox Probleme die von s3sync gefüllten Buckets darzustellen. Im s3sync Readme (Changelog) gibt der Autor dazu folgenden Hinweis:</p>
<blockquote><p>
In the case of commands of the form:<br />
	s3sync -r somedir somebucket:<br />
The root directory node in s3 was being stored as "somedir/" instead of "somedir"<br />
which caused restores to mess up when you say:<br />
	s3sync -r somebucket: restoredir<br />
The fix to this, by coincidence, actually makes s3fox work even *less* well with<br />
s3sync.  I really need to build my own xul+javascript s3 GUI some day.
</p></blockquote>
<p>Anstatt von S3Fox nutze ich nun den <a href="http://people.no-distance.net/ol/software/s3/">Mac OS X S3 Browser</a>. </p>
<p>Alternativen zu S3Sync?<br />
Für umfangreichere Backups mag der s3sync Ansatz weniger geeignet sein, denn aufgrund der Architektur von S3 muss s3sync für jede Datei einen Request an S3 senden, was viel Bandbreite und Zeit verbrauchen kann.</p>
<p>Aus diesem Grund wäre eigentlich <a href="http://duplicity.nongnu.org/">Duplicity</a> die bessere Wahl um umfangreiche Datenmengen bzw. viele Dateien auf S3 zu sichern. Duplicity verfolgt einen ganz anderen Ansatz und ist damit in der Lage sehr bandbreitenschonend Backups zu erstellen. Seit der Version 0.4.3.RC9 (2007/07/09) unterstützt Duplicity auch S3 nativ als Backend.<br />
Für mein Vorhaben ist Duplicity jedoch weniger geeigent, da die gesicherten Dateien nicht mehr im "direkten" Zugriff in S3 verfügbar sind sondern in encrypted und signierten Archiven abgelegt werden. Da inkrementell gesichert wird, wird der erforderliche Speicherplatz immer größer da Archive nicht gelöscht werden können solange nicht eine erneute Vollständige Sicherung gemacht wird. Eine vollständige Sicherung auf S3 verbraucht jedoch wieder enorme Bandbreite / Traffic und Zeit. Und immer nur inkrementell zu sichern erscheint mir auch nicht ratsam.</p>
<p>Bestrebungen S3 über ein Filesystem nutzbar zu machen (S3/Fuse, JungleDisk u.a.) um dieses dann per rsync nutzen zu können erscheinen mir aber auch nicht vielversprechend, da die S3 API nur sehr grundlegende Funktionen bereitstellt (z.b. kein Seek in einem Blob; ändert sich ein Blob, so muss er komplett neu hochgeladen werden), so dass die Vorteile von rsync hier nicht ausgespielt werden können.</p>
<p>Allerdings wäre S3/fuse natürlich eine KillerApp. Insbesondere auch für EC2 um so ein persistentes Filesystem zu erhalten.</p>
]]></content:encoded>
			<wfw:commentRss>http://lars-schenk.com/automatisierte-backups-nach-amazon-s3-mit-s3sync/137/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
