<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.alestic.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>Alestic.com</title>
    <link rel="alternate" type="text/html" href="http://alestic.com/" />
    
    <id>tag:alestic.com,2009-04-29://1</id>
    <updated>2013-03-27T01:26:53Z</updated>
    <subtitle>Using Amazon AWS/EC2 with Ubuntu</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.25</generator>

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.alestic.com/alestic-planetubuntu" /><feedburner:info uri="alestic-planetubuntu" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title>Replacing a CloudFront Distribution to "Invalidate" All Objects</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/UnM56D9JKE0/cloudfront-invalidation" />
    <id>tag:alestic.com,2013://1.150</id>

    <published>2013-03-27T01:24:59Z</published>
    <updated>2013-03-27T01:26:53Z</updated>

    <summary>I was chatting with Kevin Boyd (aka Beryllium) on the ##aws Freenode IRC channel about the challenge of invalidating a large number of CloudFront objects (35,000) due to a problem where the cached copies of the objects were out of...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="CloudFront" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cloudfront" label="CloudFront" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="costs" label="costs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="invalidation" label="invalidation" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;I was chatting with Kevin Boyd (aka &lt;a href="http://beryllium.ca/"&gt;Beryllium&lt;/a&gt;) on the ##aws Freenode IRC channel about the challenge of invalidating a large number of &lt;a href="http://aws.amazon.com/cloudfront/"&gt;CloudFront&lt;/a&gt; objects (35,000) due to a problem where the cached copies of the objects were out of date and the system had not been designed with versioning in the object path or name.&lt;/p&gt;

&lt;p&gt;In addition to the work to perform all of these invalidations (in batches of up to 1,000 in each request with at most 3 request outstanding) there is also the issue of cost.  The first thousand CloudFront invalidations are free in a month, but the remainder of the invalidations in this case would cost $170 (at $0.005 for each object).&lt;/p&gt;

&lt;p&gt;It occurred to me that one could take advantage of the on-demand nature of AWS by using the following approach:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a new CloudFront distribution, set up exactly like the existing distribution (except that the new distribution caches would be empty).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change the application to point to the new CloudFront distribution domain when referring to the objects.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Step 2 consists of a simple DNS change, assuming that you use your own domain name (e.g., cdn.example.com) when referring to the CloudFront objects in your web site or application, and where that domain name is a CNAME reference to the actual CloudFront distribution.&lt;/p&gt;

&lt;p&gt;As soon as this is completed (preferably with a short DNS TTL) then the new CloudFront distribution will be hit by clients and will be filled up with the new versions of the objects.&lt;/p&gt;

&lt;p&gt;After a while, you would then destroy and stop paying for the original CloudFront distribution that is no longer being referenced or used.&lt;/p&gt;

&lt;p&gt;Simply replacing the CloudFront distribution effectively &amp;#8220;invalidates&amp;#8221; all of the objects at once, with no charges for invalidation requests and very little effort.&lt;/p&gt;

&lt;p&gt;Once again, AWS wins with the principles of on-demand, pay for what you use, throw away what you don&amp;#8217;t need.&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2013/03/cloudfront-invalidation"&gt;http://alestic.com/2013/03/cloudfront-invalidation&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/UnM56D9JKE0" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2013/03/cloudfront-invalidation</feedburner:origLink></entry>

<entry>
    <title>Email Alerts for AWS Billing Alarms</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/VPjHyXD7oyA/aws-billing-alerts" />
    <id>tag:alestic.com,2013://1.148</id>

    <published>2013-01-15T16:00:00Z</published>
    <updated>2013-01-15T00:36:32Z</updated>

    <summary>using CloudWatch and SNS to send yourself email messages when AWS costs accrue past limits you define The Amazon documentation describes how to use the AWS console to monitor your estimated charges using Amazon CloudWatch and includes some pointers for...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="alarms" label="alarms" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="alerts" label="alerts" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="aws" label="AWS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="billing" label="billing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="charges" label="charges" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cloudwatch" label="CloudWatch" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="costs" label="costs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="email" label="email" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sns" label="SNS" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;&lt;em&gt;using CloudWatch and SNS to send yourself email messages when AWS
 costs accrue past limits you define&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Amazon documentation describes how to use the AWS console to
&lt;a href="http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/monitor_estimated_charges_with_cloudwatch.html"&gt;monitor your estimated charges using Amazon CloudWatch&lt;/a&gt; and
includes some pointers for folks using the command line.
Unfortunately, that article leaves out the commands to set up the SNS
(Simple Notification Service) topics and SNS subscriptions, so I
present here the complete steps I use.&lt;/p&gt;

&lt;p&gt;I like using the command line tools as they let me automate and repeat
actions without having to do lots of pointing, clicking, and
re-entering data.  For example, I want to set up a number of billing
alerts in each new account, sometimes at $10 increments, and sometimes
at $100 or $1000 increments.  The steps below let me do this in
seconds with a simple copy and paste.&lt;/p&gt;

&lt;p&gt;When I get one of these billing alert emails, I glance at the day of
the month to see if that account&amp;#8217;s charges are progressing on an
appropriate pace or if they require further investigation.&lt;/p&gt;

&lt;p&gt;This was the mechanism that recently alerted me to the extra charges
involved in automating the &lt;a href="http://alestic.com/2012/12/s3-glacier-costs"&gt;transition of S3 objects to
Glacier&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once you&amp;#8217;ve installed the &lt;a href="http://alestic.com/2012/09/aws-command-line-tools"&gt;AWS command line tools&lt;/a&gt; here are the
steps to set up automated billing alert emails.&lt;/p&gt;

&lt;h2&gt;Billing Alerts &lt;/h2&gt;

&lt;p&gt;Create an SNS topic where billing alert notifications will be sent.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;snstopic=$(sns-create-topic BillingAlert)
echo snstopic=$snstopic
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Subscribe your email address to the SNS topic so you receive email
messages when your AWS billing estimates exceed each trigger point.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;email=YOURNAME@YOURDOMAIN.com
sns-subscribe "$snstopic" --protocol email --endpoint "$email"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Check your mailbox for a confirmation email from Amazon and click on
the link to complete your subscription to this SNS topic.&lt;/p&gt;

&lt;p&gt;Create CloudWatch monitor alarms for the AWS billing estimated charges
at each dollar figure where you want to be alerted.  This example sets
alarms at every $100 increment up to $1000, but you can change this to
any values you&amp;#8217;d like.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;for amount in 100 200 300 400 500 600 700 800 900 1000
do
  mon-put-metric-alarm "awsbilling-$amount" \
    --alarm-description "AWS billing alarm: \$$amount" \
    --namespace AWS/Billing \
    --metric-name EstimatedCharges \
    --evaluation-periods 1 \
    --period 21600 \
    --statistic Maximum \
    --comparison-operator GreaterThanOrEqualToThreshold \
    --dimensions "Currency=USD" \
    --threshold "$amount" \
    --actions-enabled true \
    --alarm-actions "$snstopic"
done
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;See the CloudWatch monitor alarms you have created:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mon-describe-alarms --headers
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now spend lots of money with AWS and monitor your inbox for email
alerts.&lt;/p&gt;

&lt;h2&gt;Cleanup&lt;/h2&gt;

&lt;p&gt;The above sample commands may incur minimal charges in your account
(&lt;a href="http://aws.amazon.com/sns/pricing/"&gt;SNS Pricing&lt;/a&gt;, &lt;a href="http://aws.amazon.com/pricing/cloudwatch/"&gt;CloudWatch Pricing&lt;/a&gt;).
If you don&amp;#8217;t want to keep these alerts in place, you will need to undo
what was set up.&lt;/p&gt;

&lt;p&gt;Delete the alarms you created (replace with your specific trigger
values used above).&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;for amount in 100 200 300 400 500 600 700 800 900 1000
do
  mon-delete-alarms "awsbilling-$amount" --force
done
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Delete the SNS topic.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sns-delete-topic "$snstopic" --force
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Notes&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In order to follow these examples, you will need to &lt;a href="http://alestic.com/2012/09/aws-command-line-tools"&gt;install the AWS
command line tools&lt;/a&gt;, at least for SNS and CloudWatch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It may take half a day or more for a billing alarm to be triggered
based on how AWS collects billing data and how the alarms are set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make sure you confirm your subscription to the SNS topic by clicking
on the link in the confirmation email AWS sends to you, or Amazon
will send no email billing alerts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Each alert email will have an unsubscribe link in it for your
convenience.  This will unsubscribe you from all of the alerts, not
just the specific cost level in that particular email.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Amazon&amp;#8217;s documentation states that you must first &amp;#8220;enable the
monitoring of estimated charges&amp;#8221; in each account.  I just tested
this with a new account and found that this was &lt;em&gt;not&lt;/em&gt; necessary, so
the documentation may be a bit out of date.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2013/01/aws-billing-alerts"&gt;http://alestic.com/2013/01/aws-billing-alerts&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/VPjHyXD7oyA" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2013/01/aws-billing-alerts</feedburner:origLink></entry>

<entry>
    <title>Cost of Transitioning S3 Objects to Glacier</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/fqXEyGm9qnc/s3-glacier-costs" />
    <id>tag:alestic.com,2012://1.147</id>

    <published>2012-12-17T14:00:00Z</published>
    <updated>2013-01-15T19:11:34Z</updated>

    <summary>how I was surprised by a large AWS charge and how to calculate the break-even point Glacier Archival of S3 Objects Amazon recently introduced a fantastic new feature where S3 objects can be automatically migrated over to Glacier storage based...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="S3" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="aws" label="AWS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="billing" label="billing" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="costs" label="costs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="glacier" label="Glacier" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="s3" label="S3" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="savings" label="savings" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;&lt;em&gt;how I was surprised by a large AWS charge and how to calculate the
break-even point&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;Glacier Archival of S3 Objects&lt;/h2&gt;

&lt;p&gt;Amazon recently introduced a fantastic new feature where &lt;a href="http://aws.typepad.com/aws/2012/11/archive-s3-to-glacier.html"&gt;S3 objects
can be automatically migrated over to Glacier storage&lt;/a&gt; based on
the S3 bucket, the key prefix, and the number of days after object
creation.&lt;/p&gt;

&lt;p&gt;This makes it trivially easy to drop files in S3, have fast access to
them for a while, then have them automatically saved to long-term
storage where they can&amp;#8217;t be accessed as quickly, but where the
storage charges are around a tenth of the price.&lt;/p&gt;

&lt;p&gt;&amp;#8230;or so I thought.&lt;/p&gt;

&lt;h2&gt;S3 Lifecycle Rule&lt;/h2&gt;

&lt;p&gt;My first use of this feature was on some buckets where I store about
350 GB of data that fits the Glacier use pattern perfectly: I want to
save it practically forever, but expect to use it rarely.&lt;/p&gt;

