<?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>dKaiser &#187; Amazon AWS</title>
	<atom:link href="http://www.dkaiser.com/blog/tag/aws/feed" rel="self" type="application/rss+xml" />
	<link>http://www.dkaiser.com/blog</link>
	<description>- Experiments with Clouds</description>
	<lastBuildDate>Mon, 30 Jan 2012 20:23:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Recovering a non responsive AWS instance</title>
		<link>http://www.dkaiser.com/blog/recovering-a-non-responsive-aws-instance?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=recovering-a-non-responsive-aws-instance</link>
		<comments>http://www.dkaiser.com/blog/recovering-a-non-responsive-aws-instance#comments</comments>
		<pubDate>Mon, 30 Jan 2012 20:23:20 +0000</pubDate>
		<dc:creator>Pauli Haikonen</dc:creator>
				<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[Recovery]]></category>
		<category><![CDATA[EBS]]></category>

		<guid isPermaLink="false">http://www.dkaiser.com/blog/?p=229</guid>
		<description><![CDATA[TweetI could not ssh in to one of my AWS instances last evening and it wasn’t serving any pages either. AWS management console said it was up, though. Rebooting did not help. The second reboot did not help either. Shutdown and start did not help. I was running out of tricks here! For some reason, [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Frecovering-a-non-responsive-aws-instance&amp;text=Recovering%20a%20non%20responsive%20AWS%20instance&amp;related=&amp;lang=en&amp;count=&amp;counturl=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Frecovering-a-non-responsive-aws-instance" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://www.dkaiser.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>I could not ssh in to one of my AWS instances last evening and it wasn’t serving any pages either. AWS management console said it was up, though. Rebooting did not help. The second reboot did not help either. Shutdown and start did not help. I was running out of tricks here!</p>
<p>For some reason, the instance had been running on 100% CPU utilization for days:</p>
<p style="text-align: center;"><a href="http://www.dkaiser.com/blog/wp-content/uploads//2012/01/Screen-shot-2012-01-30-at-9.53.18-PM-1.png"><img class="aligncenter size-full wp-image-230" title="Screen shot 2012-01-30 at 9.53.18 PM 1" src="http://www.dkaiser.com/blog/wp-content/uploads//2012/01/Screen-shot-2012-01-30-at-9.53.18-PM-1.png" alt="" width="600" height="380" /></a></p>
<p>(I better do some monitoring in future!)</p>
<p>Even though the CPU usage had dropped after the restarting, the instance would not accept any connections. The only thing I could think of was to either ping the AWS forum, or to get the running volume on some new instance as the instance was an EBS based one. I decided to go with the new volume if the database would not mind too much. Steps I needed to do were:</p>
<ol>
<li>Snapshot the running volume</li>
<li>Create a new volume out of the snapshot on the same availability zone</li>
<li>Start a new instance with the Launch more like this</li>
<li>Shutdown the new instance</li>
<li>Detach the volume on the new instance</li>
<li>Attach the volume which was created from the snapshot to new instance (need to have the correct  attachment information, like /dev/sda1)</li>
<li>Start the new instance</li>
<li>Disassociate the Elastic IP from the old instance</li>
<li>Associate the correct Elastic IP on the new instance</li>
<li>Test and wish for the best</li>
</ol>
<p>This actually worked and did not even take too much time. Actually, really cool when thinking about this and imagining I would have had a physical server instead&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dkaiser.com/blog/recovering-a-non-responsive-aws-instance/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My new best AWS feature, CloudFormation</title>
		<link>http://www.dkaiser.com/blog/my-new-best-aws-feature-cloudformation?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=my-new-best-aws-feature-cloudformation</link>
		<comments>http://www.dkaiser.com/blog/my-new-best-aws-feature-cloudformation#comments</comments>
		<pubDate>Sat, 19 Nov 2011 13:06:48 +0000</pubDate>
		<dc:creator>Pauli Haikonen</dc:creator>
				<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[CloudFormation]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[EC2]]></category>

		<guid isPermaLink="false">http://www.dkaiser.com/blog/?p=206</guid>
		<description><![CDATA[TweetI just realized AWS has a feature called the CloudFormation which allows users to script their technology stack in a convenient and easily understood JSON formatted text files which can then be used to deploy the stack over and over again, always the same way. Fantastic! This eases a the burden of managing a bunch [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fmy-new-best-aws-feature-cloudformation&amp;text=My%20new%20best%20AWS%20feature%2C%20CloudFormation&amp;related=&amp;lang=en&amp;count=&amp;counturl=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fmy-new-best-aws-feature-cloudformation" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://www.dkaiser.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>I just realized AWS has a feature called the <a href="http://aws.amazon.com/cloudformation">CloudFormation</a> which allows users to script their technology stack in a convenient and easily understood JSON formatted text files which can then be used to deploy the stack over and over again, always the same way. Fantastic! This eases a the burden of managing a bunch of customized AMIs or other ways of having some custom features introduced to the AMIs. I wonder how I did not notice this feature before. It even has a tab in the AWS Management Console. There are also some <a href="http://aws.amazon.com/cloudformation/aws-cloudformation-templates/">sample</a> templates which for example install Drupal or a basic Ruby Hello World example. </p>
<p>As a test, I ran the Drupal installation script and I have to say this was by far the easiest Drupal installation I have ever done. <a href="http://www.dkaiser.com/blog/wp-content/uploads//2011/11/Screen-shot-2011-11-18-at-11.14.09-PM.png"><img src="http://www.dkaiser.com/blog/wp-content/uploads//2011/11/Screen-shot-2011-11-18-at-11.14.09-PM-300x297.png" alt="" title="Screen shot 2011-11-18 at 11.14.09 PM" width="300" height="297" class="aligncenter size-medium wp-image-207" /></a><a href="http://www.dkaiser.com/blog/wp-content/uploads//2011/11/Screen-shot-2011-11-18-at-11.16.08-PM.png"><img src="http://www.dkaiser.com/blog/wp-content/uploads//2011/11/Screen-shot-2011-11-18-at-11.16.08-PM-300x112.png" alt="" title="Screen shot 2011-11-18 at 11.16.08 PM" width="300" height="112" class="aligncenter size-medium wp-image-208" /></a><a href="http://www.dkaiser.com/blog/wp-content/uploads//2011/11/Screen-shot-2011-11-18-at-11.23.55-PM.png"><img src="http://www.dkaiser.com/blog/wp-content/uploads//2011/11/Screen-shot-2011-11-18-at-11.23.55-PM-300x180.png" alt="" title="Screen shot 2011-11-18 at 11.23.55 PM" width="300" height="180" class="aligncenter size-medium wp-image-209" /></a>From start to finish in 5 minutes where most of it was just waiting for the deploy to finish. Absolutely great! Minor thing might be to remember that the security keys are not available in all the Regions, at least not in US East (Virginia) my keys were not available which caused the stack deployment to fail without any good reason except key was not found… I was of course first thinking of a typo in the key name. The other thing is that the user must know the instance type name, such as t1.micro while a drop down menu would be great.</p>
<p>There is also a possibility to modify an existing stack which is actually a relatively new feature. This makes it even more usable. It would be interesting to see if I could do a stack for a simple Aegir installation as lately that&#8217;s the platform I have been installing the most and doing the <a href="http://community.aegirproject.org/node/389">manual installation</a> has become kind of boring. CloudFormation would help lot with that!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dkaiser.com/blog/my-new-best-aws-feature-cloudformation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon Web Services used in Sony PSN attack</title>
		<link>http://www.dkaiser.com/blog/amazon-web-services-used-in-sony-psn-attack?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=amazon-web-services-used-in-sony-psn-attack</link>
		<comments>http://www.dkaiser.com/blog/amazon-web-services-used-in-sony-psn-attack#comments</comments>
		<pubDate>Mon, 16 May 2011 17:02:42 +0000</pubDate>
		<dc:creator>Pauli Haikonen</dc:creator>
				<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[attack]]></category>
		<category><![CDATA[Bloomberg]]></category>
		<category><![CDATA[PSN]]></category>

		<guid isPermaLink="false">http://www.dkaiser.com/blog/?p=199</guid>
		<description><![CDATA[TweetToday’s breaking news have been Bloomberg’s story about the Sony PSN attack been conducted by using Amazon Web Services. I read the story and feel confused, like how on earth can the source of the servers be any kind of relevancy if they’ve been using a public cloud provider? Come on, Amazon can’t and really [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Famazon-web-services-used-in-sony-psn-attack&amp;text=Amazon%20Web%20Services%20used%20in%20Sony%20PSN%20attack&amp;related=&amp;lang=en&amp;count=&amp;counturl=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Famazon-web-services-used-in-sony-psn-attack" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://www.dkaiser.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Today’s breaking <a href="http://www.bloomberg.com/news/2011-05-15/sony-attack-shows-amazon-s-cloud-service-lures-hackers-at-pennies-an-hour.html">news</a> have been Bloomberg’s story about the Sony PSN attack been conducted by using Amazon Web Services. I read the story and feel confused, like how on earth can the source of the servers be any kind of relevancy if they’ve been using a public cloud provider? Come on, Amazon can’t and really should not, follow what their customers do with their servers. This whole thing Bloomberg is writing about is like saying the bank was robbed by a Smith&#038;Wesson and it was Smith&#038;Wesson’s fault.</p>
<p>Of course, there will be a subpoena for getting all the information of the account used in managing the account and I guess they had to use some stolen credit card as well which is interesting. Also, the statement in the Bloomberg’s article about anyone anonymously going and getting an account in AWS is kind of not totally true. Maybe it can be managed somehow if using a stolen credit card, but it’s not an anonymous service as such. And how are you going to prevent that “flaw” in the system of the possibility using stolen cards and false identities? Scan your id and send that as well or visit them at AWS personally? Huh?</p>
<p>In the end of the article, there is a thought-provoking paragraph of “Rethinking the Cloud” because a cloud can be used also for malicious purposes. Yep. I’ll do think about this for a while&#8230;</p>
<p>Thinking&#8230;</p>
<p>Thinking&#8230;</p>
<p>&#8230;and it should not matter for the most parts. Say, the whole AWS would be used only for attacks and the service level would degrade and my IPs would be black listed, then I probably would switch to some other provider, but, right now, I am not worried the least bit. I have my application and the service level I need in a good and healthy balance.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dkaiser.com/blog/amazon-web-services-used-in-sony-psn-attack/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working with Amazon Route 53</title>
		<link>http://www.dkaiser.com/blog/working-with-amazon-route-53?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=working-with-amazon-route-53</link>
		<comments>http://www.dkaiser.com/blog/working-with-amazon-route-53#comments</comments>
		<pubDate>Tue, 25 Jan 2011 19:52:51 +0000</pubDate>
		<dc:creator>Pauli Haikonen</dc:creator>
				<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[Ficora]]></category>
		<category><![CDATA[Route 53]]></category>

		<guid isPermaLink="false">http://www.dkaiser.com/blog/?p=183</guid>
		<description><![CDATA[TweetI wanted to get a fi-domain as I am building a site for our housing company. It&#8217;s very much a pro bono work, but interesting nevertheless. To be honest, this is the first time I have to register a fi-domain and man, it&#8217;s not as easy as getting a com or similar domain with DynDNS [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fworking-with-amazon-route-53&amp;text=Working%20with%20Amazon%20Route%2053&amp;related=&amp;lang=en&amp;count=&amp;counturl=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fworking-with-amazon-route-53" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://www.dkaiser.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>I wanted to get a fi-domain as I am building a site for our housing company. It&#8217;s very much a pro bono work, but interesting nevertheless. To be honest, this is the first time I have to register a fi-domain and man, it&#8217;s not as easy as getting a com or similar domain with DynDNS etc. You need to be a Finnish citizen to be allowed to get one for starters and made sure you are not violating any possible trademarks or even more, some real people with your domain name.</p>
<p>I would perhaps been ok if a DynDNS type of service would exists (well, now as I write this it probably does) in Finland, but the ones I came across were mostly just taking orders and not like dynamically updating their resources… but can&#8217;t of course be totally sure. Anyway, I decided to give Amazon Route 53 a go as it is new and I do appreciate the possibility to update the records on command line. Or well, I perhaps did not investigate really too much before signing up.</p>
<p>First I had to though register the fi-domain with Ficora and that took around a day to get the credentials on paper. Yes. On paper. The next step was to register the name and give them two (at this point fictious) name servers. Then I was on my way to Route 53. The first look at the Getting Started Guide is not very encouraging. Need to create some files which contain the access keys and the actual requests. Need to run a perl script to actually create the records. Good thing I bought my first Mac just a few months ago as with Windows this would have sucked.</p>
<p>So the first thing was to create the .aws-secret file which contains your AWS Secret Access Keys it looks something like this:</p>
<p>%awsSecretAccessKeys = (<br />
&#8220;my-keys&#8221; =&gt; {<br />
id =&gt; &#8220;JISEGIOJDFGSLSDKFG&#8221;,<br />
key =&gt; &#8220;KSLDFSDFGSDFGSasdfsdASFDSDF&#8221;,<br />
},<br />
);</p>
<p>And it really needs to be named .aws-secret and have only read permissions as the dnscurl.pl checks this.</p>
<p>Then create the zone you have registered:</p>
<p>&lt;CreateHostedZoneRequest xmlns=&#8221;https://route53.amazonaws.com/doc/2010-10-01/&#8221;&gt;<br />
&lt;Name&gt;YOURDOMAIN.fi.&lt;/Name&gt;<br />
&lt;CallerReference&gt;SOMETHINGRANDOMHERE&lt;/CallerReference&gt;<br />
&lt;HostedZoneConfig&gt;<br />
&lt;Comment&gt;Creating first zone&lt;/Comment&gt;<br />
&lt;/HostedZoneConfig&gt;<br />
&lt;/CreateHostedZoneRequest&gt;</p>
<p>Then download dnscurl.pl from the AWS developer tools and run it with these parameters:</p>
<p>dnscurl.pl &#8211;keyname my-keys &#8212; -X POST -H &#8220;Content-Type: text/xml; charset=UTF-8&#8243; &#8211;upload-file MyCreateRequest.xml https://route53.amazonaws.com/2010-10-01/hostedzone</p>
<p>You should get something like this in return:</p>
<p>&lt;CreateHostedZoneResponse xmlns=&#8221;https://route53.amazonaws.com/doc/2010-10-01/&#8221;&gt;&lt;HostedZone&gt;&lt;Id&gt;/hostedzone/34LJSKFSJGSDFKJ&lt;/Id&gt;&lt;Name&gt;YOURDOMAIN.fi.&lt;/Name&gt;&lt;CallerReference&gt;JIjasdmfasfw4af3233&lt;/CallerReference&gt;&lt;Config&gt;&lt;Comment&gt;Creating first zone&lt;/Comment&gt;&lt;/Config&gt;&lt;/HostedZone&gt;&lt;ChangeInfo&gt;&lt;Id&gt;/change/23ILKSFJDLSK&lt;/Id&gt;&lt;Status&gt;PENDING&lt;/Status&gt;&lt;SubmittedAt&gt;2011-01-24T20:48:47.715Z&lt;/SubmittedAt&gt;&lt;/ChangeInfo&gt;&lt;DelegationSet&gt;&lt;NameServers&gt;&lt;NameServer&gt;ns-1778.awsdns-30.co.uk&lt;/NameServer&gt;&lt;NameServer&gt;ns-372.awsdns-44.com&lt;/NameServer&gt;&lt;NameServer&gt;ns-1621.awsdns-38.org&lt;/NameServer&gt;&lt;NameServer&gt;ns-534.awsdns-04.net&lt;/NameServer&gt;&lt;/NameServers&gt;&lt;/DelegationSet&gt;&lt;/CreateHostedZoneResponse&gt;</p>
<p>Here are the real name servers which I had to give to Ficora and it happily said them being ok, so fi-domain is well supported by AWS! Yey!</p>
<p>Then you can start adding records to your zone. First need to create the MyRecordsRequest.xml for the records which could look like this:</p>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br />
&lt;ChangeResourceRecordSetsRequest xmlns=&#8221;https://route53.amazonaws.com/doc/2010-10-01/&#8221;&gt;<br />
&lt;ChangeBatch&gt;<br />
&lt;Comment&gt;<br />
Create A-record<br />
&lt;/Comment&gt;<br />
&lt;Changes&gt;<br />
&lt;Change&gt;<br />
&lt;Action&gt;CREATE&lt;/Action&gt;<br />
&lt;ResourceRecordSet&gt;<br />
&lt;Name&gt;www.yourdomain.fi.&lt;/Name&gt;<br />
&lt;Type&gt;A&lt;/Type&gt;<br />
&lt;TTL&gt;14400&lt;/TTL&gt;<br />
&lt;ResourceRecords&gt;<br />
&lt;ResourceRecord&gt;<br />
&lt;Value&gt;192.0.0.111&lt;/Value&gt;<br />
&lt;/ResourceRecord&gt;<br />
&lt;/ResourceRecords&gt;<br />
&lt;/ResourceRecordSet&gt;<br />
&lt;/Change&gt;<br />
&lt;/Changes&gt;<br />
&lt;/ChangeBatch&gt;<br />
&lt;/ChangeResourceRecordSetsRequest&gt;</p>
<p>dnscurl.pl &#8211;keyname my-keys &#8212; -H &#8220;Content-Type: text/xml; charset=UTF-8&#8243; -X POST &#8211;upload-file ./MyRecordsRequest.xml https://route53.amazonaws.com/2010-10-01/hostedzone/34LJSKFSJGSDFKJ/rrset</p>
<p>And you should get a response like this:<br />
0.0%<br />
&lt;?xml version=&#8221;1.0&#8243;?&gt;<br />
&lt;ChangeResourceRecordSetsResponse xmlns=&#8221;https://route53.amazonaws.com/doc/2010-10-01/&#8221;&gt;&lt;ChangeInfo&gt;&lt;Id&gt;/change/C3FMNWCVL1YW40&lt;/Id&gt;&lt;Status&gt;PENDING&lt;/Status&gt;&lt;SubmittedAt&gt;2011-01-25T19:16:24.181Z&lt;/SubmittedAt&gt;&lt;/ChangeInfo&gt;&lt;/ChangeResourceRecordSetsResponse&gt;</p>
<p>I got a few problems with &#8220;root is not authorized to perform: route53:ChangeResourceRecordSets on resource&#8221; because I did not have ./ in front of the MyRecordsRequest.xml, so remember to have it there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dkaiser.com/blog/working-with-amazon-route-53/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing t1.micro with loadimpact.com</title>
		<link>http://www.dkaiser.com/blog/testing-t1-micro-with-loadimpact-com?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=testing-t1-micro-with-loadimpact-com</link>
		<comments>http://www.dkaiser.com/blog/testing-t1-micro-with-loadimpact-com#comments</comments>
		<pubDate>Thu, 07 Oct 2010 20:06:09 +0000</pubDate>
		<dc:creator>Pauli Haikonen</dc:creator>
				<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[loadimpact.com]]></category>
		<category><![CDATA[t1.micro]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[vkaiser.com]]></category>

		<guid isPermaLink="false">http://www.dkaiser.com/blog/?p=158</guid>
		<description><![CDATA[TweetWell hello there! It’s been a while, but I finally found some time to work with the sites and the latest of Amazon Web Services. Lately, AWS has introduced the tiny micro instances with a tempting price tag for small businesses with not too much of a need for high performance. For me, those do [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Ftesting-t1-micro-with-loadimpact-com&amp;text=Testing%20t1.micro%20with%20loadimpact.com&amp;related=&amp;lang=en&amp;count=&amp;counturl=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Ftesting-t1-micro-with-loadimpact-com" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://www.dkaiser.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Well hello there! It’s been a while, but I finally found some time to work with the sites and the latest of Amazon Web Services. Lately, AWS has introduced the tiny micro instances with a tempting price tag for small businesses with not too much of a need for high performance. For me, those do sound fantastic for testing purposes as I have been wanting to try running the two sites, this and <a href="http://www.vkaiser.com">vkaiser.com</a> on a bit more robust architecture than the current one with just an EBS based AMI and the videos in S3. </p>
<p>I run the typical LAMP stack on one AMI, thus the idea was first to boot up one micro instance and have a look. Well, I chose to go with some old image I had created way long time ago. It also had a LAMP stack installed, but of course it was kind of outdated and the vkaiser.com did not look too good (well, does it now either…), so I figured I could rsync the html folder of the Drupal installation and I did eventually get the rsync with public key working. Then I realized that the db wasn’t really up to date either and the drupal modules would not of course work, so how about connecting to the database on the current “production” which would kind of resemble the hopefully future setup too as running a separate db server (and slave) would just be the way to go at least with Drupal.</p>
<p>Settings in Drupal for remote database connections are really simple. First edit the MySQL configuration (/etc/my.cnf) to have </p>
<p>Bind-address=database_ip</p>
<p>And if you have skip networking defined, comment that out.</p>
<p>Then add remote access permissions to the database for a db user </p>
<p>GRANT ALL ON *.* TO &#8216;dbuser&#8217;@'remote_ip&#8217; IDENTIFIED BY &#8216;password&#8217;;</p>
<p>And modify the settings.php on the remote application server to point to the database server:</p>
<p>$db_url = &#8216;mysql://dbuser:password@database_ip/database_name&#8217;;</p>
<p>Then you can test the connection to the database. At least I got that working, though I was first editing the wrong settings.php file which of course did not prove to be very useful in getting the db connection working.</p>
<p>The real deal was though to see how the t1.micro performs under stress. I browsed a while for some tools with how to do the test, but then I found loadimpact.com which simulates really well concurrent users from 0-50 for free! With some euros, you can get up to 5000 users and customized tests and what not. I like the service, though it went down just as I got my t1.micro <a href="http://loadimpact.com/result/micro.vkaiser.com338474d1a1903200b144e041909d4f84">tested</a>. The average response time was around 1.5 seconds for the vkaiser.com frontpage and it did not show any real implications of getting slower, thus I should put more load on the micro if I coughed up some cash. I next went on and tested my good old small instance and got about the same <a href="http://loadimpact.com/result/www.vkaiser.com-65b4295ea1e654ada6d731fc69b43a56">results</a></p>
<p>This wasn’t too scientific, though the results are encouraging. I mean, 50 concurrent users is about 49 more than this site usually has and the micro worked well, so I am planning to make a switch soon… More about that later!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dkaiser.com/blog/testing-t1-micro-with-loadimpact-com/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>vKaiser.com</title>
		<link>http://www.dkaiser.com/blog/vkaiser-com?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=vkaiser-com</link>
		<comments>http://www.dkaiser.com/blog/vkaiser-com#comments</comments>
		<pubDate>Thu, 08 Apr 2010 08:46:16 +0000</pubDate>
		<dc:creator>Pauli Haikonen</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Recovery]]></category>
		<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[vkaiser.com]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.dkaiser.com/blog/?p=137</guid>
		<description><![CDATA[TweetI&#8217;ve been neglecting the blog for a while and feel sorry about that. The spring has been busy and will most likely stay like that, some bachelor parties and weddings and I am also going to be a dad in the beginning of June! The boy is already kicking strong! But I also have some [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fvkaiser-com&amp;text=vKaiser.com&amp;related=&amp;lang=en&amp;count=&amp;counturl=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fvkaiser-com" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://www.dkaiser.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>I&#8217;ve been neglecting the blog for a while and feel sorry about that. The spring has been busy and will most likely stay like that, some bachelor parties and weddings and I am also going to be a dad in the beginning of June! The boy is already kicking strong! </p>
<p>But I also have some new cloud related things to tell you about. Since the blog isn&#8217;t exactly driving traffic too much and I had some free CPU resources, I started a new project, <a href="http://www.vkaiser.com">vKaiser.com</a>, which is a more Web 2.0 oriented site. Well, an imitation of YouTube but with heavy connections to social media sites like Facebook and Twitter. The site is by no means ready, but you are welcome to check it out &#8211; with Firefox. IE7 is ok too if you are not on compatibility mode. Interesting things to mention is the storage of the videos and thumbnails in S3 and the possibility to use CloudFront too.</p>
<p>And just to make this post a bit more cloud related and not just pitching my new site, a short story of what happened during the development at one point. As said, I had the Facebook Connect module as well as the Drupal for Facebook (yes, I ended up running Drupal as the CMS system) module installed but I had not enabled the Facebook Connect module since the Drupal for Facebook does essentially the same thing of connecting with your Facebook credentials. Or should do. I had and still have problems with the module as it forwards to a page which can&#8217;t be found but still after a few refreshes actually logs in. Anyway, I did go and enabled the Facebook Connect module while Drupal for Facebook had the same functionality enabled if another module would work a bit better. </p>
<p>Sure enough, after enabling the module I was watching a white browser screen with an Internal Server Error 500 with no access to the admin interface at all. What to do then? Should I mess with the database? Remove some modules and run update.php? Well, could not even access the update page. Luckily, I was running the site on an EBS based image! I had a week old (yeah, a bit old, but I did not mind) snapshot of the volume so all I had to do was to get the static files out from the bad volume, create a volume of the snapshot, shutdown the instance, detach the bad volume and attach the new volume. Boot up. Reboot had to be done too for some reason before I could see the log from AWS EC2 console. Reattach the elastic ip, copy the static files and I was back in business. Restore time below 10 minutes.</p>
<p>I love EC2.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dkaiser.com/blog/vkaiser-com/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dear Amazon, please make DevPay available in Europe!</title>
		<link>http://www.dkaiser.com/blog/dear-amazon-please-make-devpay-available-in-europe?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dear-amazon-please-make-devpay-available-in-europe</link>
		<comments>http://www.dkaiser.com/blog/dear-amazon-please-make-devpay-available-in-europe#comments</comments>
		<pubDate>Thu, 11 Feb 2010 18:18:43 +0000</pubDate>
		<dc:creator>Pauli Haikonen</dc:creator>
				<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DevPay]]></category>
		<category><![CDATA[Elastra]]></category>

		<guid isPermaLink="false">http://www.dkaiser.com/blog/?p=131</guid>
		<description><![CDATA[TweetSo you have your great new application utilizing all the awesomeness of Amazon AWS? How you gonna sell it? There are vague definitions of what is a cloud service and one of the prerequisites was that you could buy the service with your credit card and to pay only for the resources you use. Amazon [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fdear-amazon-please-make-devpay-available-in-europe&amp;text=Dear%20Amazon%2C%20please%20make%20DevPay%20available%20in%20Europe%21&amp;related=&amp;lang=en&amp;count=&amp;counturl=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fdear-amazon-please-make-devpay-available-in-europe" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://www.dkaiser.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>So you have your great new application utilizing all the awesomeness of Amazon AWS? How you gonna sell it?</p>
<p>There are vague definitions of what is a cloud service and one of the prerequisites was that you could buy the service with your credit card and to pay only for the resources you use. Amazon DevPay allows developers to sell their AMIs (with application installed), all you need is a business in the US. </p>
<p>There are two ways how you can use DevPay: through AMIs you have built with the service installed and also by selling an application which uses S3 as the storage location. It&#8217;s a really good start, but still lacks a few things, like if you actually would like to provide high availability for the client who bought your AMI, the client will have to roll their own solution to achieve this. I bet in principle not many clients are willing to do that and would just like the application to be available. </p>
<p>When I think about this dilemma, a solution might be to have some kind of a root AMI which a customer would buy (and pay by the hour like crazy). This would then take care of the availability of the service by seeding new servers which are members of the application through some very wicked autoconfiguration. Actually, <a href="http://www.elastra.com"> Elastra</a> does almost this as their product allows the user to define architectures and then deploy them to Amazon. In principle, it would be possible to have an Elastra AMI with some configuration inside which the client could then deploy, but it does sound like a hack and not really something you could sell as a product. By the way, the Elastra&#8217;s product looks great for defining and deploying architectures at least internally within an organization.</p>
<p>The seeding of an application from a root AMI might make clients able to buy a redundant application and not pieces of it. So far, though, this is just a beautiful dream since the DevPay is not available in Europe so it isn&#8217;t possible to start with even the simplest model of serving an AMI of your superduperapp for the public. That is, if you don&#8217;t implement billing yourself. If I&#8217;m not totally wrong, the billing API is not public which makes rolling out your own solution impossible (you can&#8217;t either put limits based on usage charges in your account due to this reason).</p>
<p>I would be willing to adjust the definition of a cloud service regarding the pay by the hour and order by credit card before DevPay is available in Europe.   </p>
]]></content:encoded>
			<wfw:commentRss>http://www.dkaiser.com/blog/dear-amazon-please-make-devpay-available-in-europe/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unexpected Outage</title>
		<link>http://www.dkaiser.com/blog/unexpected-outage?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unexpected-outage</link>
		<comments>http://www.dkaiser.com/blog/unexpected-outage#comments</comments>
		<pubDate>Tue, 15 Dec 2009 20:14:44 +0000</pubDate>
		<dc:creator>Pauli Haikonen</dc:creator>
				<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[EBS]]></category>

		<guid isPermaLink="false">http://www.dkaiser.com/blog/?p=115</guid>
		<description><![CDATA[TweetThe site went down today for a few hours and the worst thing is, it was sort of my own fault. The last time I was playing with booting from Amazon EBS I must have made a mistake when detaching volumes from the (wrong) instances. Thus, the incident was caused by the EBS volume not [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Funexpected-outage&amp;text=Unexpected%20Outage&amp;related=&amp;lang=en&amp;count=&amp;counturl=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Funexpected-outage" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://www.dkaiser.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>The site went down today for a few hours and the worst thing is, it was sort of my own fault. The last time I was playing with <a href="http://www.dkaiser.com/blog/booting-from-amazon-ebs">booting from Amazon EBS</a> I must have made a mistake when detaching volumes from the (wrong) instances. Thus, the incident was caused by the EBS volume not being attached. When I was trying out that EBS booting the one and only EBS volume which is attached to this EC2 instance had the &#8220;Attachment Information&#8221; as &#8220;busy&#8221; and not as &#8220;attached&#8221; which seems to be the standard status of a well working volume. I probably detached the volume and the status changed to &#8220;busy&#8221; state. </p>
<p>I remember wondering what that &#8220;busy&#8221; meant at that time. Now I know. </p>
<p>It should go without saying that this status information of &#8220;busy&#8221; is really, really uninformative. How about &#8220;detaching&#8221; instead when a user wants to detach a volume? And why did it take about one and a half weeks to detach? Is there a log somewhere I really did detach a volume? The lesson learned from this incident is to act if your EBS volume goes to &#8220;busy&#8221; state. All might work fine for a while but be warned, it will detach at some point. Also, it would be really nice if there would be some abstraction layer in between the real names of the volumes and instances and the ones available to customers. With this layer a user could add more descriptive names to instances or what ever objects there are. Or then really start using different accounts for development and production stuff&#8230; Really.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dkaiser.com/blog/unexpected-outage/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deploying applications instead of Virtual Machines</title>
		<link>http://www.dkaiser.com/blog/deploying-applications-instead-of-virtual-machines?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=deploying-applications-instead-of-virtual-machines</link>
		<comments>http://www.dkaiser.com/blog/deploying-applications-instead-of-virtual-machines#comments</comments>
		<pubDate>Sat, 12 Dec 2009 21:15:12 +0000</pubDate>
		<dc:creator>Pauli Haikonen</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[RightScript]]></category>

		<guid isPermaLink="false">http://www.dkaiser.com/blog/?p=111</guid>
		<description><![CDATA[TweetI&#8217;ve been thinking the relationship between operating systems and the reason why they exist &#8211; the applications. How does PaaS fit into the future of computing or is IaaS just a stepping stone to a world without the traditional one server, one application approach? Having a background with enterprise IT, I know something (but not [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fdeploying-applications-instead-of-virtual-machines&amp;text=Deploying%20applications%20instead%20of%20Virtual%20Machines&amp;related=&amp;lang=en&amp;count=&amp;counturl=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fdeploying-applications-instead-of-virtual-machines" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://www.dkaiser.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>I&#8217;ve been thinking the relationship between operating systems and the reason why they exist &#8211; the applications. How does PaaS fit into the future of computing or is IaaS just a stepping stone to a world without the traditional one server, one application approach?</p>
<p>Having a background with enterprise IT, I know something (but not much) about deploying applications. Many of them are multi-tiered, the usual being front-end application servers with back-end database servers. Some may have a load balancer in front of the application servers. Thus, there are a few different roles a server must fulfill to deliver the service to a customer using the application these servers in whole produce.</p>
<p>How do you set up an application? It depends about the requirements of course, but basically there are some usual things, at least if you narrow the selectable services. VMware got an idea to bundle a few virtual machines into a vApp which can then be deployed. I have not personally used those, but they seem like an interesting concept. They do work in a bit different way than how an AWS instances would work since with VMware you have the luxury of for example vMotion taking care of VM migration in case the host dies&#8230; Giving there is a VMware HA cluster in place. Hiding the complexity this way sounds fantastic! I love it. I do want the same in Amazon AWS!</p>
<p>There has to be a way to group things in Amazon AWS. There are a few tools such as <a href="http://blog.rightscale.com/2007/08/07/configuring-servers-with-rightscripts/">RightScript</a> and <a href="http://reductivelabs.com/products/puppet/">Puppet</a> which provide a way to move from a specific AMIs to specific scripts which produce a certain kind of servers. Using these scripts it should be possible to deploy a full application with various components. Puppet also makes it possible to update a class (with Puppet the servers may belong to a class, maybe clasess) of servers to have for example the latest resolv.conf file. Sounds nice! Essentially, this sounds a lot like <a href="http://www.microsoft.com/systemcenter/configurationmanager/en/us/default.aspx">Microsoft SCCM</a> but for UNIX like operating systems.</p>
<p>How about a future where a business owner could just browse to an IT webstore, select a CMS installation with a rough estimate of usage and the system would just produce it by running the scripts in the backgroud? Or upgrade an existing system? How many IT admins would lose their jobs?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dkaiser.com/blog/deploying-applications-instead-of-virtual-machines/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Booting from Amazon EBS</title>
		<link>http://www.dkaiser.com/blog/booting-from-amazon-ebs?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=booting-from-amazon-ebs</link>
		<comments>http://www.dkaiser.com/blog/booting-from-amazon-ebs#comments</comments>
		<pubDate>Sun, 06 Dec 2009 15:23:40 +0000</pubDate>
		<dc:creator>Pauli Haikonen</dc:creator>
				<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[EBS]]></category>

		<guid isPermaLink="false">http://www.dkaiser.com/blog/?p=101</guid>
		<description><![CDATA[TweetAmazon has announced a new feature of booting instances from EBS volume. This feature changes radically the way how AWS instances can be preserved if compared to the traditional volume bundling and uploading to S3. Though this all sounds nice, it isn&#8217;t really too easy to convert existing instaces to boot from EBS. All previous [...]]]></description>
			<content:encoded><![CDATA[<div class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fbooting-from-amazon-ebs&amp;text=Booting%20from%20Amazon%20EBS&amp;related=&amp;lang=en&amp;count=&amp;counturl=http%3A%2F%2Fwww.dkaiser.com%2Fblog%2Fbooting-from-amazon-ebs" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://www.dkaiser.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Amazon has <a href="http://aws.amazon.com/about-aws/whats-new/2009/12/03/amazon-ec2-instances-now-can-boot-from-amazon-ebs/">announced</a> a new feature of booting instances from EBS volume. This feature changes radically the way how AWS instances can be preserved if compared to the traditional volume bundling and uploading to S3.</p>
<p>Though this all sounds nice, it isn&#8217;t really too easy to <a href="http://developer.amazonwebservices.com/connect/thread.jspa?messageID=155905">convert</a> existing instaces to boot from EBS. All previous instances boot from the local instance disk. Amazon AWS management console indicates the location where the instance boots with the Root Device Type column. Previous instances have the root device type as instance-store while EBS images have the type as ebs.</p>
<p>To get started with the EBS images, there are a few images from Amazon which are useful as a base image. It was really easy to just boot one of them and mount one EBS volume which contained a snapshot of the database and the www root. Installing basic LAMP stuff, changes in httpd.conf and my.cnf to point in the EBS volume and the AWS instance which boots from EBS was ready. I could now create snapshots of the system in minutes and also shut down the system when I don&#8217;t need it and thus not get billed for the instance. Awesome! The snapshot also had the EBS volume snapshotted which was mounted to the instance.</p>
<p>The EBS image feature is likely to open a wide range of new applications and really change the way how an elastic service is been constructed. Basically, a member of a pool of web servers can now be created in advance and just turned on when there is a demand to use it. Of course, it first must update itself to be on par with the other pool members.</p>
<p>I am not really sure if it was my old lap top which I used to work with the EBS images or what, but the AWS management console was painfully slow in responding, especially when using Firefox. And when using IE, I did not get anything else in the pop-up window than the button to create the snapshot:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-102" title="createImage" src="http://www.dkaiser.com/blog/wp-content/uploads//2009/12/createImage.JPG" alt="createImage" width="458" height="111" /></p>
<p>Firefox, though really slow in responding, gave the option of typing the name in the required field. Also, if you create EBS image and then decide to get rid of the EBS image, you have to delete the AMI first, otherwise the management console will complain that it&#8217;s in use.</p>
<p>I have yet to decide should I go with the instance-store or EBS with my instance. It will add something to my costs of running my site in AWS, but that shouldn&#8217;t be too much. I find a lot more benefits with EBS than running in instance-store, but then again I fear getting lazy in responding to possible threats of instances going down and disaster recovery.</p>
<p>Pauli Haikonen</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dkaiser.com/blog/booting-from-amazon-ebs/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

