<?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>Software Passion &#187; Cloud Computing</title>
	<atom:link href="http://www.softwarepassion.com/category/cloud_computing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.softwarepassion.com</link>
	<description>by Krzysztof Grajek</description>
	<lastBuildDate>Thu, 18 Mar 2010 17:46:25 +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>Apache Click on Google App Engine &#8211; Hello World Example</title>
		<link>http://www.softwarepassion.com/apache-click-on-google-app-engine-hello-world-example/</link>
		<comments>http://www.softwarepassion.com/apache-click-on-google-app-engine-hello-world-example/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 10:44:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[General Programming]]></category>
		<category><![CDATA[apache click]]></category>
		<category><![CDATA[google app engine]]></category>

		<guid isPermaLink="false">http://www.softwarepassion.com/?p=369</guid>
		<description><![CDATA[Hello World!
If this blog would run on App Engine and was build with Apache Click I could finish this tutorial right here  .
But more seriously, I will describe short step by step tutorial on how to get started with Apache Click on Google App Engine.
I&#8217;m assuming that you have GAE plugin for eclipse installed [...]]]></description>
			<content:encoded><![CDATA[<p>Hello World!<br />
If this blog would run on App Engine and was build with Apache Click I could finish this tutorial right here <img src='http://www.softwarepassion.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<br />
But more seriously, I will describe short step by step tutorial on how to get started with Apache Click on Google App Engine.<br />
I&#8217;m assuming that you have GAE plugin for eclipse installed already as well as the latest libraries for Apache Click downloaded somewhere on your machine. (If not look at my previous post on how to get started with Apache Click on Eclipse Galileo (<a href="http://www.softwarepassion.com/getting-started-with-apache-click-and-eclipse-galileo/">here</a>).</p>
<p>If all is set up, lets get started..<br />
<script type="text/javascript"><!--
google_ad_client = "pub-3015706834207881";
/* 468x15, utworzono 09-11-19 */
google_ad_slot = "3912330401";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />
1. Add new GAE type &#8216;Web Application Project&#8217; (the one with blue google icon)</p>
<p><a href="http://softwarepassion.s3.amazonaws.com/wp-content/uploads/add_new_google_Web_toolkit_project.jpg" rel="lightbox[369]"><img src="http://softwarepassion.s3.amazonaws.com/wp-content/uploads/add_new_google_Web_toolkit_project-263x300.jpg" alt="" title="add_new_google_Web_toolkit_project" width="263" height="300" class="aligncenter size-medium wp-image-372" /></a></p>
<p>2. Copy <strong>click-2.1.0.jar</strong> and <strong>click-extras-2.1.0.jar</strong> to the lib directory under war/WEB-INF/lib of your GAE project.</p>
<p><a href="http://softwarepassion.s3.amazonaws.com/wp-content/uploads/add_libraries.jpg" rel="lightbox[369]"><img src="http://softwarepassion.s3.amazonaws.com/wp-content/uploads/add_libraries-253x300.jpg" alt="" title="add_libraries" width="253" height="300" class="aligncenter size-medium wp-image-370" /></a></p>
<p>3. Click on the project and select &#8216;Properties&#8217; when you will modify the &#8216;Java Build Path&#8217;.<br />
<a href="http://softwarepassion.s3.amazonaws.com/wp-content/uploads/change_java_build_path.jpg" rel="lightbox[369]"><img src="http://softwarepassion.s3.amazonaws.com/wp-content/uploads/change_java_build_path-300x226.jpg" alt="" title="change_java_build_path" width="300" height="226" class="aligncenter size-medium wp-image-371" /></a></p>
<p>When changing the build path, select the two libraries you have added to you lib folder in point 2.</p>
<p><a href="http://softwarepassion.s3.amazonaws.com/wp-content/uploads/change_build_path2.jpg" rel="lightbox[369]"><img src="http://softwarepassion.s3.amazonaws.com/wp-content/uploads/change_build_path2-263x300.jpg" alt="" title="change_build_path2" width="263" height="300" class="aligncenter size-medium wp-image-373" /></a></p>
<p>4. Delete the auto-generated GAE project stuff, like servlet and index.html files.<br />
5. Create new class called &#8216;Index&#8217;</p>
<div class="codecolorer-container java " style="overflow:auto;white-space:nowrap;width:535px"><div class="java codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw1">package</span> <span class="co2">com.softwarepassion.clickgae</span><span class="sy0">;</span><br />
<br />
<span class="kw1">import</span> <span class="co2">java.util.Date</span><span class="sy0">;</span><br />
<span class="kw1">import</span> <span class="co2">org.apache.click.Page</span><span class="sy0">;</span><br />
<br />
<span class="kw1">public</span> <span class="kw1">class</span> Index <span class="kw1">extends</span> Page<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adate+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Date</span></a> time <span class="sy0">=</span> <span class="kw1">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adate+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Date</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; <span class="kw1">public</span> Index<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; addModel<span class="br0">&#40;</span><span class="st0">&quot;time&quot;</span>, time<span class="br0">&#41;</span><span class="sy0">;</span> <br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
<span class="br0">&#125;</span></div></div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-3015706834207881";
/* 468x15, utworzono 09-11-19 */
google_ad_slot = "3912330401";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />
Note the package you choose for you newly created class file, it will be needed when modifying config files later.</p>
<p>6. Create <strong>click.xml</strong> file in the same location where your <strong>web.xml</strong> file exists.<br />
7. Modify your <strong>web.xml </strong> file to look similar to the one presented below:</p>
<div class="codecolorer-container xml " style="overflow:auto;white-space:nowrap;width:535px"><div class="xml codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;UTF-8&quot;</span><span class="re2">?&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;web-app</span> <span class="re0">xmlns:xsi</span>=<span class="st0">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> <span class="re0">xmlns</span>=<span class="st0">&quot;http://java.sun.com/xml/ns/javaee&quot;</span> <span class="re0">xmlns:web</span>=<span class="st0">&quot;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot;</span> <span class="re0">xsi:schemaLocation</span>=<span class="st0">&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot;</span> <span class="re0">id</span>=<span class="st0">&quot;WebApp_ID&quot;</span> <span class="re0">version</span>=<span class="st0">&quot;2.5&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;listener<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;listener-class<span class="re2">&gt;</span></span></span>org.apache.click.extras.gae.GoogleAppEngineListener<span class="sc3"><span class="re1">&lt;/listener-class<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/listener<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;servlet<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;servlet-name<span class="re2">&gt;</span></span></span>ClickServlet<span class="sc3"><span class="re1">&lt;/servlet-name<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;servlet-class<span class="re2">&gt;</span></span></span>org.apache.click.ClickServlet<span class="sc3"><span class="re1">&lt;/servlet-class<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;load-on-startup<span class="re2">&gt;</span></span></span>0<span class="sc3"><span class="re1">&lt;/load-on-startup<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/servlet<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;servlet-mapping<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;servlet-name<span class="re2">&gt;</span></span></span>ClickServlet<span class="sc3"><span class="re1">&lt;/servlet-name<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;url-pattern<span class="re2">&gt;</span></span></span>*.htm<span class="sc3"><span class="re1">&lt;/url-pattern<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/servlet-mapping<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;welcome-file-list<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;welcome-file<span class="re2">&gt;</span></span></span>index.htm<span class="sc3"><span class="re1">&lt;/welcome-file<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/welcome-file-list<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/web-app<span class="re2">&gt;</span></span></span></div></div>
<p>It looks like ordinary <strong>web.xml</strong> file with one important addition: the listener section.</p>
<p>8. Add content to your <strong>click.xml</strong> file:</p>
<div class="codecolorer-container xml " style="overflow:auto;white-space:nowrap;width:535px"><div class="xml codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;UTF-8&quot;</span> <span class="re0">standalone</span>=<span class="st0">&quot;yes&quot;</span><span class="re2">?&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;click-app</span> <span class="re0">charset</span>=<span class="st0">&quot;UTF-8&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;pages<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;page</span> <span class="re0">path</span>=<span class="st0">&quot;index.htm&quot;</span> <span class="re0">classname</span>=<span class="st0">&quot;com.softwarepassion.clickgae.Index&quot;</span><span class="re2">&gt;</span><span class="re1">&lt;/page<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;/pages<span class="re2">&gt;</span></span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;mode</span> <span class="re0">value</span>=<span class="st0">&quot;development&quot;</span><span class="re2">/&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;/click-app<span class="re2">&gt;</span></span></span></div></div>
<p>9. Add <strong>index.htm</strong> file to the war directory<br />
<script type="text/javascript"><!--
google_ad_client = "pub-3015706834207881";
/* 468x15, utworzono 09-11-19 */
google_ad_slot = "3912330401";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<div class="codecolorer-container html4strict " style="overflow:auto;white-space:nowrap;width:535px"><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
&nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/h2.html"><span class="kw2">h2</span></a>&gt;</span>Hello World<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/h2.html"><span class="kw2">h2</span></a>&gt;</span><br />
<br />
&nbsp; &nbsp; Hello world from Click at $time<br />
<br />
&nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></div>
<p>10. Deploy your app to Google App Engine and go to the url: http://yourappname.appspot.com</p>
<p>You should see very simple website with current time printed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarepassion.com/apache-click-on-google-app-engine-hello-world-example/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Top 10 Things to Know About Amazon RDS</title>
		<link>http://www.softwarepassion.com/top-10-things-to-know-about-amazon-rds/</link>
		<comments>http://www.softwarepassion.com/top-10-things-to-know-about-amazon-rds/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 12:56:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[amazon rds]]></category>

		<guid isPermaLink="false">http://www.softwarepassion.com/?p=316</guid>
		<description><![CDATA[<span style="max-width: 100px; display: block; float: left;"><img src="http://softwarepassion.s3.amazonaws.com/wp-content/uploads/amazon_rds_10_things_to_know-150x150.jpg" alt="jquery" title="amazon rds" width="100" height="100" class="size-thumbnail wp-image-278" /></span><span style="margin: 0px; padding-left: 10px; display: block; max-width: 370px; float: left;">Top 10 Things to Know About Amazon RDS</span> 
]]></description>
			<content:encoded><![CDATA[<p><a href="http://softwarepassion.s3.amazonaws.com/wp-content/uploads/amazon_rds_10_things_to_know.jpg" rel="lightbox[316]"><img src="http://softwarepassion.s3.amazonaws.com/wp-content/uploads/amazon_rds_10_things_to_know-150x150.jpg" alt="amazon_rds_10_things_to_know" title="amazon_rds_10_things_to_know" width="150" height="150" class="alignleft size-thumbnail wp-image-317" /></a><br />
Top 10 Things to Know About Amazon RDS<br />
<script type="text/javascript"><!--
google_ad_client = "pub-3015706834207881";
/* 468x15, utworzono 09-11-19 */
google_ad_slot = "3912330401";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />
<a href="http://www.webyog.com/blog/2009/11/16/top-10-things-to-know-about-amazon-rds/">Top 10 Things to Know About Amazon RDS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarepassion.com/top-10-things-to-know-about-amazon-rds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Launching your EC2 instances with AWS Management Console</title>
		<link>http://www.softwarepassion.com/launching-your-ec2-instances-with-aws-management-console/</link>
		<comments>http://www.softwarepassion.com/launching-your-ec2-instances-with-aws-management-console/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 05:48:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://www.softwarepassion.com/?p=164</guid>
		<description><![CDATA[How easy this can get, when I was starting with Amazon Web Services the things were looking kind of scary but right now we have bunch of tools to help us using the amazon EC2 instances so easy that I just cannot belive that. I knew that AWS Management console existed for quite a bit [...]]]></description>
			<content:encoded><![CDATA[<p>How easy this can get, when I was starting with Amazon Web Services the things were looking kind of scary but right now we have bunch of tools to help us using the amazon EC2 instances so easy that I just cannot belive that. I knew that AWS Management console existed for quite a bit now but never actually gave it a try. Today I will do just that, I have some experience with EC2 and I&#8217;m running constantly one server on it for over a half a year now but I guess this tutorial would be no brainer and you don&#8217;t have to have any knowledge or experience to start your own instances.<br />
First of all, of course, I assume that you are already signed up for EC2. If not you can do that by visiting this <a href="http://aws.amazon.com/">link</a>.<br />
Once you have an account go to the console web application which you can find <a href="https://console.aws.amazon.com">here</a>. When you log in you should see a screen similar to this one:</p>
<p><a href="http://www.softwarepassion.com/wp-content/uploads/capture11.png" rel="lightbox[164]"><img src="http://www.softwarepassion.com/wp-content/uploads/capture11-1024x421.png" alt="amazon aws console" title="amazon aws console" width="300" height="97" class="aligncenter size-large wp-image-165" /></a></p>
<p>Next, click on the &#8216;Amazon EC2&#8242; tab and you should see a dashboard describing your running instances and resources.</p>
<p><a href="http://www.softwarepassion.com/wp-content/uploads/capture2.png" rel="lightbox[164]"><img src="http://www.softwarepassion.com/wp-content/uploads/capture2-300x97.png" alt="amazon aws console dashboard" title="amazon aws console dashboard" width="300" height="97" class="aligncenter size-medium wp-image-166" /></a></p>
<p>If you are here, and all went well, we are ready to move forward.<br />
Click on the big yellowish button called &#8216;Launch instances&#8217; in the middle of the screen to start the journey into the cloud. Here you get a box with three tabs where you can look for specific instances you are interested in. You can choose between &#8216;Quick Start&#8217; listing a few example AMIs, select your own instances created earlier (see my post on <a href="http://www.softwarepassion.com/?p=76">backup up the whole EC2 image</a>), or simply search for already created community AMIs. We will choose the last option and search for &#8216;ubuntu&#8217; but its really your choice and here the fun begins. I have choosen Debian 5.0 Lenny base install image but you can choose whatever you want. Its worth to have a look at the following <a href="http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=171">site</a> where you can browse AMIs, see a bit more information about them than on the AWS Management Console and see the discussion about them.<br />
After you&#8217;ve decided which server you want to have, click &#8217;select&#8217;. If you didn&#8217;t have any keypairs created earlier you would have to add at least one to be able to launch your instance.<br />
Select number of instances you want to run (we choose &#8216;1&#8242; for now), your keypair and security group on the following screen:</p>
<p><a href="http://www.softwarepassion.com/wp-content/uploads/capture4.png" rel="lightbox[164]"><img src="http://www.softwarepassion.com/wp-content/uploads/capture4-300x220.png" alt="launch ec2 instance" title="launch ec2 instance" width="300" height="220" class="aligncenter size-medium wp-image-167" /></a></p>
<p>Hit &#8216;Launch&#8217;, you will see the following screen if all went ok:</p>
<p><a href="http://www.softwarepassion.com/wp-content/uploads/capture5.png" rel="lightbox[164]"><img src="http://www.softwarepassion.com/wp-content/uploads/capture5-300x222.png" alt="ec2 launched from AWS console" title="capture5" width="300" height="222" class="size-medium wp-image-168" /></a></p>
<p>Close the window and go to your instances list by clicking &#8216;Instances&#8217; on the left vertical menu.</p>
<p><a href="http://www.softwarepassion.com/wp-content/uploads/capture6.png" rel="lightbox[164]"><img src="http://www.softwarepassion.com/wp-content/uploads/capture6-300x139.png" alt="capture6" title="capture6" width="300" height="139" class="aligncenter size-medium wp-image-169" /></a></p>
<p>From here you can reboot and shut down your instances.</p>
<p>But wait, the best part is still to come, when you are on your console &#8216;Overview&#8217; tab, you can see the &#8216;Coming Soon&#8217; part describing upcoming functionalites for AWS Console, those include:</p>
<ul>
<li>Monitoring, Load balancing and auto scaling</li>
<li>SQS support</li>
<li>S3 Support</li>
<li>CloudFront Support</li>
<li>SimpleDB Support</li>
</ul>
<p>Amazon AWS services are becoming more and more interesting and if you haven&#8217;t already done so, I assure you that its worth checking out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarepassion.com/launching-your-ec2-instances-with-aws-management-console/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to backup your entire server from EC2 to S3</title>
		<link>http://www.softwarepassion.com/how-to-backup-your-entire-server-from-ec2-to-s3/</link>
		<comments>http://www.softwarepassion.com/how-to-backup-your-entire-server-from-ec2-to-s3/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 12:23:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://www.softwarepassion.com/?p=76</guid>
		<description><![CDATA[Today I will describe in short how to create an AMI instance of EC2 and than upload it to S3 server. All you need to have is running instance of EC2 server (I&#8217;m using Debian) with EC2 tools preinstalled.
First of all, make sure that you don&#8217;t have any unnecessary files on your server filesystem which [...]]]></description>
			<content:encoded><![CDATA[<p>Today I will describe in short how to create an AMI instance of EC2 and than upload it to S3 server. All you need to have is running instance of EC2 server (I&#8217;m using Debian) with EC2 tools preinstalled.<br />
First of all, make sure that you don&#8217;t have any unnecessary files on your server filesystem which you don&#8217;t need to bundle in an image as it will only slow the process down and make your costs of storing backup images higher.<br />
Once you are sure that your instance is fine and EC2 tools are in place you have to transfer your private key file and certificate file to the server. Lets put the files under /root directory.<br />
If all is set up correctly, first of all, we create and image by running:</p>
<pre>
<div class="codecolorer-container text " style="overflow:auto;white-space:nowrap;width:535px"><div class="text codecolorer" style="font-family:Monaco,Lucida Console,monospace">ec2-bundle-vol -d /mnt -k /root/PrivateKey.pem &nbsp;--cert /root/Certificate.pem &nbsp;-u 012345678901</div></div>
</pre>
<p>The number after the -u flag is your Amazon account ID which you can find on the AWS website once logged in.<br />
Running above command will take a bit and will create a number of files under /mnt directory.<br />
Once we have the files and manifest ready (all happens auto-magically) we can start transferring the image onto S3 account.<br />
In order to transfer your image on S3 you would have to create a bucket there first, for this you can use famous firefox plugin (S3 Organizer) or do it using Affirma&#8217;s library (previous post).</p>
<pre>
<div class="codecolorer-container text " style="overflow:auto;white-space:nowrap;width:535px"><div class="text codecolorer" style="font-family:Monaco,Lucida Console,monospace">ec2-upload-bundle -b yourbucketname00404042009 -m /mnt/image.manifest.xml -a your_s3_access_key -s your_s3_secret_access_key</div></div>
</pre>
<p>If for some reason you encouter any problems during upload but your bundling went ok, you can retry the upload using &#8211;retry flag:</p>
<pre>
<div class="codecolorer-container text " style="overflow:auto;white-space:nowrap;width:535px"><div class="text codecolorer" style="font-family:Monaco,Lucida Console,monospace">ec2-upload-bundle -b yourbucketname00404042009 -m /mnt/image.manifest.xml -a your_s3_access_key -s your_s3_secret_access_key &nbsp;--retry</div></div>
</pre>
<p>Happy bundling!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarepassion.com/how-to-backup-your-entire-server-from-ec2-to-s3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Affirma S3 library for C#</title>
		<link>http://www.softwarepassion.com/affirma-s3-library-for-c/</link>
		<comments>http://www.softwarepassion.com/affirma-s3-library-for-c/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 12:20:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[General Programming]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.softwarepassion.com/?p=70</guid>
		<description><![CDATA[Finally I have found S3 library that works in C#. The library was written by Joel Wetzel from Affirma Consulting and I just wanted to spread the word about it.
Once downloaded you are presented with the whole C# Visual Studio solution which contains the library project as well as some example on how to use [...]]]></description>
			<content:encoded><![CDATA[<p>Finally I have found S3 library that works in C#. The library was written by Joel Wetzel from Affirma Consulting and I just wanted to spread the word about it.<br />
Once downloaded you are presented with the whole C# Visual Studio solution which contains the library project as well as some example on how to use it.<br />
There is even a simple wrapper written which greatly simplyfies the use of the affirma&#8217;s library.<br />
As an example:<br />
1. Create wrapper object (constructor listed)</p>
<pre>
<div class="codecolorer-container text " style="overflow:auto;white-space:nowrap;width:535px"><div class="text codecolorer" style="font-family:Monaco,Lucida Console,monospace">public ThreeSharpWrapper(String awsAccessKeyId, String awsSecretAccessKey)<br />
&nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.config = new ThreeSharpConfig();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.config.AwsAccessKeyID = awsAccessKeyId;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.config.AwsSecretAccessKey = awsSecretAccessKey;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.service = new ThreeSharpQuery(this.config);<br />
&nbsp; &nbsp; &nbsp; &nbsp; }</div></div>
</pre>
<p>and then use it having the following methods:</p>
<pre>
<div class="codecolorer-container text " style="overflow:auto;white-space:nowrap;width:535px;height:300px"><div class="text codecolorer" style="font-family:Monaco,Lucida Console,monospace">/// Adds a bucket to an S3 account<br />
public void AddBucket(String bucketName);<br />
<br />
&nbsp;/// Returns a string of XML, describing the contents of a bucket<br />
public String ListBucket(String bucketName);<br />
<br />
/// Adds a string to a bucket, as an object<br />
public void AddStringObject(String bucketName, String keyName, String data);<br />
<br />
/// Streams a file to a bucket as an object<br />
public void AddFileObject(String bucketName, String keyName, String localfile);<br />
<br />
/// Streams a file to a bucket as an object, with encryption<br />
public void AddEncryptFileObject(String bucketName, String keyName, String localfile, String encryptionKey, String encryptionIV);<br />
<br />
/// Gets a string object from a bucket, and returns it as a String<br />
public String GetStringObject(String bucketName, String keyName);<br />
<br />
/// Gets a file object from a bucket, and streams it to disk<br />
public void GetFileObject(String bucketName, String keyName, String localfile);<br />
<br />
/// Gets a file object from a bucket, streaming it to disk, with decryption<br />
public void GetDecryptFileObject(String bucketName, String keyName, String localfile, String encryptionKey, String encryptionIV);<br />
<br />
/// Copies an object from a source location to a destination location<br />
public void CopyObject(String sourceBucketName, String sourceKey, String destinationBucketName, String destinationKey);<br />
<br />
/// Generates a URL to access an S3 object in a bucket<br />
public String GetUrl(String bucketName, String keyName);<br />
<br />
/// Deletes an object from a bucket<br />
public void DeleteObject(String bucketName, String keyName);<br />
<br />
/// Deletes a bucket from an S3 account<br />
public void DeleteBucket(String bucketName);<br />
<br />
/// Changes the request payer value for the specified bucket<br />
public String PaymentChange(String bucketName, PaymentChangeRequest.Payer payer);<br />
<br />
/// Gets the request payer value for the specified bucket<br />
public String PaymentGet(String bucketName);</div></div>
</pre>
<p>The library is dead easy to use and most importantly it works (comparing to other S3 libraries I&#8217;ve found). Great work Joel!<br />
You can download the solution zip from <a href="http://storage43.com/file/show/47">here</a> or directly from the codeplex hosting the project <a href="http://threesharp.codeplex.com/">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarepassion.com/affirma-s3-library-for-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spreading the word: Amazon Web Services.</title>
		<link>http://www.softwarepassion.com/spreading-the-word-amazon-web-services/</link>
		<comments>http://www.softwarepassion.com/spreading-the-word-amazon-web-services/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 19:54:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://softwarepassion.com/?p=14</guid>
		<description><![CDATA[
      I&#8217;m slowly starting my third year of university and slowly preparing for my final year project. A few days ago, when doing some research on what to do exactly for my FYP I have found  accidentally web page describing AWS. I have seen it before on other blogs [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_SjX7MIMF_HI/RtxxwcHO2KI/AAAAAAAAAF4/2snXL9Furf4/s1600-h/100014192753._V46777512_.gif" rel="lightbox[14]"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_SjX7MIMF_HI/RtxxwcHO2KI/AAAAAAAAAF4/2snXL9Furf4/s400/100014192753._V46777512_.gif" alt="" id="BLOGGER_PHOTO_ID_5106081154525485218" border="0" /></a></p>
<p>      I&#8217;m slowly starting my third year of university and slowly preparing for my final year project. A few days ago, when doing some research on what to do exactly for my FYP I have found  accidentally web page describing AWS. I have seen it before on other blogs here and there but actually never checked it out!<br />Simply, this is great, well, could be better, and by saying better I mean free <img src='http://www.softwarepassion.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  but still, it&#8217;s great.<br />I didn&#8217;t have a chance to try them all but the one, which I think is the most popular, called S3 which stands for Simple Storage Service, is really good one!<br />You pay for almost everything but in my opinion the service is really really cheap even for a student like me! You have to pay for transfers in and out, for storage and for simple requests like LIST, DELETE etc. but for example 1000 of them cost 0.01$ which is really nice. Best of all, no setup fees, no fixed costs, it&#8217;s pure pay as you go service!</p>
<p>I will write here a very simple step by step tutorial on how to set everything up for S3 just to show more or less how simple it is but actually better and much more detailed tutorial is available on amazon web site. You can have a look at small video tutorial prepared by brightcove.com @ <a href="http://www.brightcove.com/title.jsp?title=769277068&#038;channel=770166766">http://www.brightcove.com/title.jsp?title=769277068&amp;channel=770166766</a></p>
<p>To get started you would need:<br />1. Good will<br />2. Some files to transfer<br />3. Credit card<br />4. Little time<br />5. Client application for managing your files somehow.</p>
<p>This tutorial will be very short as I will skip the first 4 steps <img src='http://www.softwarepassion.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<br />After you register for any of the services on amazon web site you can have a look at tutorials and developer resources. There is a wide choice of languages and api&#8217;s to choose from and many examples on how to use them. I had a look at Java ones and I have to say that even writing your own client with a little programming experience cannot be difficult.<br />Of course you can write the client yourself to make the most of the amazon web services with your appication but for the purpose of this tutorial you can simply use firefox plugin and transfer your files in a simple way over http to or from the amazon servers.<br />You can find the plugin at: <a href="https://addons.mozilla.org/en-US/firefox/addon/3247">https://addons.mozilla.org/en-US/firefox/addon/3247</a><br />Install the plugin and restart firefox. When you are registered, amazon will send you an email with links to the web site with your special set of keys which you have to use to connect to your service. Enter this keys into the box after clicking &#8216;Manage Accounts&#8217; button on your left hand side and you are ready to go!</p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_SjX7MIMF_HI/RtxyGMHO2MI/AAAAAAAAAGI/DhB6k10Zl3w/s1600-h/Screenshot-1.png" rel="lightbox[14]"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_SjX7MIMF_HI/RtxyGMHO2MI/AAAAAAAAAGI/DhB6k10Zl3w/s320/Screenshot-1.png" alt="" id="BLOGGER_PHOTO_ID_5106081528187640002" border="0" /></a></p>
</div>
<p>For more details especially about the code examples and api&#8217;s check the amazon web site!<br />Highly recommended!<br />PS. I will get back to you if I realize that I have not read the terms carefully and I will have to pay for it more than I expect <img src='http://www.softwarepassion.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwarepassion.com/spreading-the-word-amazon-web-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