&lt;p&gt;It was straight forward to use the &lt;a href="https://console.aws.amazon.com/s3/"&gt;S3 Console&lt;/a&gt; to add a
lifecycle rule to the S3 buckets so that all objects are archived to
Glacier after 60 days:&lt;/p&gt;

&lt;div style="text-align:right"&gt;
  &lt;img width="548" height="319"
       src="/img/blog/2012-12-15-s3-lifecycle-glacier-archive.png" 
       alt="S3 Lifecycle Rule" /&gt;
&lt;/div&gt;

&lt;p&gt;&lt;em&gt;(Long time readers of this blog may be surprised I didn&amp;#8217;t list the
command lines to accomplish this task, but Amazon has not yet released
useful S3 tools that include the required functionality.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Since all of the objects in the buckets were more than 60 days old, I
expected them to be transitioned to Glacier within a day, and true to
Amazon&amp;#8217;s documentation, this occurred on schedule.&lt;/p&gt;

&lt;h2&gt;Surprise Charge&lt;/h2&gt;

&lt;p&gt;What I did not expect was an email alert from my &lt;a href="http://alestic.com/2013/01/aws-billing-alerts"&gt;AWS billing alarm
monitor&lt;/a&gt; on this account letting me know that I had just passed $200
for the month, followed a few hours later by an alert for $300,
followed by an alert for a $400 trigger.&lt;/p&gt;

&lt;p&gt;This is one of my personal accounts, so a rate of several hundred
dollars a day is not sustainable.  Fortunately, a quick investigation
showed that this increase was due to one time charges, so I wasn&amp;#8217;t
about to run up a $10k monthly bill.&lt;/p&gt;

&lt;p&gt;The line item on the &lt;a href="https://portal.aws.amazon.com/gp/aws/developer/account"&gt;AWS Activity report&lt;/a&gt; showed the source
of the new charge:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;$0.05 per 1,000 Glacier Requests x 5,306,220 Requests = $265.31&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It had not occurred to me that there would be much of a charge for
transitioning the objects from S3 to Glacier.  I should have read the
&lt;a href="http://aws.amazon.com/s3/pricing/"&gt;S3 Pricing page&lt;/a&gt;, where Amazon states:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Glacier Archive and Restore Requests: $0.05 per 1,000 requests&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is five times as expensive as the initial process of putting
objects into S3, which is $0.01 per 1,000 PUT requests.&lt;/p&gt;

&lt;p&gt;There is one &amp;#8220;archive request&amp;#8221; for each S3 object that is transitioned
from S3 to Glacier, and I had over five million objects in these
buckets, something I didn&amp;#8217;t worry about previously because my monthly
S3 charges were based on the total GB, not the number of objects.5306220&lt;/p&gt;

&lt;h2&gt;Overhead per Glacier Object&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;josh.monet has pointed out in the comments that Amazon has documented some &lt;a href="https://aws.amazon.com/s3/faqs/#How_is_my_storage_charge_calculated_for_Amazon_S3_objects_archived_to_Amazon_Glacier"&gt;Glacier storage overhead&lt;/a&gt;:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For each S3 object migrated to Glacier, Amazon adds &amp;#8220;an additional 32 KB of Glacier data plus an additional 8 KB of S3 standard storage data&amp;#8221;.&lt;/p&gt;

&lt;p&gt;Storage for this overhead is charged at standard Glacier and S3 prices.  This makes Glacier
completely unsuitable for small objects.&lt;/p&gt;

&lt;h2&gt;Break-even Point&lt;/h2&gt;

&lt;p&gt;After stopping to think about it, I realized that I was still saving
money on the long term by moving objects in these S3 buckets to
Glacier storage.  This one-time up front cost was going to be
compensated for slowly by my monthly savings, because Glacier is
cheap, even compared to the reasonably cheap S3 storage costs, at least for
larger files.&lt;/p&gt;

&lt;p&gt;Here are the results of my calculations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Monthly cost of storing in S3: 350 GB x $0.095/GB = $33.25&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Monthly cost of storing in Glacier: $8.97&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;350 GB x $0.01/GB = $3.50&lt;/li&gt;
&lt;li&gt;Glacier overhead: 5.3 million * 32 KB * $0.01/GB = $1.62&lt;/li&gt;
&lt;li&gt;S3 overhead: 5.3 million * 8 KB * $0.95/GB = $3.85&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One time cost to transition 5.3 million objects from S3 to Glacier: $265&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Months until I start saving money by moving to Glacier: 11&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Savings per year after first 11 months: $291 (73%)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For this data&amp;#8217;s purpose, everything eventually works out to an advantage,
so thanks, Amazon!  I will, however, think twice before doing this
with other types of buckets, just to make sure that the data is large
enough and is going to be sitting around long enough in Glacier to be 
worth the transition costs.&lt;/p&gt;

&lt;p&gt;As it turns out, the primary factor in how long it takes to break even
is the average size of the S3 objects.  If the average size of my data
files were larger, then I would start saving money sooner.&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s the formula&amp;#8230;  The number of months to break even and start
saving money when transferring S3 objects to Glacier is:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;break-even months = 631,613 / (average S3 object size in bytes - 13,011)&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;(units apologies to math geeks)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In my case, the average size of the S3 objects was 70,824 bytes (about
70 KB).  Applying the above formula:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;631,613 / (70,824 - 13,011) = 10.9&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or about 11 months until the savings in Glacier over S3 covers the cost
of moving my objects from S3 to Glacier.&lt;/p&gt;

&lt;p&gt;&lt;strike&gt;&lt;em&gt;If you are storing 1 KB data records in S3, it would take over 50 years
to justify transitioning them to Glacier.&lt;/em&gt;&lt;/strike&gt;&lt;/p&gt;

&lt;p&gt;Looking closely at the above formula, you can see that any object 13 KB or smaller is going to cost &lt;em&gt;more&lt;/em&gt; to transition to Glacier rather than leaving it in S3.  Files approaching that size are going to save too little money to justify the transfer costs.&lt;/p&gt;

&lt;p&gt;The above formula assumes an S3 storage cost of $0.095 per GB per
month in us-east-1.  If you are storing more than a TB, then you&amp;#8217;re
into the $0.08 tier or lower, so your break-even point will take
longer and you&amp;#8217;ll want to do more calculations to find your savings.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[Update 2012-12-19: Included additional S3 and Glacier storage overhead per item.  Thanks to josh.monet for pointing us to this information buried in the S3 FAQ.]&lt;/em&gt;&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/12/s3-glacier-costs"&gt;http://alestic.com/2012/12/s3-glacier-costs&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/fqXEyGm9qnc" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/12/s3-glacier-costs</feedburner:origLink></entry>

<entry>
    <title>Running Ubuntu on Amazon EC2 in Sydney, Australia</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/PO9wSLMTyBA/ec2-sydney-australia" />
    <id>tag:alestic.com,2012://1.146</id>

    <published>2012-11-13T02:30:00Z</published>
    <updated>2012-11-14T01:42:46Z</updated>

    <summary>Amazon has announced a new AWS region in Sydney, Australia with the name ap-southeast-2. The official Ubuntu AMI lookup pages (1, 2) don’t seem to be showing the new location yet, but the official Ubuntu AMI query API does seem...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="amis" label="AMIs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="apsoutheast2" label="ap-southeast-2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="australia" label="Australia" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="aws" label="AWS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="regions" label="regions" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sydney" label="Sydney" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;Amazon has announced a &lt;a href="http://aws.typepad.com/aws/2012/11/asia-pacific-sydney-region-open.html"&gt;new AWS region in Sydney, Australia&lt;/a&gt; with the name &lt;code&gt;ap-southeast-2&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The official Ubuntu AMI lookup pages (&lt;a href="http://cloud.ubuntu.com/ami/"&gt;1&lt;/a&gt;, &lt;a href="http://cloud-images.ubuntu.com/precise/current/"&gt;2&lt;/a&gt;) don&amp;#8217;t seem to be showing the new location yet, but the official Ubuntu AMI query API does seem to be working, so the new ap-southeast-2 Ubuntu AMIs are available for lookup on &lt;a href="http://alestic.com"&gt;Alestic.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[Update 2012-11-13: Canonical has fixed the primary &lt;a href="http://cloud.ubuntu.com/ami/"&gt;Ubuntu AMI lookup page&lt;/a&gt; and I understand it should remain more up to date going forward, but the other page is still missing ap-southeast-2]&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;Point and Click&lt;/h2&gt;

&lt;p&gt;At the top right of most pages on &lt;a href="http://alestic.com"&gt;Alestic.com&lt;/a&gt; is an &amp;#8220;Ubuntu AMIs&amp;#8221; section.  Simply select the EC2 region from the pulldown (say &amp;#8220;ap-southeast-2&amp;#8221; for Sydney, Australia) and you will see a list of the official 64-bit Ubuntu AMI ids for the various active Ubuntu releases.&lt;/p&gt;

&lt;p&gt;Both EBS boot and instance-store AMI ids are listed, but &lt;a href="http://alestic.com/2012/01/ec2-ebs-boot-recommended"&gt;I recommend you start with EBS boot AMIs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To launch a listed Ubuntu AMI, simply click on the orange arrow to the right of the AMI id and you will be taken to the EC2 section of the AWS console with the AMI id selected:&lt;/p&gt;

&lt;p&gt;&lt;img src="/img/blog/2012-11-12-amis-sydney-australia.png" alt="Ubuntu AMI ids on Alestic.com" title="" /&gt;&lt;/p&gt;

&lt;p&gt;The AWS console walks you through setting up required ssh keys and security groups and even has a point and click way to ssh to your instance, provided you have Java in your browser (I disable that).&lt;/p&gt;

&lt;h2&gt;Command Line&lt;/h2&gt;

&lt;p&gt;You can also launch Ubuntu AMIs with the &lt;a href="http://alestic.com/2012/05/aws-command-line-packages"&gt;EC2 command line tools&lt;/a&gt;.  First, make sure you &lt;a href="http://alestic.com/2010/10/ec2-ssh-keys"&gt;upload your ssh key&lt;/a&gt; to the new Sydney, Australia EC2 region using something like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-import-keypair --region ap-southeast-2 --public-key-file $HOME/.ssh/id_rsa.pub $USER
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you haven&amp;#8217;t already, open the ssh port on your default security group:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-authorize --region ap-southeast-2 default -p 22
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then, to launch Ubuntu 12.04 LTS Precise EBS boot, you would use a command like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-run-instances --region ap-southeast-2 --key $USER --instance-type t1.micro ami-fb8611c1
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;where you should always look up and use the most recent AMI id.  Make a note of the instance id.&lt;/p&gt;

&lt;p&gt;Wait a few seconds for the instance to be assigned an IP address and to start booting, then find out what the IP address was with:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-describe-instances --region ap-southeast-2 &amp;lt;INSTANCEID&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you ran the instance with your uploaded personal ssh key, you can then access the Ubuntu server using&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ssh ubuntu@&amp;lt;IPADDRESS&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;where &lt;IPADDRESS&gt; is the public IP address of the instance (does not start with &amp;#8220;10.&amp;#8221;).&lt;/p&gt;

&lt;p&gt;Always remember to terminate your temporary EC2 instances when you are done with them so you don&amp;#8217;t keep paying charges:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-terminate-instances --region ap-southeast-2 &amp;lt;INSTANCEID&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Note: The official Ubuntu AMI ids listed on Alestic.com are created, published, and supported by Canonical, an official sponsor of Ubuntu.  (Alestic.com/Eric Hammond used to publish community Ubuntu AMIs for EC2 starting in 2007, but that fun job was transferred to Canonical back in 2009.)&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/11/ec2-sydney-australia"&gt;http://alestic.com/2012/11/ec2-sydney-australia&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/PO9wSLMTyBA" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/11/ec2-sydney-australia</feedburner:origLink></entry>

<entry>
    <title>Save Money by Giving Away Unused Heavy Utilization Reserved Instances</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/ezb2wpRzu8I/ec2-reserved-instance-savings" />
    <id>tag:alestic.com,2012://1.144</id>

    <published>2012-09-14T19:30:00Z</published>
    <updated>2012-09-14T21:02:28Z</updated>

    <summary>You may be able to save on future EC2 expenses by selling an unused Reserved Instance for less than its true value or even $0.01, provided it is in the “Heavy Utilization” class. In the description of the Heavy Utilization...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="costs" label="costs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="reservedinstancemarketplace" label="reserved instance marketplace" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="reservedinstances" label="reserved instances" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="savings" label="savings" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;You may be able to save on future EC2 expenses by selling an unused Reserved Instance for less than its true value or even $0.01, provided it is in the &amp;#8220;Heavy Utilization&amp;#8221; class.&lt;/p&gt;

&lt;p&gt;In the description of the &lt;a href="http://aws.amazon.com/ec2/reserved-instances/#2"&gt;Heavy Utilization Reserved Instance&lt;/a&gt;, is this statement:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;you pay [&amp;#8230;] a significantly lower hourly usage fee, and &lt;em&gt;you&amp;#8217;re charged that lower hourly rate for every hour in the Reserved Instance term you purchase&lt;/em&gt; [emphasis added]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What may not be clear to the casual reader is the fact that when you purchase a Heavy Utilization Reserved Instance, you commit not only to paying the one-time up front cost, but you are also committing to paying the hourly charge for every hour of every month, &lt;em&gt;even if you are not running a matching instance!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Light Utilization and Medium Utilization descriptions state:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Light [and Medium] Utilization RIs allow you to turn off your instance at any point and not pay the hourly fee.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This statement is conspicuously missing from the Heavy Utilization description.&lt;/p&gt;

&lt;p&gt;If you buy a 12 month Heavy Utilization Reserved Instance and you only run the matching instance for 5 months and then terminate it, you still pay hourly instance charges each of the next 7 months as if you were still running the instance.&lt;/p&gt;

&lt;h2&gt;How to Save&lt;/h2&gt;

&lt;p&gt;Amazon just opened the &lt;a href="http://aws.amazon.com/ec2/reserved-instances/marketplace/"&gt;Reserved Instance Marketplace&lt;/a&gt;, which lets you sell the remaining months on a Reserved Instance that you no longer need.  After you list a Reserved Instance, it will be shown to EC2 customers when they look to purchase a Reserved Instance, right along with Amazon&amp;#8217;s normal offerings.&lt;/p&gt;

&lt;p&gt;When you list a Reserved Instance for sale, Amazon suggests a price that matches what the Reserved Instance would be worth to somebody purchasing the remaining months.&lt;/p&gt;

&lt;p align="center"&gt;
&lt;img src="/img/blog/2012-09-14-ec2-reserved-instance-marketplace.png" alt="AWS Reserved Instance Marketplace purchase listing" /&gt;
&lt;/p&gt;

&lt;p&gt;Though you would surely prefer to get that value (minus Amazon&amp;#8217;s 12% commission) for the Reserved Instance, you might consider listing it for substantially less, especially while the Marketplace has fewer buyers and listings take longer to sell.&lt;/p&gt;

&lt;p&gt;For every month that your Heavy Utilization Reserved Instance does not sell on the Reserved Instance Marketplace, you end up paying Amazon the hourly instance charges for the month, even if you are not running a matching instance.&lt;/p&gt;

&lt;p&gt;If you give away the Heavy Utilization Reserved Instance by listing it for $0.01 it should sell fairly quickly in a rational marketplace, and you will not have to pay the hourly instance charges for the remaining months.&lt;/p&gt;

&lt;p&gt;Thus, giving away a Heavy Utilization Reserved Instance could save you a bundle if you no longer need it.&lt;/p&gt;

&lt;p&gt;If there is a non-zero chance you may want to run a matching instance before the end of the term, then the Reserved Instance has some positive value to you and you might consider holding on to it or listing it for a higher price, even though you need to pay when the instance is not running.&lt;/p&gt;

&lt;p&gt;Figuring out the optimal listing price between $0.01 and a price near Amazon&amp;#8217;s suggested listing price is left as an exercise for the reader.&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/09/ec2-reserved-instance-savings"&gt;http://alestic.com/2012/09/ec2-reserved-instance-savings&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/ezb2wpRzu8I" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/09/ec2-reserved-instance-savings</feedburner:origLink></entry>

<entry>
    <title>Installing AWS Command Line Tools from Amazon Downloads</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/hRZKetUhQu0/aws-command-line-tools" />
    <id>tag:alestic.com,2012://1.143</id>

    <published>2012-09-04T14:00:00Z</published>
    <updated>2012-12-22T01:29:15Z</updated>

    <summary>When you need an AWS command line toolset not provided by Ubuntu packages, you can download the tools directly from Amazon and install them locally. In a previous article I provided instructions on how to install AWS command line tools...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="autoscaling" label="AutoScaling" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="aws" label="AWS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cli" label="cli" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cloudfront" label="CloudFront" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cloudsearch" label="CloudSearch" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cloudwatch" label="CloudWatch" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="commandlinetools" label="command line tools" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2amitools" label="ec2-ami-tools" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2apitools" label="ec2-api-tools" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="elasticache" label="ElastiCache" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="elb" label="ELB" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="emr" label="EMR" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iam" label="IAM" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rds" label="RDS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ubuntu" label="Ubuntu" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;When you need an AWS command line toolset not provided by Ubuntu
packages, you can download the tools directly from Amazon and install
them locally.&lt;/p&gt;

&lt;p&gt;In a previous article I provided instructions on how to &lt;a href="http://alestic.com/2012/05/aws-command-line-packages"&gt;install AWS
command line tools using Ubuntu packages&lt;/a&gt;.  That method is
slightly easier to set up and easier to upgrade when Ubuntu releases
updates.  However, the Ubuntu packages aren&amp;#8217;t always up to date with
the latest from Amazon and there are not yet Ubuntu packages published
for every AWS command line tools you might want to use.&lt;/p&gt;

&lt;p&gt;Unfortunately, Amazon does not have one single place where you can
download all the command line tools for the various services, nor are
all of the tools installed in the same way, nor do they all use the
same format for accessing the AWS credentials.&lt;/p&gt;

&lt;p&gt;The following steps show how I install and configure the AWS command
line tools provided by Amazon when I don&amp;#8217;t use the packages provided
by Ubuntu.&lt;/p&gt;

&lt;h2&gt;Prerequisites&lt;/h2&gt;

&lt;p&gt;Install required software packages:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install -y openjdk-6-jre ruby1.8-full rubygems \
    libxml2-utils libxml2-dev libxslt-dev \
    unzip cpanminus build-essential
sudo gem install uuidtools json httparty nokogiri
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Create a directory where all AWS tools will be installed:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo mkdir -p /usr/local/aws
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now we&amp;#8217;re ready to start downloading and installing all of the
individual software bundles that Amazon has released and made
available in scattered places on their web site and various S3
buckets.&lt;/p&gt;

&lt;h2&gt;Download and Install AWS Command Line Tools&lt;/h2&gt;

&lt;p&gt;These steps should be done from an empty temporary directory so you
can afterwards clean up all of the downloaded and unpacked files.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: Some of these download URLs always get the latest version and
 some tools have different URLs every time a new version is released.
 Click through on the tool link to find the latest [Download] URL.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/351"&gt;EC2 API command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip
unzip -qq ec2-api-tools.zip
sudo rsync -a --no-o --no-g ec2-api-tools-*/ /usr/local/aws/ec2/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/368"&gt;EC2 AMI command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip
unzip -qq ec2-ami-tools.zip
sudo rsync -a --no-o --no-g ec2-ami-tools-*/ /usr/local/aws/ec2/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/AWS-Identity-and-Access-Management/4143"&gt;IAM (Identity and Access Management) commmand line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://awsiammedia.s3.amazonaws.com/public/tools/cli/latest/IAMCli.zip
unzip -qq IAMCli.zip
sudo rsync -a --no-o --no-g IAMCli-*/ /usr/local/aws/iam/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/2928"&gt;RDS (Relational Database Service) command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://s3.amazonaws.com/rds-downloads/RDSCli.zip
unzip -qq RDSCli.zip
sudo rsync -a --no-o --no-g RDSCli-*/ /usr/local/aws/rds/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/2536"&gt;ELB (Elastic Load Balancer) command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://ec2-downloads.s3.amazonaws.com/ElasticLoadBalancing.zip
unzip -qq ElasticLoadBalancing.zip
sudo rsync -a --no-o --no-g ElasticLoadBalancing-*/ /usr/local/aws/elb/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/AWS-CloudFormation/2555753788650372"&gt;AWS CloudFormation command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet https://s3.amazonaws.com/cloudformation-cli/AWSCloudFormation-cli.zip
unzip -qq AWSCloudFormation-cli.zip
sudo rsync -a --no-o --no-g AWSCloudFormation-*/ /usr/local/aws/cfn/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/2535"&gt;Auto Scaling command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://ec2-downloads.s3.amazonaws.com/AutoScaling-2011-01-01.zip
unzip -qq AutoScaling-*.zip
sudo rsync -a --no-o --no-g AutoScaling-*/ /usr/local/aws/as/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/importexport/tools/"&gt;AWS Import/Export command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://awsimportexport.s3.amazonaws.com/importexport-webservice-tool.zip
sudo mkdir /usr/local/aws/importexport
sudo unzip -qq importexport-webservice-tool.zip -d /usr/local/aws/importexport
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/9054800585729911"&gt;CloudSearch command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://s3.amazonaws.com/amazon-cloudsearch-data/cloud-search-tools-1.0.0.1-2012.03.05.tar.gz
tar xzf cloud-search-tools*.tar.gz
sudo rsync -a --no-o --no-g cloud-search-tools-*/ /usr/local/aws/cloudsearch/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/2534"&gt;CloudWatch command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://ec2-downloads.s3.amazonaws.com/CloudWatch-2010-08-01.zip
unzip -qq CloudWatch-*.zip
sudo rsync -a --no-o --no-g CloudWatch-*/ /usr/local/aws/cloudwatch/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/Amazon-ElastiCache/2310261897259567"&gt;ElastiCache command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet https://s3.amazonaws.com/elasticache-downloads/AmazonElastiCacheCli-2012-03-09-1.6.001.zip
unzip -qq AmazonElastiCacheCli-*.zip
sudo rsync -a --no-o --no-g AmazonElastiCacheCli-*/ /usr/local/aws/elasticache/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/code/6752709412171743"&gt;Elastic Beanstalk command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet https://s3.amazonaws.com/elasticbeanstalk/cli/AWS-ElasticBeanstalk-CLI-2.1.zip
unzip -qq AWS-ElasticBeanstalk-CLI-*.zip
sudo rsync -a --no-o --no-g AWS-ElasticBeanstalk-CLI-*/ /usr/local/aws/elasticbeanstalk/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/Elastic-MapReduce/2264"&gt;Elastic MapReduce command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://elasticmapreduce.s3.amazonaws.com/elastic-mapreduce-ruby.zip
unzip -qq -d elastic-mapreduce-ruby elastic-mapreduce-ruby.zip
sudo rsync -a --no-o --no-g elastic-mapreduce-ruby/ /usr/local/aws/elasticmapreduce/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/3688"&gt;Simple Notification Serivice (SNS) command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://sns-public-resources.s3.amazonaws.com/SimpleNotificationServiceCli-2010-03-31.zip
unzip -qq SimpleNotificationServiceCli-*.zip
sudo rsync -a --no-o --no-g SimpleNotificationServiceCli-*/ /usr/local/aws/sns/
sudo chmod 755 /usr/local/aws/sns/bin/*
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/code/Amazon-Route-53/"&gt;Route 53 (DNS) command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo mkdir -p /usr/local/aws/route53/bin
for i in dnscurl.pl route53tobind.pl bindtoroute53.pl route53zone.pl; do
  sudo wget --quiet --directory-prefix=/usr/local/aws/route53/bin \
     http://awsmedia.s3.amazonaws.com/catalog/attachments/$i
  sudo chmod +x /usr/local/aws/route53/bin/$i
done
cpanm --sudo --notest --quiet Net::DNS::ZoneFile NetAddr::IP \
  Net::DNS Net::IP Digest::HMAC Digest::SHA1 Digest::MD5
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/code/CloudFront"&gt;CloudFront command line tool&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo wget --quiet --directory-prefix=/usr/local/aws/cloudfront/bin \
  http://d1nqj4pxyrfw2.cloudfront.net/cfcurl.pl
sudo chmod +x /usr/local/aws/cloudfront/bin/cfcurl.pl
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/code/128"&gt;S3 command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet http://s3.amazonaws.com/doc/s3-example-code/s3-curl.zip
unzip -qq s3-curl.zip
sudo mkdir -p /usr/local/aws/s3/bin/
sudo rsync -a --no-o --no-g s3-curl/ /usr/local/aws/s3/bin/
sudo chmod 755 /usr/local/aws/s3/bin/s3curl.pl
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://aws.amazon.com/developertools/AWS-Data-Pipeline/2762849641295030"&gt;AWS Data Pipeline command line tools&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --quiet https://s3.amazonaws.com/datapipeline-us-east-1/software/latest/DataPipelineCLI/datapipeline-cli.zip
unzip -qq datapipeline-cli.zip
sudo rsync -a --no-o --no-g datapipeline-cli/ /usr/local/aws/datapipeline/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now that we have all of the software installed under /usr/local/aws we
need to set up the AWS credentials and point the tools to where they
can find everything.&lt;/p&gt;

&lt;h2&gt;Set up AWS Credentials and Envronment&lt;/h2&gt;

&lt;p&gt;Create a place to store the secret AWS credentials:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mkdir -m 0700 $HOME/.aws-default/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Copy your &lt;a href="https://aws-portal.amazon.com/gp/aws/securityCredentials"&gt;AWS X.509 certificate and private key&lt;/a&gt; to
this subdirectory.  These files will have names that look something
like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$HOME/.aws-default/cert-7KX4CVWWQ52YM2SUCIGGHTPDNDZQMVEF.pem
$HOME/.aws-default/pk-7KX4CVWWQ52YM2SUCIGGHTPDNDZQMVEF.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Create the file &lt;code&gt;$HOME/.aws-default/aws-credential-file.txt&lt;/code&gt; with your &lt;a href="https://aws-portal.amazon.com/gp/aws/securityCredentials"&gt;AWS
access key id and secret access key&lt;/a&gt; in the following
format:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;AWSAccessKeyId=&amp;lt;insert your AWS access id here&amp;gt;
AWSSecretKey=&amp;lt;insert your AWS secret access key here&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Create the file &lt;code&gt;$HOME/.aws-default/aws-credentials.json&lt;/code&gt; in the following
format:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
"access-id": "&amp;lt;insert your AWS access id here&amp;gt;",
"private-key": "&amp;lt;insert your AWS secret access key here&amp;gt;",
"key-pair": "&amp;lt;insert the name of your Amazon ec2 key-pair here&amp;gt;",
"key-pair-file": "&amp;lt;insert the path to the .pem file for your Amazon ec2 key pair here&amp;gt;",
"region": "&amp;lt;The region where you wish to launch your job flows. Should be one of us-east-1, us-west-1, us-west-2, eu-west-1, ap-southeast-1, or ap-northeast-1, sa-east-1&amp;gt;", 
  "use-ssl": "true",
  "log-uri": "s3://yourbucket/datapipelinelogs"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Create the file &lt;code&gt;$HOME/.aws-secrets&lt;/code&gt; in the following format:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;%awsSecretAccessKeys = (
  'default' =&amp;gt; {
    id =&amp;gt; '&amp;lt;insert your AWS access id here&amp;gt;',
    key =&amp;gt; '&amp;lt;insert your AWS secret access key here&amp;gt;',
  },
);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Create a symbolic link for &lt;code&gt;s3curl&lt;/code&gt; to find its hardcoded config file
and secure the file permissions&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ln -s $HOME/.aws-secrets $HOME/.s3curl
chmod 600 $HOME/.aws-default/* $HOME/.aws-secrets
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Add the following lines to your &lt;code&gt;$HOME/.bashrc&lt;/code&gt; file so that the AWS
command line tools know where to find themselves and the credentials.
We put the new directories in the front of the &lt;code&gt;$PATH&lt;/code&gt; so that we run
these instead of any similar tools installed by Ubuntu packages.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;export JAVA_HOME=/usr
export EC2_HOME=/usr/local/aws/ec2
export AWS_IAM_HOME=/usr/local/aws/iam
export AWS_RDS_HOME=/usr/local/aws/rds
export AWS_ELB_HOME=/usr/local/aws/elb
export AWS_CLOUDFORMATION_HOME=/usr/local/aws/cfn
export AWS_AUTO_SCALING_HOME=/usr/local/aws/as
export CS_HOME=/usr/local/aws/cloudsearch
export AWS_CLOUDWATCH_HOME=/usr/local/aws/cloudwatch
export AWS_ELASTICACHE_HOME=/usr/local/aws/elasticache
export AWS_SNS_HOME=/usr/local/aws/sns
export AWS_ROUTE53_HOME=/usr/local/aws/route53
export AWS_CLOUDFRONT_HOME=/usr/local/aws/cloudfront

for i in $EC2_HOME $AWS_IAM_HOME $AWS_RDS_HOME $AWS_ELB_HOME \
  $AWS_CLOUDFORMATION_HOME $AWS_AUTO_SCALING_HOME $CS_HOME \
  $AWS_CLOUDWATCH_HOME $AWS_ELASTICACHE_HOME $AWS_SNS_HOME \
  $AWS_ROUTE53_HOME $AWS_CLOUDFRONT_HOME /usr/local/aws/s3
do
  PATH=$i/bin:$PATH
done
PATH=/usr/local/aws/elasticbeanstalk/eb/linux/python2.7:$PATH
PATH=/usr/local/aws/elasticmapreduce:$PATH
PATH=/usr/local/aws/datapipeline:$PATH

export EC2_PRIVATE_KEY=$(echo $HOME/.aws-default/pk-*.pem)
export EC2_CERT=$(echo $HOME/.aws-default/cert-*.pem)
export AWS_CREDENTIAL_FILE=$HOME/.aws-default/aws-credential-file.txt
export ELASTIC_MAPREDUCE_CREDENTIALS=$HOME/.aws-default/aws-credentials.json
export DATA_PIPELINE_CREDENTIALS=$HOME/.aws-default/aws-credentials.json
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Set everything up in your current shell:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;source $HOME/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Test&lt;/h2&gt;

&lt;p&gt;Make sure that the command line tools are installed and have
credentials set up correctly.  These commands should not return
errors:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-describe-regions
ec2-ami-tools-version
iam-accountgetsummary
rds-describe-db-engine-versions
elb-describe-lb-policies
cfn-list-stacks
cs-describe-domain
mon-version
elasticache-describe-cache-clusters
eb --version
elastic-mapreduce --list --all
sns-list-topics
dnscurl.pl --keyname default https://route53.amazonaws.com/2010-10-01/hostedzone | xmllint --format -
cfcurl.pl --keyname default https://cloudfront.amazonaws.com/2008-06-30/distribution | xmllint --format -
s3curl.pl --id default http://s3.amazonaws.com/ | xmllint --format -
datapipeline  --list-pipelines
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Are you aware of any other command line tools provided by Amazon?
Let other readers know in the comments on this article.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[Update 2012-09-06: New URL for ElastiCache tools. Thanks iknewitalready]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[Upate 2012-12-21: Added AWS Data Pipeline command line tools.  May break Elastic MapReduce due to Ruby version conflict.]&lt;/em&gt;&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/09/aws-command-line-tools"&gt;http://alestic.com/2012/09/aws-command-line-tools&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/hRZKetUhQu0" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/09/aws-command-line-tools</feedburner:origLink></entry>

<entry>
    <title>Convert Running EC2 Instance to EBS-Optimized Instance with Provisioned IOPS EBS Volumes</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/y09Zs2OvexI/ec2-provisioned-iops-ebs" />
    <id>tag:alestic.com,2012://1.142</id>

    <published>2012-08-02T07:48:14Z</published>
    <updated>2012-08-02T23:59:29Z</updated>

    <summary>Amazon just announced two related features for getting super-fast, consistent performance with EBS volumes: (1) Provisioned IOPS EBS volumes, and (2) EBS-Optimized Instances. Starting new instances and EBS volumes with these features is fine, but what if you already have...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ebs" label="EBS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ebsoptimizedinstances" label="EBS-Optimized instances" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="performance" label="performance" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="provisionediops" label="Provisioned IOPS" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;Amazon &lt;a href="http://aws.typepad.com/aws/2012/08/fast-forward-provisioned-iops-ebs.html"&gt;just announced&lt;/a&gt; two related features for getting
super-fast, consistent performance with EBS volumes: (1) Provisioned
IOPS EBS volumes, and (2) EBS-Optimized Instances.&lt;/p&gt;

&lt;p&gt;Starting new instances and EBS volumes with these features is fine, but what if you already have some running instances you&amp;#8217;d like to upgrade for faster and more consistent disk performance?&lt;/p&gt;

&lt;p&gt;Given the two AWS features, there are two separate powers that need to be
engaged to take full advantage:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Convert the EBS volume(s) from standard EBS volumes into new
Provisioned IOPS EBS volume(s).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Convert the standard EC2 instance into an EBS-Optimized instance.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This article demonstrates how to take an existing EBS boot instance
that is already running and convert it to use both of these two EBS
performance features.  Note that there will be some increased costs;
please study &lt;a href="http://aws.amazon.com/ec2/#EBS-Optimized"&gt;Amazon&amp;#8217;s published pricing&lt;/a&gt; before attempting.&lt;/p&gt;

&lt;h2&gt;Demo Setup&lt;/h2&gt;

&lt;p&gt;For this demo, we start a temporary EBS boot instance (Ubuntu 12.04
LTS).  Save the instance id and EBS volume id:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    zone=us-east-1d
    ec2-run-instances --availability-zone $zone --key $USER --instance-type m1.small ami-013f9768
    instance_id=...

    ec2-describe-instances $instance_id
    volume_id=...
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Steps&lt;/h2&gt;

&lt;p&gt;Here are the steps to take a running EBS boot instance and convert it
into an EBS-Optimized Instance with a Provisioned IOPS EBS volume.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Stop the EC2 instance (and wait for it to stop):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-stop-instances $instance_id
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Detach the original (non-Provisioned IOPS) EBS volume(s):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-detach-volume $volume_id
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Snapshot the original EBS volume(s) and save the snapshot ids:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-create-snapshot $volume_id
snapshot_id=...
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create Provisioned IOPS EBS volume from the snapshot(s) in the same
availability zone as the instance, specifying the new size in GB, and specifying the
IOPS level that you require:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-create-volume --availability-zone $zone --size 10 --type io1 --iops 100 --snapshot $snapshot_id
new_volume_id=...
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Attach new Provisioned IOPS EBS volume(s) to the instance:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-attach-volume --instance $instance_id --device /dev/sda1 $new_volume_id
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the instance type is not already one of the ones that &lt;a href="http://aws.amazon.com/ec2/instance-types/"&gt;supports
EBS-Optimized instances&lt;/a&gt;, then you&amp;#8217;ll need to change it to one that
is.  For this example, we&amp;#8217;ll use &lt;code&gt;m1.large&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-modify-instance-attribute --instance-type m1.large $instance_id
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Convert the EC2 instance to EBS-Optimized:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-modify-instance-attribute --ebs-optimized True $instance_id
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Start the EBS-Optimized EC2 instance with its new, attached Provisioned IOPS EBS
volume(s):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-start-instances $instance_id
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you had an Elastic IP address associated with the instance before
you stopped it, now&amp;#8217;s the time to re-associate it.&lt;/p&gt;

&lt;h2&gt;Cleanup&lt;/h2&gt;

&lt;p&gt;When you&amp;#8217;re comfortable with the new provisioned IOPS EBS volume,
delete the original EBS volume and its snapshot:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-delete-volume $volume_id
ec2-delete-snapshot $snapshot_id
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Terminate any test instance you started to experiment with in
this demo:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-terminate-instances $instance_id
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Since you manually created the new EBS volume that was attached to the test
instance, it will not be automatically deleted when the instance is terminated, so you must delete it manually:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-delete-volume $new_volume_id
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Notes&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In order for these commands to work with these features, you must be running the latest version of the &lt;a href="http://aws.amazon.com/developertools/351/"&gt;EC2 API command line tools&lt;/a&gt; (or at least v1.6.1.1).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The new Provisioned IOPS EBS volume must be at least 10 GB.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The size of the new Provisioned IOPS EBS volume in GB must be at least 1/10th the value of the IOPS you are requesting.  For example, 1000 IOPS requires an EBS volume of at least 100 GB.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you&amp;#8217;re running an official Ubuntu AMI, then your root file system
will automatically be extended to the new size of the EBS volume.
Other distros might need a little &lt;code&gt;resize2fs&lt;/code&gt; or &lt;code&gt;xfs_growfs&lt;/code&gt; to get the
benefit.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/08/ec2-provisioned-iops-ebs"&gt;http://alestic.com/2012/08/ec2-provisioned-iops-ebs&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/y09Zs2OvexI" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/08/ec2-provisioned-iops-ebs</feedburner:origLink></entry>

<entry>
    <title>Which EC2 Availability Zone is Affected by an Outage?</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/YHZ4-V46k10/ec2-outage-availability-zone" />
    <id>tag:alestic.com,2012://1.141</id>

    <published>2012-06-30T06:21:11Z</published>
    <updated>2012-06-30T20:25:39Z</updated>

    <summary>Did you know that Amazon includes status messages about the health of availability zones in the output of the ec2-describe-availability-zones command, the associated API call, and the AWS console? Right now, Amazon is restoring power to a “large number of...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="availabilityzones" label="availability zones" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="aws" label="AWS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2describeavailabilityzones" label="ec2-describe-availability-zones" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="outages" label="outages" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="zones" label="zones" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;Did you know that Amazon includes status messages about the health of availability zones in the output of the &lt;a href="http://docs.amazonwebservices.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-DescribeAvailabilityZones.html"&gt;&lt;code&gt;ec2-describe-availability-zones&lt;/code&gt;&lt;/a&gt; command, the associated API call, and the AWS console?&lt;/p&gt;

&lt;p&gt;Right now, Amazon is restoring power to a &amp;#8220;large number of instances&amp;#8221; in one availability zone in the &lt;code&gt;us-east-1&lt;/code&gt; region due to &amp;#8220;electrical storms in the area&amp;#8221;.&lt;/p&gt;

&lt;p&gt;Since the &lt;a href="http://alestic.com/2009/07/ec2-availability-zones"&gt;names used for specific availability zones differ between AWS accounts&lt;/a&gt;, Amazon can&amp;#8217;t just say that the affected zone is &lt;code&gt;us-east-1c&lt;/code&gt; as it might be &lt;code&gt;us-east-1e&lt;/code&gt; in another account.&lt;/p&gt;

&lt;p&gt;During this outage, you can find out what the name of the affected availability zone is in your AWS account by running this command (&lt;a href="http://alestic.com/2012/05/aws-command-line-packages"&gt;installation instructions&lt;/a&gt;):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-describe-availability-zones
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Here is the output for one of my accounts showing that the zone is named &lt;code&gt;us-east-1b&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;AVAILABILITYZONE    us-east-1a  available   us-east-1   
AVAILABILITYZONE    us-east-1b  impaired    us-east-1   EC2 and EBS APIs are once again operating normally. We are continuing to recover impacted instances and volumes.
AVAILABILITYZONE    us-east-1c  available   us-east-1   
AVAILABILITYZONE    us-east-1d  available   us-east-1   
AVAILABILITYZONE    us-east-1e  available   us-east-1
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and here is the output for another account, showing that the zone is named &lt;code&gt;us-east-1c&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;AVAILABILITYZONE    us-east-1a  available   us-east-1   
AVAILABILITYZONE    us-east-1b  available   us-east-1   
AVAILABILITYZONE    us-east-1c  impaired    us-east-1   EC2 and EBS APIs are once again operating normally. We are continuing to recover impacted instances and volumes.
AVAILABILITYZONE    us-east-1d  available   us-east-1   
AVAILABILITYZONE    us-east-1e  available   us-east-1
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you&amp;#8217;re not a command line person, you can also check on the &lt;a href="https://console.aws.amazon.com/ec2/home?region=us-east-1"&gt;AWS console&lt;/a&gt;, which for one of my accounts, shows this right now:&lt;/p&gt;

&lt;p align="center"&gt;
&lt;img src="/img/blog/2012-06-29-aws-console-outage.png" alt="AWS console snapshot" /&gt;
&lt;/p&gt;

&lt;p&gt;You can generally find more details on the progression of Amazon&amp;#8217;s investigation and repair on the &lt;a href="http://status.aws.amazon.com/"&gt;AWS Status&lt;/a&gt; page.  That page also has links for RSS feeds like this one: &lt;a href="http://status.aws.amazon.com/rss/ec2-us-east-1.rss"&gt;EC2 us-east-1 Service Status&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since the availability zone status information is available through the command line and API, has anybody written plugins for Nagios or similar monitoring software so that we can send alerts to our teams when Amazon marks availability zones as impaired?&lt;/p&gt;

&lt;p&gt;Update 2012-06-30: Jim Browne has taken the challenge and created a &lt;a href="https://github.com/jimbrowne/awstools/blob/master/availability-zones-check"&gt;Nagios plugin for ec2-describe-availability-zones&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Update 2012-06-30: It looks like the ec2-describe-availability messages are not updated nearly as frequently as the AWS status page.  An hour ago the AWS status page changed to say &amp;#8220;EC2 instances and EBS volumes are operating normally&amp;#8221;, but ec2-describe-availability-zones still says &amp;#8220;We are continuing to work to recover the remaining EC2 instances, EBS volumes and ELBs.&amp;#8221;&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/06/ec2-outage-availability-zone"&gt;http://alestic.com/2012/06/ec2-outage-availability-zone&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/YHZ4-V46k10" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/06/ec2-outage-availability-zone</feedburner:origLink></entry>

<entry>
    <title>Installing AWS Command Line Tools Using Ubuntu Packages</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/nQCMlZGsipM/aws-command-line-packages" />
    <id>tag:alestic.com,2012://1.140</id>

    <published>2012-05-29T14:00:00Z</published>
    <updated>2013-03-11T04:34:15Z</updated>

    <summary>Here are the steps for installing the AWS command line tools that are currently available as Ubuntu packages. These include: EC2 API tools EC2 AMI tools IAM - Identity and Access Management RDS - Relational Database Service CloudWatch Auto Scaling...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="autoscaling" label="AutoScaling" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="aws" label="AWS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cli" label="cli" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cloudfront" label="CloudFront" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cloudsearch" label="CloudSearch" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cloudwatch" label="CloudWatch" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="commandlinetools" label="command line tools" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2amitools" label="ec2-ami-tools" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2apitools" label="ec2-api-tools" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="elasticache" label="ElastiCache" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="elb" label="ELB" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="emr" label="EMR" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iam" label="IAM" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="packages" label="packages" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rds" label="RDS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ubuntu" label="Ubuntu" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;Here are the steps for installing the AWS command line tools that are
currently available as Ubuntu packages.  These include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EC2 API tools&lt;/li&gt;
&lt;li&gt;EC2 AMI tools&lt;/li&gt;
&lt;li&gt;IAM - Identity and Access Management&lt;/li&gt;
&lt;li&gt;RDS - Relational Database Service&lt;/li&gt;
&lt;li&gt;CloudWatch&lt;/li&gt;
&lt;li&gt;Auto Scaling&lt;/li&gt;
&lt;li&gt;ElastiCache&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Starting with Ubuntu 12.04 LTS Precise, these are also available:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CloudFormation&lt;/li&gt;
&lt;li&gt;ELB - Elastic Load Balancer&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Install Packages&lt;/h2&gt;

&lt;p&gt;Enable the multiverse repository.  This can be done through the Ubuntu
Update Manager or by editing /etc/apt/sources.list  Here are some
commands that will enable multiverse on a new installation:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# 12.04 LTS Precise, 11.10 Oneiric
sudo perl -pi.orig -e \
  'next if /-backports/; s/^# (deb .* multiverse)$/$1/' \
  /etc/apt/sources.list

# 10.04 LTS Lucid
sudo perl -pi.orig -e \
  's/^(deb .* universe)$/$1 multiverse/' \
  /etc/apt/sources.list
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Enable the awstools PPA and update the apt package index:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo apt-add-repository ppa:awstools-dev/awstools
sudo apt-get update
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Install available AWS command line tool packages:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo apt-get install ec2-api-tools ec2-ami-tools iamcli rdscli moncli ascli elasticache

# Also available on Ubuntu 12.04 LTS Precise
sudo apt-get install aws-cloudformation-cli elbcli
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Some of these tools support passing in credentials on the command
line, but for regular use, you will want to store the AWS credentials
in files.&lt;/p&gt;

&lt;h2&gt;Set up AWS Credentials&lt;/h2&gt;

&lt;p&gt;Create a place to store the AWS credentials:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mkdir -m 0700 $HOME/.aws/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Copy your &lt;a href="https://aws-portal.amazon.com/gp/aws/securityCredentials"&gt;AWS X.509 certificate and private key&lt;/a&gt; to
this subdirectory.  These files will have names that look something
like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$HOME/.aws/cert-7KX4CVWWQ52YM2SUCIGGHTPDNDZQMVEF.pem
$HOME/.aws/pk-7KX4CVWWQ52YM2SUCIGGHTPDNDZQMVEF.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Create the file &lt;code&gt;$HOME/.aws/aws-credential-file.txt&lt;/code&gt; with your &lt;a href="https://aws-portal.amazon.com/gp/aws/securityCredentials"&gt;AWS
access key id and secret access key&lt;/a&gt; in the following
format:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;AWSAccessKeyId=YOURACCESSKEYIDHERE
AWSSecretKey=YOURPRIVATEACCESSKEYHERE
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Add the following lines to your &lt;code&gt;$HOME/.bashrc&lt;/code&gt; file so that the AWS
command line tools know where to find the above files:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# AWS credentials
export EC2_PRIVATE_KEY=$(echo $HOME/.aws/pk-*.pem)
export EC2_CERT=$(echo $HOME/.aws/cert-*.pem)
export AWS_CREDENTIAL_FILE=$HOME/.aws/aws-credential-file.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Make sure these are set in your current shell(s):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;source $HOME/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Test&lt;/h2&gt;

&lt;p&gt;Make sure that the command line tools are installed and have
credentials set up correctly.  These commands should not return
errors:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-describe-regions 
ec2-ami-tools-version
iam-accountgetsummary
rds-describe-db-engine-versions
mon-version
as-version

# Ubuntu 12.04 LTS Precise and higher
cfn-list-stacks
elb-describe-lb-policies
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;AWS Command Line Tools&lt;/h2&gt;

&lt;p&gt;The table below shows some of the various AWS products, whether Amazon
publishes command line tools, and whether these are available in key
Ubuntu releases.  Some of the packages are available in the standard
apt repositories, some require adding multiverse, and
some are published in the &lt;a href="https://launchpad.net/~awstools-dev/+archive/awstools"&gt;awstools PPA&lt;/a&gt;.  The awstools PPA also
has newer versions of some of the packages released by Amazon after
the official Ubuntu release.&lt;/p&gt;

&lt;table class="ami-comparison"&gt;
  &lt;thead&gt;
   &lt;tr&gt;
     &lt;th&gt;AWS Service&lt;/th&gt;
     &lt;th&gt;Amazon Command Line Tools&lt;/th&gt;
     &lt;th&gt;Ubuntu 12.04 LTS Precise&lt;/th&gt;
     &lt;th&gt;Ubuntu 11.10 Oneiric&lt;/th&gt;
     &lt;th&gt;Ubuntu 10.04 LTS Lucid&lt;/th&gt;
   &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/ec2/"&gt;EC2 API Tools&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/351"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;multiverse&lt;/td&gt;
      &lt;td&gt;multiverse&lt;br/&gt;PPA&amp;nbsp;updates&lt;/td&gt;
      &lt;td&gt;multiverse&lt;br/&gt;PPA&amp;nbsp;updates&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/ec2/"&gt;EC2 AMI Tools&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/368"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;multiverse&lt;/td&gt;
      &lt;td&gt;multiverse&lt;br/&gt;PPA&amp;nbsp;updates&lt;/td&gt;
      &lt;td&gt;multiverse&lt;br/&gt;PPA&amp;nbsp;updates&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/iam/"&gt;IAM - Identity and Access Management&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/AWS-Identity-and-Access-Management/4143"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;main&lt;/td&gt;
      &lt;td&gt;main&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/rds/"&gt;RDS - Relational Database Service&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/2928"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;main&lt;/td&gt;
      &lt;td&gt;main&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/cloudwatch/"&gt;CloudWatch&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/2534"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/autoscaling/"&gt;Auto Scaling&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/2535"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/elasticache/"&gt;ElastiCache&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/Amazon-ElastiCache/2310261897259567"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/elasticloadbalancing/"&gt;ELB - Elastic Load Balancing&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/2536"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/cloudformation/"&gt;AWS CloudFormation&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/AWS-CloudFormation/2555753788650372"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;PPA&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/importexport/"&gt;AWS Import/Export&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/importexport/tools/"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/cloudfront/"&gt;CloudFront&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/code/CloudFront"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/cloudsearch/"&gt;CloudSearch&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/9054800585729911"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/elasticbeanstalk/"&gt;Elastic Beanstalk&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/code/6752709412171743"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/sns/"&gt;SNS - Simple Notification Service&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/3688"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/elasticmapreduce/"&gt;EMR - Elastic MapReduce&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/developertools/Elastic-MapReduce/2264"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/route53/"&gt;Route 53&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/code/Amazon-Route-53/"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/s3/"&gt;S3 - Simple Storage Service&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/code/128"&gt;AWS CLI&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/ses/"&gt;SES - Simple Email Service&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/directconnect/"&gt;Direct Connect&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/dynamodb/"&gt;DynamoDB&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/simpledb/"&gt;SimpleDB&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/sqs/"&gt;SQS - Simple Queue Service&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/storagegateway/"&gt;Storage Gateway&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/swf/"&gt;SWF (Simple Workflow Service)&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
      &lt;td&gt;&lt;a href="http://aws.amazon.com/vpc/"&gt;VPC (Virtual Private Cloud)&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
      &lt;td&gt;-&lt;/td&gt;
    &lt;/tr&gt;

&lt;/table&gt;

&lt;p&gt;As you can see, there are a number of command line tools that are not
(yet) packaged in Ubuntu.  These can be &lt;a href="http://alestic.com/2012/09/aws-command-line-tools"&gt;downloaded directly from
Amazon and installed manually&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are also a number of AWS services that do not have command line
tools available from Amazon, though some third parties have provided
helpful alternatives.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[Update 2012-09-03: Added links to command line tools for S3, SNS]&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;[Update 2013-03-10: Added CloudWatch, Auto Scaling, ElastiCache]&lt;/em&gt;&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/05/aws-command-line-packages"&gt;http://alestic.com/2012/05/aws-command-line-packages&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/nQCMlZGsipM" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/05/aws-command-line-packages</feedburner:origLink></entry>

<entry>
    <title>Ubuntu Developer Summit, May 2012 (Oakland)</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/lfZVg6feM9I/ubuntu-uds" />
    <id>tag:alestic.com,2012://1.139</id>

    <published>2012-04-30T13:00:00Z</published>
    <updated>2012-04-29T02:47:38Z</updated>

    <summary>I will be attending the Ubuntu Developer Summit (UDS) next week in Oakland, CA.  This event brings people from around the world together in one place every six months to discuss and plan for the next release of Ubuntu.  The...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="2012" label="2012" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="aws" label="AWS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="events" label="events" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ubuntu" label="Ubuntu" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="uds" label="UDS" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;I will be attending the &lt;a href="http://uds.ubuntu.com/"&gt;Ubuntu Developer Summit&lt;/a&gt; (UDS) next week in Oakland, CA.  This event brings people from around the world together in one place every six months to discuss and plan for the next release of Ubuntu.  The May 2012 UDS is for Ubuntu-Q which will eventually be named and become Ubuntu 12.10 when it is released in October (2012-10).&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve attended two UDS in person prior to this, one held at Google (Mountain View) for Ubuntu Jaunty (9.04) and one in Dallas for Ubuntu Lucid (10.04).  UDS wanders around the world to mix it up and get input from a wide variety of contributors.  I&amp;#8217;m not a fan of flying long distances, so I tend to wait until UDS comes to within a couple hours of my home in Los Angeles.&lt;/p&gt;

&lt;p&gt;My primary involvement at UDS is to contribute my perspectives to the plans for Ubuntu as it relates to running on Amazon EC2 and interacting with other features of AWS, though I also have interest in general Ubuntu server functionality.  I&amp;#8217;ve been running Ubuntu on servers since 2005, and Ubuntu servers on EC2 since 2007.&lt;/p&gt;

&lt;p&gt;I am grateful to Canonical for sponsoring my trip to and stay at UDS as they do for many community members.  I continue to be impressed by how Ubuntu is developed in such an open fashion with Canonical&amp;#8217;s support.&lt;/p&gt;

&lt;p&gt;All community members interested in learning about how Ubuntu is developed and/or interested in helping give input to the future of Ubuntu are welcome to participate in UDS. You can either attend in person as I will be, or you can participate online.  Be sure to &lt;a href="http://uds.ubuntu.com/"&gt;register (free) at the UDS site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Taking a full week off for UDS is a little much for me, so I&amp;#8217;ll be attending three full days (Wed-Fri).  Will I see you there or online?  What feedback and suggestions would you have for running Ubuntu on EC2?&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/04/ubuntu-uds"&gt;http://alestic.com/2012/04/ubuntu-uds&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/lfZVg6feM9I" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/04/ubuntu-uds</feedburner:origLink></entry>

<entry>
    <title>Uploading Known ssh Host Key in EC2 user-data Script</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/SsDZzsdpS7M/ec2-ssh-host-key" />
    <id>tag:alestic.com,2012://1.138</id>

    <published>2012-04-09T14:00:00Z</published>
    <updated>2012-04-09T18:06:14Z</updated>

    <summary>The ssh protocol uses two different keys to keep you secure: The user ssh key is the one we normally think of. This authenticates us to the remote host, proving that we are who we say we are and allowing...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="keys" label="keys" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="privacy" label="privacy" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="security" label="security" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ssh" label="ssh" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="userdata" label="user-data" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="userdatascripts" label="user-data scripts" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;The ssh protocol uses two different keys to keep you secure:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The &lt;strong&gt;user ssh key&lt;/strong&gt; is the one we normally think of.  This
authenticates us to the remote host, proving that we are who we say we
are and allowing us to log in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;strong&gt;ssh host key&lt;/strong&gt; gets less attention, but is also important.  This
authenticates the remote host to our local computer and proves that the ssh session is
encrypted so that nobody can be listening in.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every time you see a prompt like the following, ssh is checking the
host key and asking you to make sure that your session is going to
be encrypted securely.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;The authenticity of host 'ec2-...' can't be established.
ECDSA key fingerprint is ca:79:72:ea:23:94:5e:f5:f0:b8:c0:5a:17:8c:6f:a8.
Are you sure you want to continue connecting (yes/no)?
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you answer &amp;#8220;yes&amp;#8221; without verifying that the remote ssh host
key fingerprint is the same, then you are basically saying:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;I don&amp;#8217;t need this ssh session encrypted.  It&amp;#8217;s fine for any
man-in-the-middle to intercept the communication.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ouch! (But &lt;a href="http://alestic.com/2009/08/ec2-poll-fingerprint"&gt;a lot of people do this&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;Note: If you have a line like the following in your ssh config file,
then you are automatically answering &amp;#8220;yes&amp;#8221; to this prompt for every
ssh connection.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# DON'T DO THIS!
StrictHostKeyChecking false
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Care about security&lt;/h2&gt;

&lt;p&gt;Since you &lt;em&gt;do&lt;/em&gt; care about security and privacy, you want to verify
that you are talking to the right server using encryption and that no
man-in-the-middle can intercept your session.&lt;/p&gt;

&lt;p&gt;There are a couple approaches you can take to check the fingerprint
for a new Amazon EC2 instance.  The first is to wait for the console
output to be available from the instance, retrieve it, and verify that
the ssh host key fingerprint in the console output is the same as the
one which is being presented to you in the prompt.&lt;/p&gt;

&lt;p&gt;Scott Moser has written a blog post describing how to &lt;a href="http://ubuntu-smoser.blogspot.com/2010/07/verify-ssh-keys-on-ec2-instances.html"&gt;verify ssh keys
on EC2 instances&lt;/a&gt;.  It&amp;#8217;s worth reading so that you understand
the principles and the official way to do this.&lt;/p&gt;

&lt;p&gt;The rest of this article is going to present a different approach that
lets you in to your new instance quickly and securely.&lt;/p&gt;

&lt;h2&gt;Passing ssh host key to new EC2 instance&lt;/h2&gt;

&lt;p&gt;Instead of letting the new EC2 instance generate its own ssh host key
and waiting for it to communicate the fingerprint through the EC2
console output, we can generate the new ssh host key on our local
system and pass it to the new instance.&lt;/p&gt;

&lt;p&gt;Using this approach, we already know the public side of the ssh key so
we don&amp;#8217;t have to wait for it to become available through the console
(which can take minutes).&lt;/p&gt;

&lt;p&gt;Generate a new ssh host key for the new EC2 instance.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;tmpdir=$(mktemp -d /tmp/ssh-host-key.XXXXXX)
keyfile=$tmpdir/ssh_host_ecdsa_key
ssh-keygen -q -t ecdsa -N "" -C "" -f $keyfile
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Create the user-data script that will set the ssh host key.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;userdatafile=$tmpdir/set-ssh-host-key.user-data
cat &amp;lt;&amp;lt;EOF &amp;gt;$userdatafile
#!/bin/bash -xeu
cat &amp;lt;&amp;lt;EOKEY &amp;gt;/etc/ssh/ssh_host_ecdsa_key
$(cat $keyfile)
EOKEY
cat &amp;lt;&amp;lt;EOKEY &amp;gt;/etc/ssh/ssh_host_ecdsa_key.pub
$(cat $keyfile.pub)
EOKEY
EOF
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Run an EC2 instance, say Ubuntu 11.10 Oneiric, passing in the
user-data script.  Make a note of the new instance id.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-run-instances --key $USER --user-data-file $userdatafile ami-4dad7424
instanceid=i-...
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Wait for the instance to get a public DNS name and make a note of it.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ec2-describe-instances $instanceid
host=ec2-...compute-1.amazonaws.com
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Add new public ssh host key to our local ssh known_hosts after
removing any leftover key (e.g., from previous EC2 instance at same IP
address).&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;knownhosts=$HOME/.ssh/known_hosts
ssh-keygen -R $host -f $knownhosts
ssh-keygen -R $(dig +short $host) -f $knownhosts
(
  echo -n "$host "; cat $keyfile.pub
  echo -n "$(dig +short $host) "; cat $keyfile.pub
) &amp;gt;&amp;gt; $knownhosts
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;When the instance starts running and the user-data script has
executed, you can ssh in to the server without being prompted to
verify the fingerprint&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ssh ubuntu@$host
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Don&amp;#8217;t forget to clean up and to terminate your test instance.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;rm -rf $tmpdir
ec2-terminate-instances $instanceid
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Caveat&lt;/h2&gt;

&lt;p&gt;There is one big drawback in the above sample implementation of this
approach.  We have placed secret information (the private ssh host
key) into the EC2 user-data, which I generally recommend against.&lt;/p&gt;

&lt;p&gt;Any user who can log in to the instance or who can cause the instance
to request a URL and get the output, can retrieve the user-data.  You
might think this is unlikely to happen, but I&amp;#8217;d rather avoid or
minimize unnecessary risk.&lt;/p&gt;

&lt;p&gt;In a production implementation of this approach, I would take steps
like the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Upload the new ssh host key to S3 in a private object.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generate an authenticated URL to the S3 object and have that URL
expire in, say, 10 minutes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the user-data script, download the ssh host key with the
authenticated, expiring S3 URL.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, there is a short window of exposure and you don&amp;#8217;t have to worry
about protecting the user-data after the URL has expired.&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/04/ec2-ssh-host-key"&gt;http://alestic.com/2012/04/ec2-ssh-host-key&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/SsDZzsdpS7M" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/04/ec2-ssh-host-key</feedburner:origLink></entry>

<entry>
    <title>Seeding Torrents with Amazon S3 and s3cmd on Ubuntu</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/-X3DBzGr_4k/aws-s3-torrent" />
    <id>tag:alestic.com,2012://1.76</id>

    <published>2012-04-04T14:00:00Z</published>
    <updated>2012-04-04T08:10:40Z</updated>

    <summary>Amazon Web Services is such a huge, complex service with so many products and features that sometimes very simple but powerful features fall through the cracks when you’re reading the extensive documentation. One of these features, which has been around...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="aws" label="AWS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="bittorrent" label="bittorrent" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="s3" label="S3" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="s3cmd" label="s3cmd" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="seeding" label="seeding" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="torrent" label="torrent" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ubuntu" label="ubuntu" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;Amazon Web Services is such a huge, complex service with so many products and features that sometimes very simple but powerful features fall through the cracks when you&amp;#8217;re reading the extensive documentation.&lt;/p&gt;

&lt;p&gt;One of these features, which has been around for a very long time, is the ability to use AWS to seed (serve) downloadable files using the BitTorrent&amp;#8482; protocol.  You don&amp;#8217;t need to run EC2 instances and set up software.  In fact, you don&amp;#8217;t need to do anything except upload your files to S3 and make them publicly available.&lt;/p&gt;

&lt;p&gt;Any file available for normal HTTP download in S3 is also available for download through a torrent.  All you need to do is append the string &lt;code&gt;?torrent&lt;/code&gt; to the end of the URL and Amazon S3 takes care of the rest.&lt;/p&gt;

&lt;h2&gt;Steps&lt;/h2&gt;

&lt;p&gt;Let&amp;#8217;s walk through uploading a file to S3 and accessing it with a torrent client using Ubuntu as our local system.  This approach uses &lt;code&gt;s3cmd&lt;/code&gt; to upload the file to S3, but any other S3 software can get the job done, too.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Install the useful &lt;code&gt;s3cmd&lt;/code&gt; tool and set up a configuration file for it.  This is a one time step:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo apt-get install s3cmd
s3cmd --configure
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The configure phase will prompt for your AWS access key id and AWS secret access key.  These are stored in &lt;code&gt;$HOME/.s3cmd&lt;/code&gt; which you should protect.  You can press [Enter] for the encryption password and GPG program.  I prefer &amp;#8220;Yes&amp;#8221; for using the HTTPS protocol, especially if I am using s3cmd from outside of EC2.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create an S3 bucket and upload the file with public access:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;bucket=YOURBUCKETNAME
filename=FILETOUPLOAD
basename=$(basename $filename)
s3cmd mb s3://$bucket
s3cmd put --acl-public $filename s3://$bucket/$basename
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Display the URLs which can be used to access the file through normal web download and through a torrent:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cat &amp;lt;&amp;lt;EOM
web:     http://$bucket.s3.amazonaws.com/$basename
torrent: http://$bucket.s3.amazonaws.com/$basename?torrent
EOM
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Notes&lt;/h2&gt;

&lt;ol type="a"&gt;
  &lt;li  type="a"&gt;&lt;p&gt;The above process makes your file publicly available to anybody in the world.  Don&amp;#8217;t use this for anything you wish to keep private.&lt;/p&gt;&lt;/li&gt;

  &lt;li type="a"&gt;&lt;p&gt;You will pay standard S3 network charges for all downloads from S3 including the initial torrent seeding.  You do not pay for network transfers between torrent peers once folks are serving the file chunks to each other.&lt;/p&gt;&lt;/li&gt;

  &lt;li type="a"&gt;&lt;p&gt;You cannot throttle the rate or frequency of downloads from S3.  You can turn off access to prevent further downloads, but monitoring accesses and usage is not entirely real time.&lt;/p&gt;&lt;/li&gt;

  &lt;li type="a"&gt;&lt;p&gt;If your file is not popular enough for other torrent peers to be actively serving it, then every person who downloads it will transfer the entire content from S3&amp;#8217;s torrent servers.&lt;/p&gt;&lt;/li&gt;

  &lt;li type="a"&gt;&lt;p&gt;There is no way to force people to use the Torrent URL.  If they know what they are doing, they can easily remove &amp;#8220;?torrent&amp;#8221; and download the entire file direct from S3, perhaps resulting in a higher cost to you.&lt;/p&gt;&lt;/li&gt;

&lt;/ol&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/04/aws-s3-torrent"&gt;http://alestic.com/2012/04/aws-s3-torrent&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/-X3DBzGr_4k" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/04/aws-s3-torrent</feedburner:origLink></entry>

<entry>
    <title>CloudCamp</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/OCYCW75aeH4/cloudcamp" />
    <id>tag:alestic.com,2012://1.137</id>

    <published>2012-03-10T03:50:09Z</published>
    <updated>2012-04-04T21:16:28Z</updated>

    <summary>There are a number of CloudCamp events coming up in cities around the world. These are free events, organized around the various concepts, technologies, and services that fall under the “cloud” term. There’s always some discussion about my favorite topic,...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="aws" label="AWS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cloudcamp" label="CloudCamp" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="events" label="events" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="losangeles" label="LosAngeles" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rochester" label="Rochester" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;There are a number of &lt;a href="http://cloudcamp.org/"&gt;CloudCamp events&lt;/a&gt; coming up in cities around the world.  These are free events, organized around the various concepts, technologies, and services that fall under the &amp;#8220;cloud&amp;#8221; term.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s always some discussion about my favorite topic, Amazon AWS and EC2, but there are sure to be experts and beginners for every other cloud-related flavor as well.  You can attend presentations, join in discussions, or hang out in the hallway and make connections with local folks who are interested in the same things you are.&lt;/p&gt;

&lt;p&gt;CloudCamp follows somewhat of an unconference format, though the couple I&amp;#8217;ve been to in LA tended to have more pre-planned elements than, say, a BarCamp.  Glancing through the schedules, it looks like each city also has their own twist and personality for CloudCamp.&lt;/p&gt;

&lt;p&gt;Here are two upcoming CloudCamps that are of particular interest to me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://cloudcamp.org/la/11"&gt;CloudCamp Los Angeles&lt;/a&gt;&lt;/strong&gt; - I plan to attend this short event to hang out with old friends and make some new acquaintances. (Do we really need 12 organizers for 3 hours?)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://cloudcamproc.org/"&gt;CloudCamp Rochester&lt;/a&gt;&lt;/strong&gt; - A full day event with some big clouderati names in attendance including Jeff Barr, Mitch Garnaat, David Kavanagh, Chris Moyer.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have a business related to &amp;#8220;cloud&amp;#8221; (and who doesn&amp;#8217;t these days) why not pitch in with a little support as a sponsor?  These are small events, so it doesn&amp;#8217;t take much to help out. Plus you get your brand in front of your target market.  &lt;/p&gt;

&lt;p&gt;I went ahead and tossed in a bit personally to &lt;a href="http://cloudcamproc.org/alestic-com/"&gt;sponsor CloudCamp Rochester&lt;/a&gt; as they make it easy to &lt;a href="http://cloudcamproc.org/become-a-sponsor/"&gt;contribute and know what you&amp;#8217;re getting in return&lt;/a&gt;.  I couldn&amp;#8217;t find any sponsorship information for CloudCamp LA, but am still looking if anybody knows how that works.&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/03/cloudcamp"&gt;http://alestic.com/2012/03/cloudcamp&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/OCYCW75aeH4" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/03/cloudcamp</feedburner:origLink></entry>

<entry>
    <title>Use the Same Architecture (64-bit) on All EC2 Instance Types</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/xtltIZ7_TwA/ec2-64-bit" />
    <id>tag:alestic.com,2012://1.136</id>

    <published>2012-03-08T12:05:06Z</published>
    <updated>2012-03-08T12:34:43Z</updated>

    <summary>A few hours ago, Amazon AWS announced that all EC2 instance types can now run 64-bit AMIs. Though t1.micro, m1.small, and c1.medium will continue to also support 32-bit AMIs, it is my opinion that there is virtually no reason to...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="amis" label="AMIs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="architecture" label="architecture" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="EC2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="instancetypes" label="instance types" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;A few hours ago, Amazon AWS announced that &lt;a href="http://aws.typepad.com/aws/2012/03/ec2-updates-new-instance-64-bit-bit-ubiquity-ssh-client.html"&gt;all EC2 instance types can now run 64-bit AMIs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Though t1.micro, m1.small, and c1.medium will continue to also support 32-bit AMIs, it is my opinion that there is virtually no reason to use 32-bit instances on EC2 any more.&lt;/p&gt;

&lt;p&gt;This is fantastic news!&lt;/p&gt;

&lt;p&gt;Sticking with 64-bit instances everywhere all the time gives you the most flexibility to &lt;a href="http://alestic.com/2011/02/ec2-change-type"&gt;switch the instance type of your running instances&lt;/a&gt;, reduces the choices and work necessary when building your own AMIs, and just makes life simpler.&lt;/p&gt;

&lt;p&gt;In fact, to celebrate this occasion, I have dropped my listing of 32-bit Ubuntu AMI ids at the top of &lt;a href="http://alestic.com/"&gt;Alestic.com&lt;/a&gt;.  The new simplified AMI id table listing only 64-bit Ubuntu AMIs now fits into the right sidebar.&lt;/p&gt;

&lt;p&gt;Simply pick an EC2 region in the pulldown in the right sidebar, and you&amp;#8217;ll get a clean listing of current available Ubuntu AMIs.  Click on the orange arrow to the right of the AMI id to launch an instance of Ubuntu in your AWS console.&lt;/p&gt;

&lt;p&gt;Note that reserved instances only specify an instance type not an architecture, so if you have already purchased reserved instances for m1.small or c1.medium, you can switch from 32-bit to 64-bit and still have your new instance be covered by the reserved instance pricing.&lt;/p&gt;

&lt;p&gt;Do you have reasons why you might still need to run 32-bit instances on EC2?  How much work is it going to take you to convert your existing instances and AMIs from 32-bit to 64-bit?&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/03/ec2-64-bit"&gt;http://alestic.com/2012/03/ec2-64-bit&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/xtltIZ7_TwA" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/03/ec2-64-bit</feedburner:origLink></entry>

<entry>
    <title>ec2-consistent-snapshot on GitHub and v0.43 Released</title>
    <link rel="alternate" type="text/html" href="http://feeds.alestic.com/~r/alestic-planetubuntu/~3/_5N_YOEMmSw/ec2-consistent-snapshot-on-github" />
    <id>tag:alestic.com,2012://1.135</id>

    <published>2012-02-08T14:00:00Z</published>
    <updated>2012-02-08T23:46:37Z</updated>

    <summary>The source for ec2-conssitent-snapshot has historically been available here: ec2-consistent-snapshot on Launchpad.net using Bazaar For your convenience, it is now also available here: ec2-consistent-snapshot on GitHub using Git You are welcome to fork ec2-consistent snapshot under the liberal terms of...</summary>
    <author>
        <name>Eric Hammond</name>
        <uri>https://plus.google.com/111045584683584396225/about</uri>
    </author>
    
        <category term="EC2" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PlanetUbuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ubuntu" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="UbuntuCloud" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="aws" label="aws" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ebs" label="ebs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ebssnapshots" label="ebs snapshots" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ebsvolumes" label="ebs volumes" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2" label="ec2" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ec2consistentsnapshot" label="ec2-consistent-snapshot" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://alestic.com/">
        &lt;p&gt;The source for &lt;a href="http://alestic.com/2009/09/ec2-consistent-snapshot"&gt;ec2-conssitent-snapshot&lt;/a&gt; has historically been available here:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="https://code.launchpad.net/~alestic/ec2-consistent-snapshot/trunk"&gt;ec2-consistent-snapshot on Launchpad.net using Bazaar&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For your convenience, it is now also available here:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="https://github.com/alestic/ec2-consistent-snapshot"&gt;ec2-consistent-snapshot on GitHub using Git&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You are welcome to fork ec2-consistent snapshot under the liberal terms of the &lt;a href="http://www.apache.org/licenses/LICENSE-2.0"&gt;Apache License, Version 2.0&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I welcome patch submissions, especially if:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The patch accomplishes a single enhancement or bug fix, changing as little as possible to accomplish the goals, while still performing appropriate error checks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The patch includes relevant updates to the documentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The patch does not add functionality outside of the narrow goal of ec2-consistent-snapshot (initiate EBS snapshots with consistent filesystems and application data).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The patch is created against the latest version of the source.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I also recommend submitting a bug/feature in Launchpad.net to track adding the patch to ec2-consistent-snapshot:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;https://bugs.launchpad.net/ec2-consistent-snapshot/+filebug&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not all patches will be accepted, but you are encouraged to maintain forks on GitHub so that others can include your patches if they find them useful.&lt;/p&gt;

&lt;h2&gt;New Release&lt;/h2&gt;

&lt;p&gt;Two user-contributed patches have been incorporated (with minor adjustments) into ec2-consistent-snapshot with the latest release of version 0.43:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Ability to freeze multiple file systems by specifying &amp;#8212;freeze-filesystem multiple times (thanks to &lt;a href="https://bugs.launchpad.net/ec2-consistent-snapshot/+bug/922068"&gt;Bobb Crosbie&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ability to specify commands to run just before freezing the file system(s) and just after thawing the file systems (thanks to &lt;a href="https://bugs.launchpad.net/ec2-consistent-snapshot/+bug/925725"&gt;Craig Tracey&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The new release of ec2-consistent-snapshot is available in the &lt;a href="https://launchpad.net/~alestic/+archive/ppa"&gt;Alestic PPA&lt;/a&gt; for easy installation and upgrading in Ubuntu.  You can install it on Ubuntu using:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo add-apt-repository ppa:alestic &amp;amp;&amp;amp;
sudo apt-get update &amp;amp;&amp;amp;
sudo apt-get install -y ec2-consistent-snapshot
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;ec2-consistent-snapshot is usable on other Linux distros as long as you install dependencies like xfsprogs, perl, libnet-amazon-ec2-perl, libfile-slurp-perl, libwww-perl, libdigest-hmac-perl, libparams-validate-perl, libxml-simple-perl, libmoose-perl, libcrypt-ssleay-perl.&lt;/p&gt;

        

&lt;p&gt;
Original article:
&lt;a href="http://alestic.com/2012/02/ec2-consistent-snapshot-on-github"&gt;http://alestic.com/2012/02/ec2-consistent-snapshot-on-github&lt;/a&gt;
&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/alestic-planetubuntu/~4/_5N_YOEMmSw" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://alestic.com/2012/02/ec2-consistent-snapshot-on-github</feedburner:origLink></entry>

</feed>
