<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss1full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:cc="http://web.resource.org/cc/" xmlns="http://purl.org/rss/1.0/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">

<channel rdf:about="http://aws.typepad.com/aws/">
<title>Amazon Web Services Blog</title>
<link>http://aws.typepad.com/aws/</link>
<description>Amazon Web Services, Products, Tools, and Developer Information...</description>
<dc:language>en-US</dc:language>
<dc:creator />
<dc:date>2012-01-26T19:29:48-08:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.typepad.com/" />


<items>
<rdf:Seq><rdf:li rdf:resource="http://aws.typepad.com/aws/2012/01/new-tagging-features-for-auto-scaling-groups.html" />
<rdf:li rdf:resource="http://aws.typepad.com/aws/2012/01/aws-howto-using-amazon-elastic-mapreduce-with-dynamodb.html" />
<rdf:li rdf:resource="http://aws.typepad.com/aws/2012/01/the-aws-storage-gateway-integrate-your-existing-on-premises-applications-with-aws-cloud-storage.html" />
<rdf:li rdf:resource="http://aws.typepad.com/aws/2012/01/new-launch-relational-database-service-instances-in-the-virtual-private-cloud.html" />
<rdf:li rdf:resource="http://aws.typepad.com/aws/2012/01/aws-toolkits-for-eclipse-and-visual-studio-now-support-dynamodb.html" />
<rdf:li rdf:resource="http://aws.typepad.com/aws/2012/01/identity-federation-to-aws-management-console.html" />
<rdf:li rdf:resource="http://aws.typepad.com/aws/2012/01/guest-post-geo-blocking-content-with-amazon-cloudfront.html" />
<rdf:li rdf:resource="http://aws.typepad.com/aws/2012/01/amazon-dynamodb-internet-scale-data-storage-the-nosql-way.html" />
<rdf:li rdf:resource="http://aws.typepad.com/aws/2012/01/aws-free-usage-tier-now-includes-microsoft-windows-on-ec2.html" />
<rdf:li rdf:resource="http://aws.typepad.com/aws/2012/01/aws-direct-connect-now-available-in-four-additional-locations.html" />
</rdf:Seq>
</items>

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rdf+xml" href="http://feeds.feedburner.com/AmazonWebServicesBlog" /><feedburner:info uri="amazonwebservicesblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>AmazonWebServicesBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly></channel>

<item rdf:about="http://aws.typepad.com/aws/2012/01/new-tagging-features-for-auto-scaling-groups.html">
<title>New Tagging for Auto Scaling Groups</title>
<link>http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/khureF5pRbQ/new-tagging-features-for-auto-scaling-groups.html</link>
<description>You can now add up to 10 tags to any of your Auto Scaling Groups. You can also, if you'd like, propagate the tags to the EC2 instances launched from your groups. Adding tags to your Auto Scaling groups will...</description>
<content:encoded><![CDATA[<p>You can now add up to 10 tags to any of your <a href="http://aws.amazon.com/autoscaling/" target="_self">Auto Scaling Groups</a>. You can also, if you'd like, propagate the tags to the EC2 instances launched from your groups.</p>
<p>Adding tags to your Auto Scaling groups will make it easier for you to identify and distinguish them.</p>
<p>Each tag has a name, a value, and an optional propagation flag. If the flag is set, then the corresponding tag will be applied to EC2 instances launched from the group. You can use this feature to label or distinguish instances created by distinct Auto Scaling groups. You might be using multiple groups to support multiple scalable applications, or multiple scalable tiers or components of a single application. Either, way the tags can help you to keep your instances straight.</p>
<p>Read more in the newest version of the <a href="http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/Welcome.html" target="_self">Auto Scaling Developer Guide</a>.</p>
<p>-- Jeff;</p>
<p><iframe allowtransparency="true" src="http://www.facebook.com/plugins/like.php?app_id=132675016822106&amp;href=http%3A%2F%2Faws.typepad.com%2Faws%2F2012%2F01%2Fnew-tagging-features-for-auto-scaling-groups.html&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" style="border: none; overflow: hidden; width: 450px; height: 21px;" frameborder="0" scrolling="no"></iframe></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=khureF5pRbQ:ExgYUIAuD7g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=khureF5pRbQ:ExgYUIAuD7g:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=khureF5pRbQ:ExgYUIAuD7g:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AmazonWebServicesBlog/~4/khureF5pRbQ" height="1" width="1"/>]]></content:encoded>


<dc:subject>Amazon EC2</dc:subject>
<dc:subject>Auto Scaling</dc:subject>

<dc:creator>AWS Evangelist</dc:creator>
<dc:date>2012-01-26T19:29:48-08:00</dc:date>
<feedburner:origLink>http://aws.typepad.com/aws/2012/01/new-tagging-features-for-auto-scaling-groups.html</feedburner:origLink></item>
<item rdf:about="http://aws.typepad.com/aws/2012/01/aws-howto-using-amazon-elastic-mapreduce-with-dynamodb.html">
<title>AWS HowTo: Using Amazon Elastic MapReduce with DynamoDB (Guest Post)</title>
<link>http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/nrpEh3HqrC8/aws-howto-using-amazon-elastic-mapreduce-with-dynamodb.html</link>
<description>Today's guest blogger is Adam Gray. Adam is a Product Manager on the Elastic MapReduce Team. -- Jeff; Apache Hadoop and NoSQL databases are complementary technologies that together provide a powerful toolbox for managing, analyzing, and monetizing Big Data. That’s...</description>
<content:encoded><![CDATA[<p><em>Today&#39;s guest blogger is Adam Gray. Adam is a Product Manager on the Elastic MapReduce Team.</em></p>
<p><em>-- Jeff;</em></p>
<hr />
<p>Apache Hadoop and NoSQL databases are complementary technologies that together provide a powerful toolbox for managing, analyzing, and monetizing Big Data. That’s why we were so excited to provide out-of-the-box Amazon Elastic MapReduce (Amazon EMR) integration with Amazon DynamoDB, providing customers an integrated solution that eliminates the often prohibitive costs of administration, maintenance, and upfront hardware. Customers can now move vast amounts of data into and out of DynamoDB, as well as perform sophisticated analytics on that data, using EMR’s highly parallelized environment to distribute the work across the number of servers of their choice.  Further, as EMR uses a SQL-based engine for Hadoop called Hive, you need only know basic SQL while we handle distributed application complexities such as estimating ideal data splits based on hash keys, pushing appropriate filters down to DynamoDB, and distributing tasks across all the instances in your EMR cluster.</p>
<p>In this article, I’ll demonstrate how EMR can be used to efficiently export DynamoDB tables to S3, import S3 data into DynamoDB, and perform sophisticated queries across tables stored in both DynamoDB and other storage services such as S3.</p>
<p>We will also use sample product order data stored in S3 to demonstrate how you can keep current data in DynamoDB while storing older, less frequently accessed data, in S3. By exporting your rarely used data to Amazon S3 you can reduce your storage costs while preserving low latency access required for high velocity data. Further, exported data in S3 is still directly queryable via EMR (and you can even join your exported tables with current DynamoDB tables).</p>
<p>The sample order data uses the schema below. This includes Order ID as its primary key, a Customer ID field, an Order Date stored as the number of seconds since epoch, and Total representing the total amount spent by the customer on that order. The data also has folder-based partitioning by both year and month, and you’ll see why in a bit.</p>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/emr_howto_table_def_1.png" /></div>
<p><span style="text-decoration: underline;"><strong>Creating a DynamoDB Table</strong></span><br />Let’s create a DynamoDB table for the month of January, 2012 named <em>Orders-2012-01</em>. We will specify <em>Order ID</em> as the Primary Key. By using a table for each month, it is much easier to export data and delete tables over time when they no longer require low latency access.</p>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/emr_howto_create_table_1.png" /></div>
<p>For this sample, a read capacity and a write capacity of 100 units should be more than sufficient. When setting these values you should keep in mind that the larger the EMR cluster the more capacity it will be able to take advantage of. Further, you will be sharing this capacity with any other applications utilizing your DynamoDB table.”</p>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/emr_howto_provision_table_1.png" /></div>
<p><span style="text-decoration: underline;"><strong>Launching an EMR Cluster</strong></span><br /> Please follow Steps 1-3 in the <a href="http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/EMRforDynamoDB.html">EMR for DynamoDB section of the Elastic MapReduce Developer Guide</a> to launch an interactive EMR cluster and SSH to its Master Node to begin submitting SQL-based queries. Note that we recommend you use at least three instances of m1.large size for this sample.</p>
<p>At the <code>hadoop</code> command prompt for the current master node, type <code>hive</code>. You should see a hive prompt: <code>hive&gt;</code></p>
<p>As no other applications will be using our DynamoDB table, let’s tell EMR to use 100% of the available read throughput (by default it will use 50%). Note that this can adversely affect the performance of other applications simultaneously using your DynamoDB table and should be set cautiously.</p>
<div class="codeblock">SET dynamodb.throughput.read.percent=1.0;</div>
<p><span style="text-decoration: underline;"><strong>Creating Hive Tables</strong></span><br /> Outside data sources are referenced in your Hive cluster by creating an EXTERNAL TABLE. First let’s create an EXTERNAL TABLE for the exported order data in S3. Note that this simply creates a reference to the data, no data is yet moved.</p>
<div class="codeblock">CREATE EXTERNAL TABLE orders_s3_export ( order_id string, customer_id string, order_date int, total double )<br /> PARTITIONED BY (year string, month string)<br /> ROW FORMAT DELIMITED<br /> FIELDS TERMINATED BY &#39;\t&#39;<br /> LOCATION &#39;s3://elastic-mapreduce/samples/ddb-orders&#39; ;</div>
<p>You can see that we specified the data location, the ordered data fields, and the folder-based partitioning scheme.</p>
<p>Now let’s create an EXTERNAL TABLE for our DynamoDB table.</p>
<div class="codeblock">CREATE EXTERNAL TABLE orders_ddb_2012_01 ( order_id string, customer_id string, order_date bigint, total double )<br /> STORED BY &#39;org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler&#39;   TBLPROPERTIES (<br /> &quot;dynamodb.table.name&quot; = &quot;Orders-2012-01&quot;,<br /> &quot;dynamodb.column.mapping&quot; = &quot;order_id:Order ID,customer_id:Customer ID,order_date:Order Date,total:Total&quot;<br /> );</div>
<p>This is a bit more complex. We need to specify the DynamoDB table name, the DynamoDB storage handler, the ordered fields, and a mapping between the EXTERNAL TABLE fields (which can’t include spaces) and the actual DynamoDB fields.</p>
<p>Now we’re ready to start moving some data!</p>
<p><span style="text-decoration: underline;"><strong>Importing Data into DynamoDB</strong></span><br /> In order to access the data in our S3 EXTERNAL TABLE, we first need to specify which partitions we want in our working set via the ADD PARTITION command. Let’s start with the data for January 2012.</p>
<div class="codeblock">ALTER TABLE orders_s3_export ADD PARTITION (year=&#39;2012&#39;, month=&#39;01&#39;) ;</div>
<p>Now if we query our S3 EXTERNAL TABLE, only this partition will be included in the results. Let’s load all of the January 2012 order data into our external DynamoDB Table. Note that this may take several minutes.</p>
<div class="codeblock">INSERT OVERWRITE TABLE orders_ddb_2012_01<br /> SELECT order_id, customer_id, order_date, total<br /> FROM orders_s3_export ;</div>
<p>Looks a lot like standard SQL, doesn’t it?</p>
<p><span style="text-decoration: underline;"><strong>Querying Data in DynamoDB Using SQL</strong></span><br /> Now let’s find the top 5 customers by spend over the first week of January. Note the use of unix-timestamp as order_date is stored as the number of seconds since epoch.</p>
<div class="codeblock">SELECT customer_id, sum(total) spend, count(*) order_count<br /> FROM orders_ddb_2012_01 <br /> WHERE order_date &gt;= unix_timestamp(&#39;2012-01-01&#39;, &#39;yyyy-MM-dd&#39;)<br /> AND order_date &lt; unix_timestamp(&#39;2012-01-08&#39;, &#39;yyyy-MM-dd&#39;)<br /> GROUP BY customer_id<br /> ORDER BY spend desc<br /> LIMIT 5 ;</div>
<p><span style="text-decoration: underline;"><strong>Querying Exported Data in S3</strong></span><br /> It looks like customer: ‘c-2cC5fF1bB’ was the biggest spender for that week. Now let’s query our historical data in S3 to see what that customer spent in each of the final 6 months of 2011. Though first we will have to include the additional data into our working set. The RECOVER PARTITIONS command makes it easy to</p>
<div class="codeblock">ALTER TABLE orders_s3_export RECOVER PARTITIONS;</div>
<p>We will now query the 2011 exported data for customer ‘c-2cC5fF1bB’ from S3. Note that the partition fields, both month and year, can be used in your Hive query.</p>
<div class="codeblock">SELECT year, month, customer_id, sum(total) spend, count(*) order_count<br /> FROM orders_s3_export<br /> WHERE customer_id = &#39;c-2cC5fF1bB&#39;<br /> AND month &gt;= 6<br /> AND year = 2011<br /> GROUP BY customer_id, year, month<br /> ORDER by month desc;</div>
<p><span style="text-decoration: underline;"><strong>Exporting Data to S3</strong></span><br /> Now let’s export the January 2012 DynamoDB table data to a different S3 bucket owned by you (denoted by <em><strong>YOUR BUCKET</strong></em> in the command). We’ll first need to create an EXTERNAL TABLE for that S3 bucket. Note that we again partition the data by year and month.</p>
<div class="codeblock">CREATE EXTERNAL TABLE orders_s3_new_export ( order_id string, customer_id string, order_date int, total double )<br /> PARTITIONED BY (year string, month string)<br /> ROW FORMAT DELIMITED FIELDS TERMINATED BY &#39;,&#39;<br /> LOCATION &#39;s3://<em><strong>YOUR BUCKET</strong></em>&#39;;</div>
<p>Now export the data from DynamoDB to S3, specifying the appropriate partition values for that table’s month and year.</p>
<div class="codeblock">INSERT OVERWRITE TABLE orders_s3_new_export<br /> PARTITION (year=&#39;2012&#39;, month=&#39;01&#39;)<br /> SELECT * from orders_ddb_2012_01;</div>
<p>Note that if this was the end of a month and you no longer needed low latency access to that table’s data, you could also delete the table in DynamoDB. You may also now want to terminate your job flow from the EMR console to ensure you do not continue being charged.</p>
<p>That’s it for now. Please visit our <a href="http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/EMRforDynamoDB.html">documentation</a> for more examples, including how to specify the format and compression scheme for your exported files.</p>
<p>-- Adam Gray, Product Manager, Amazon Elastic MapReduce.</p>
<p><iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://www.facebook.com/plugins/like.php?app_id=132675016822106&amp;href=http%3A%2F%2Faws.typepad.com%2Faws%2F2012%2F01%2Faws-howto-using-amazon-elastic-mapreduce-with-dynamodb.html&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" style="border: none; overflow: hidden; width: 450px; height: 21px;"></iframe></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=nrpEh3HqrC8:OXDaydM7R20:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=nrpEh3HqrC8:OXDaydM7R20:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=nrpEh3HqrC8:OXDaydM7R20:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AmazonWebServicesBlog/~4/nrpEh3HqrC8" height="1" width="1"/>]]></content:encoded>


<dc:subject>Amazon EC2</dc:subject>
<dc:subject>Amazon Elastic MapReduce</dc:subject>
<dc:subject>Amazon S3</dc:subject>

<dc:creator>AWS Evangelist</dc:creator>
<dc:date>2012-01-25T17:42:55-08:00</dc:date>
<feedburner:origLink>http://aws.typepad.com/aws/2012/01/aws-howto-using-amazon-elastic-mapreduce-with-dynamodb.html</feedburner:origLink></item>
<item rdf:about="http://aws.typepad.com/aws/2012/01/the-aws-storage-gateway-integrate-your-existing-on-premises-applications-with-aws-cloud-storage.html">
<title>The AWS Storage Gateway - Integrate Your Existing On-Premises Applications with AWS Cloud Storage</title>
<link>http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/dQUoZm2AMl0/the-aws-storage-gateway-integrate-your-existing-on-premises-applications-with-aws-cloud-storage.html</link>
<description>Warning: If you don't have a data center, or if all of your IT infrastructure is already in the cloud, you may not need to read this post! But feel free to pass it along to your friends and colleagues....</description>
<content:encoded><![CDATA[<p><strong>Warning:</strong>&nbsp;If you don't have a data center, or if all of your IT infrastructure is already in the cloud, you may not need to read this post! But feel free to pass it along to your friends and colleagues.</p>
<p><span style="text-decoration: underline;"><strong>The Storage Gateway</strong></span><br />Our new <a href="http://aws.amazon.com/storagegateway" target="_self">AWS Storage Gateway</a> service connects an on-premise software appliance with cloud-based storage to integrate your existing on-premises applications with the AWS storage infrastructure in a seamless, secure, and transparent fashion. Watch this video for an introduction:</p>

<p style="text-align: center;"><iframe src="http://www.youtube.com/embed/DPyc0q4MYsM" style="border: 1px dotted black;" frameborder="0" height="315" width="560"></iframe></p>
<p>Data stored in your current data center can be backed up to Amazon S3, where it is stored as Amazon EBS snapshots. Once there, you will benefit from S3's low cost and intrinsic redundancy. In the event you need to retrieve a backup of your data, you can easily restore these snapshots locally to your on-premises hardware. You can also access them as Amazon EBS volumes, enabling you to easily mirror data between your on-premises and Amazon EC2-based applications.</p>
<p>You can install the AWS Storage Gateway's software appliance on a host machine in your data center. Here's how all of the pieces fit together:</p>
<p>&nbsp;</p>
<div style="text-align: center;"><img src="http://media.amazonwebservices.com/blog/storage_gateway_model_a.png" alt="" /></div>
<p>The AWS Storage Gateway allows you to create storage volumes and attach these volumes as iSCSI devices to your on-premises application servers. The volumes can be Gateway-Stored (right now) or Gateway-Cached (soon) volumes. Gateway-Stored volumes retain a complete copy of the volume on the local storage attached to the on-premises host, while uploading backup snapshots to Amazon S3. This provides low-latency access to your entire data set while providing durable off-site backups. Gateway-Cached volumes will use the local storage as a cache for frequently-accessed data; the definitive copy of the data will live in the cloud. This will allow you to offload your storage to Amazon S3 while preserving low-latency access to your active data.</p>
<p>Gateways can connect to AWS directly or through a local proxy. You can connect through AWS Direct Connect if you would like, and you can also control the amount of inbound and outbound bandwidth consumed by each gateway. All data is compressed prior to upload.<br /><br />Each gateway can support up to 12 volumes and a total of 12 TB of storage. You can have multiple gateways per account and you can choose to store data in our US East (Northern Virginia), US West (Northern California), US West (Oregon), EU (Ireland), Asia Pacific (Singapore), or Asia Pacific (Tokyo) Regions.<br /><br />The first release of the AWS Storage Gateway takes the form of a VM image for VMware ESXi 4.1 (we plan on supporting other virtual environments in the future). Adequate local disk storage, either Direct Attached or SAN (Storage Area Network), is needed for your application storage (used by your iSCSI storage volumes) and working storage (data queued up for writing to AWS). We currently support mounting of our iSCSI storage volumes using the Microsoft Windows and Red Hat iSCSI Initiators.</p>
<p><span style="text-decoration: underline;"><strong>Up and Running</strong></span><br />During the installation and configuration process you will be able to create up to 12 iSCSI storage volumes per gateway. Once installed, each gateway will automatically download, install, and deploy updates and patches. This activity takes place during a maintenance window that you can set on a per-gateway basis.</p>
<p>The AWS Management Console includes complete support for the AWS Storage Gateway. You can create volumes, create and restore snapshots, and establish a schedule for snapshots. Snapshots can be scheduled at 1, 2, 4, 8, 12, or 24 hour intervals. Each gateway reports a number of metrics to <a href="http://aws.amazon.com/cloudwatch" target="_self">Amazon CloudWatch</a> for monitoring.</p>
<p>The snapshots are stored as Amazon EBS (Elastic Block Store) snapshots. You can create an EBS volume using a snapshot of one of your local gateway volumes, or vice versa. Does this give you any interesting ideas?</p>
<p><span style="text-decoration: underline;"><strong>The Gateway in Action</strong></span><br />I expect the AWS Storage Gateway will be put to use in all sorts of ways. Some that come to mind are<strong>:</strong></p>
<ul>
<li><strong>Disaster Recovery and Business Continuity</strong>&nbsp;- You can reduce your investment in hardware set aside for Disaster Recovery using a cloud-based approach. You can send snapshots of your precious data to the cloud on a regular and frequent basis and you can use our&nbsp;<a href="http://aws.amazon.com/ec2/vmimport/" target="_self">VM Import</a> service to move your virtual machine images to the cloud.</li>
<li><strong>Backup</strong> - You can back up local data to the cloud without worrying about running out of storage space. It is easy to schedule the backups, and you don't have to arrange to ship tapes off-site or manage your own infrastructure in a second data center.</li>
<li><strong>Data Migration -&nbsp;</strong>You can now move data from your data center to the cloud, and back, with ease.</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Security Considerations</strong></span><br />We believe that the AWS Storage Gateway will be at home in the enterprise, so I'll cover the inevitable security questions up front. Here are the facts:</p>
<ul>
<li>Data traveling between AWS and each gateway is protected via SSL.</li>
<li>Data at rest (stored in Amazon S3) is encrypted using&nbsp;<a href="http://en.wikipedia.org/wiki/Advanced_Encryption_Standard" target="_self">AES-256</a>.</li>
<li>The iSCSI initiator authenticates itself to the target using CHAP (Challenge-Handshake Authentication protocol).</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Costs</strong></span><br />All AWS users are eligible for a free trial of the AWS Storage Gateway. After that, there is a charge of $125 per month for each activated gateway. The usual EBS snapshot storage rates apply ($0.14 per Gigabyte-month in the US-East Region), as do the usual AWS prices for outbound data transfer (there's no charge for inbound data transfer). More pricing information can be found on the&nbsp;<a href="http://aws.amazon.com/storagegateway" target="_self">Storage Gateway Home Page</a>. If you are eligible for the&nbsp;<a href="http://aws.amazon.com/free/" target="_self">AWS Free Usage Tier</a>, you get up to 1 GB of free EBS snapshot storage per month as well as 15 GB of outbound data transfer.</p>
<p><span style="text-decoration: underline;"><strong>On the Horizon</strong></span><br />As I mentioned earlier, the first release of the AWS Storage Gateway supports Gateway-Stored volumes. We plan to add support for Gateway-Cached volumes in the coming months.</p>
<p>We'll add more features to our roadmap as soon as our users (this means you) start to use the AWS Storage Gateway and send feedback our way.</p>
<p><span style="text-decoration: underline;"><strong>Learn More</strong></span><br />You can visit the&nbsp;<a href="http://aws.amazon.com/storagegateway" target="_self">Storage Gateway Home Page</a>&nbsp;or read the <a href="http://docs.amazonwebservices.com/storagegateway/latest/userguide/" target="_self">Storage Gateway User Guide</a>&nbsp;to learn more.</p>
<p>We will be hosting a <a href="https://www2.gotomeeting.com/register/125710538" target="_self">Storage Gateway webinar</a> on Thursday, February 23rd. Please attend if you would like to learn more about the Storage Gateway and how it can be used for backup, disaster recover, and data mirroring scenarios. The webinar is free and open to all, but space is limited and you need to <a href="https://www2.gotomeeting.com/register/125710538" target="_self">register</a>!</p>
<p>-- Jeff;</p>
<p><iframe allowtransparency="true" src="http://www.facebook.com/plugins/like.php?app_id=132675016822106&amp;href=http%3A%2F%2Faws.typepad.com%2Faws%2F2012%2F01%2Fthe-aws-storage-gateway-integrate-your-existing-on-premises-applications-with-aws-cloud-storage.html&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" style="border: none; overflow: hidden; width: 450px; height: 21px;" frameborder="0" scrolling="no"></iframe></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=dQUoZm2AMl0:DKrwuJHq4YQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=dQUoZm2AMl0:DKrwuJHq4YQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=dQUoZm2AMl0:DKrwuJHq4YQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AmazonWebServicesBlog/~4/dQUoZm2AMl0" height="1" width="1"/>]]></content:encoded>


<dc:subject>Amazon EC2</dc:subject>
<dc:subject>Amazon S3</dc:subject>

<dc:creator>AWS Evangelist</dc:creator>
<dc:date>2012-01-25T00:56:12-08:00</dc:date>
<feedburner:origLink>http://aws.typepad.com/aws/2012/01/the-aws-storage-gateway-integrate-your-existing-on-premises-applications-with-aws-cloud-storage.html</feedburner:origLink></item>
<item rdf:about="http://aws.typepad.com/aws/2012/01/new-launch-relational-database-service-instances-in-the-virtual-private-cloud.html">
<title>Launch Relational Database Service Instances in the Virtual Private Cloud</title>
<link>http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/SUBglapLBtk/new-launch-relational-database-service-instances-in-the-virtual-private-cloud.html</link>
<description>You can now launch Amazon Relational Database Service (RDS) DB instances inside of a Virtual Private Cloud (VPC). Some Background The Relational Database Service takes care of all of the messiness associated with running a relational database. You don't have...</description>
<content:encoded><![CDATA[<p>You can now launch Amazon <a href="http://aws.amazon.com/rds/" target="_self">Relational Database Service</a> (RDS) DB instances inside of a <a href="http://aws.amazon.com/vpc/" target="_self">Virtual Private Cloud</a> (VPC).</p>
<p><span style="text-decoration: underline;"><strong>Some Background</strong></span><br />The Relational Database Service takes care of all of the messiness associated with running a relational database. You don't have to worry about finding and configuring hardware, installing an operating system or a database engine, setting up backups, arranging for fault detection and failover, or scaling compute or storage as your needs change.</p>
<div style="text-align: center;"><img src="http://media.amazonwebservices.com/blog/launch_db_instance_button_1.png" alt="" /></div>
<p>The Virtual Private Cloud lets you create a private, isolated section of the AWS Cloud. You have complete control over IP address ranges, subnetting, routing tables, and network gateways to your own data center and to the Internet.</p>
<div style="text-align: center;"><img src="http://media.amazonwebservices.com/blog/create_vpc_pps_vpn_1.png" alt="" /></div>
<p><span style="text-decoration: underline;"><strong>Here We Go</strong></span><br />Before you launch an RDS DB Instance inside of a VPC, you must first create the VPC and partition its IP address range in to the desired subnets. You can do this using the VPC wizard pictured above, the VPC command line tools, or the VPC APIs.</p>
<p>Then you need to create a DB Subnet Group. The Subnet Group should have at least one subnet in each Availability Zone of the target Region; it identifies the subnets (and the corresponding IP address ranges) where you would like to be able to run DB Instances within the VPC. This will allow a Multi-AZ deployment of RDS to create a new standby in another Availability Zone should the need arise. You need to do this even for Single-AZ deployments, just in case you want to convert them to Multi-AZ at some point.</p>
<p>You can create a DB Security Group, or you can use the default. The DB Security Group gives you control over access to your DB Instances; you can allow access from EC2 instances with specific EC2 Security Group or VPC Security Groups membership, or from designated ranges of IP addresses. You can also use VPC subnets and the associated network Access Control Lists (ACLs) if you'd like. You have a lot of control and a lot of flexibility.</p>
<p>The next step is to launch a DB Instance within the VPC while referencing the DB Subnet Group and a DB Security Group. With this release, you are able to use the MySQL DB engine (we plan to additional options over time). The DB Instance will have an <a href="http://aws.typepad.com/aws/2011/12/new-elastic-network-interfaces-in-the-virtual-private-cloud.html" target="_self">Elastic Network Interface </a>using an IP address selected from your DB Subnet Group. You can use the IP address to reach the instance if you'd like, but we recommend that you use the instance's DNS name instead since the IP address can change during failover of a Multi-AZ deployment.</p>
<p><span style="text-decoration: underline;"><strong>Upgrading to VPC</strong></span><br />If you are running an RDB DB Instance outside of a VPC, you can snapshot the DB Instance and then restore the snapshot into the DB Subnet Group of your choice. You cannot, however, access or use snapshots taken from within a VPC outside of the VPC. This is a restriction that we have put in to place for security reasons.</p>
<p><span style="text-decoration: underline;"><strong>Use Cases and Access Options</strong></span><br />You can put this new combination (RDS + VPC) to use in a variety of ways. Here are some suggestions:</p>
<ul>
<li><strong>Private DB Instances Within a VPC</strong> - This is the most obvious and straightforward use case, and is a perfect way to run corporate applications that are not intended to be accessed from the Internet. </li>
<li><strong>Public facing Web Application with Private Database</strong> - Host the web site on a public-facing subnet and the DB Instances on a private subnet that has no Internet access. The application server and the RDB DB Instances will not have public IP addresses.</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Your Turn</strong></span><br />You can launch RDS instances in your VPCs today in all of the AWS Regions except AWS GovCloud (US). What are you waiting for?</p>
<p>-- Jeff;</p>
<p>&nbsp;</p>
<p><iframe allowtransparency="true" src="http://www.facebook.com/plugins/like.php?app_id=132675016822106&amp;href=http%3A%2F%2Faws.typepad.com%2Faws%2F2012%2F01%2Fnew-launch-relational-database-service-instances-in-the-virtual-private-cloud.html&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" style="border: none; overflow: hidden; width: 450px; height: 21px;" frameborder="0" scrolling="no"></iframe></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=SUBglapLBtk:U7bT0M3kR-E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=SUBglapLBtk:U7bT0M3kR-E:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=SUBglapLBtk:U7bT0M3kR-E:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AmazonWebServicesBlog/~4/SUBglapLBtk" height="1" width="1"/>]]></content:encoded>


<dc:subject>Amazon EC2</dc:subject>
<dc:subject>Amazon RDS</dc:subject>
<dc:subject>Amazon VPC</dc:subject>

<dc:creator>AWS Evangelist</dc:creator>
<dc:date>2012-01-24T17:34:38-08:00</dc:date>
<feedburner:origLink>http://aws.typepad.com/aws/2012/01/new-launch-relational-database-service-instances-in-the-virtual-private-cloud.html</feedburner:origLink></item>
<item rdf:about="http://aws.typepad.com/aws/2012/01/aws-toolkits-for-eclipse-and-visual-studio-now-support-dynamodb.html">
<title>AWS Toolkits for Eclipse and Visual Studio Now Support DynamoDB</title>
<link>http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/glDLiWq9cdM/aws-toolkits-for-eclipse-and-visual-studio-now-support-dynamodb.html</link>
<description>The AWS Toolkit for Eclipse and and the AWS Toolkit for Visual Studio now support Amazon DynamoDB.You can create tables, insert and edit data, initiate table scans, and more. Here are some screen shots from the AWS Toolkit for Visual...</description>
<content:encoded><![CDATA[<p>The <a href="http://aws.amazon.com/eclipse/" target="_self">AWS Toolkit for Eclipse</a> and and the <a href="http://aws.amazon.com/visualstudio/" target="_self">AWS Toolkit for Visual Studio</a> now support <a href="http://aws.amazon.com/dynamodb/" target="_self">Amazon DynamoDB</a>.You can create tables, insert and edit data, initiate table scans, and more.</p>
<p>Here are some screen shots from the AWS Toolkit for Visual Studio.</p>
<p>Create a table:</p>
<div style="text-align: center;"><img src="http://media.amazonwebservices.com/blog/vs_ddb_tk_create_table_1.jpg" alt="" /></div>
<p>Edit a multi-valued attribute:</p>
<div style="text-align: center;"><img src="http://media.amazonwebservices.com/blog/vs_ddb_tk_edit_values_3.jpg" alt="" /></div>
<p>Set up a table scan:</p>
<div style="text-align: center;"><img src="http://media.amazonwebservices.com/blog/vs_ddb_tk_setup_scan_2.jpg" alt="" /></div>
<p>The AWS Toolkit for Visual Studio also contains the latest and greatest version of the AWS SDK for .NET. This version of the SDK includes support for Amazon DynamoDB, in the form of the <strong>Amazon.DynamoDB.DocumentModel</strong> and <strong>Amazon.DynamoDB.TableModel</strong> classes and namespaces. More information about the updates to the SDK can be found in the <a href="http://aws.amazon.com/releasenotes/.NET/3948783418353502" target="_self">release notes</a>.</p>
<p>Similarly, the AWS Toolkit for Eclipse contains the latest and greatest version of the AWS SDK for Java. This SDK also includes support for Amazon DynamoDB, Per the <a href="http://aws.amazon.com/releasenotes/5581335213116164" target="_self">release notes</a>, you can use the <strong>AmazonDynamoDBClient</strong> object to send requests directly to Amazon DynamoDB, or you can use the high-level API in the AWS SDK for Java to annotate your Java objects and automatically map them into Amazon DynamoDB.</p>
<p>-- Jeff;</p>
<p><iframe allowtransparency="true" src="http://www.facebook.com/plugins/like.php?app_id=132675016822106&amp;href=http%3A%2F%2Faws.typepad.com%2Faws%2F2012%2F01%2Faws-toolkits-for-eclipse-and-visual-studio-now-support-dynamodb.html&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" style="border: none; overflow: hidden; width: 450px; height: 21px;" frameborder="0" scrolling="no"></iframe></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=glDLiWq9cdM:OKBgj0xgTWA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=glDLiWq9cdM:OKBgj0xgTWA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=glDLiWq9cdM:OKBgj0xgTWA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AmazonWebServicesBlog/~4/glDLiWq9cdM" height="1" width="1"/>]]></content:encoded>


<dc:subject>Amazon DynamoDB</dc:subject>
<dc:subject>Developer Tools</dc:subject>

<dc:creator>AWS Evangelist</dc:creator>
<dc:date>2012-01-20T12:12:33-08:00</dc:date>
<feedburner:origLink>http://aws.typepad.com/aws/2012/01/aws-toolkits-for-eclipse-and-visual-studio-now-support-dynamodb.html</feedburner:origLink></item>
<item rdf:about="http://aws.typepad.com/aws/2012/01/identity-federation-to-aws-management-console.html">
<title>Identity Federation to the AWS Management Console</title>
<link>http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/BN5ZIDnIDV0/identity-federation-to-aws-management-console.html</link>
<description>In August, we announced that AWS Identity and Access Management (IAM) added support for Identity Federation. This enabled customers to use their existing identities (e.g. users) to securely access AWS APIs and resources using IAM's fine-grained access controls, without the...</description>
<content:encoded><![CDATA[<p>In August, we announced that AWS Identity and Access Management (IAM) added support for Identity Federation. This enabled customers to use their existing identities (e.g. users) to securely access AWS APIs and resources using IAM&#39;s fine-grained access controls, without the need to create an IAM user for each identity.<br /><br />Today we are announcing that we have extended IAM’s Identity Federation functionality to also enable federated users to access the AWS Management Console. This allows you to enable your employees to sign in once to your corporate directory, and then use the AWS Management Console without having to sign in to AWS, providing single sign-on access to AWS.</p>
<p>In my <a href="http://aws.typepad.com/aws/2011/08/aws-identity-and-access-management-now-with-identity-federation.html" target="_self">previous post on the topic of Identity Federation</a>, I discussed how you could setup an identity broker, which calls our Security Token Service (STS), requesting temporary security credentials to provide your users access to AWS. You explicitly specify the permissions that these temporary credentials give your users, as well as control the amount of time (1 to 36 hours) these credentials are valid for. Well, these same temporary security credentials can now also be used to access the AWS Management Console.</p>
<p>Here&#39;s the basic flow:</p>
<div>
<table cellpadding="4" style="margin-left: auto; margin-right: auto;" width="75%">
<tbody>
<tr>
<td><img alt="" src="http://media.amazonwebservices.com/blog/console_id_fed_step1_1.png" /></td>
<td>User signs in to the enterprise network with their enterprise credentials.</td>
</tr>
<tr>
<td>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/shady_green_down_arrow_1.png" /></div>
</td>
</tr>
<tr>
<td><img alt="" src="http://media.amazonwebservices.com/blog/console_id_fed_step2_1.png" /></td>
<td>User browses to an internal site and clicks on Sign in to AWS Management Console.<br /><br />Page calls identity broker. Identity broker validates access rights and provides temporary security credentials which includes the user&#39;s permissions to access AWS. The page includes these temporary security credentials as part of the sign-in request to AWS.</td>
</tr>
<tr>
<td>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/shady_green_down_arrow_1.png" /></div>
</td>
</tr>
<tr>
<td><img alt="" src="http://media.amazonwebservices.com/blog/console_id_fed_step3_1.png" /></td>
<td>User is logged in to the AWS Management Console with the appropriate IAM policy.</td>
</tr>
</tbody>
</table>
</div>
<p>If you have already built an identity broker, perhaps using our <a href="http://aws.amazon.com/code/1288653099190193" target="_self">sample application</a>, to enable Identity Federation to AWS service APIs for users in your enterprise directory, you’re already most of the way there. All you need to do is implement an internal web page with redirect links to the AWS Management Console, and include the temporary security credentials as part of the sign in request. Below is some simple Ruby code sample that shows how to do just that (just replace the highlighed items with your own identifiers and URLs):</p>
<div class="ruby" style="font-family: monospace; font-size: 120%; color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;"><ol>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #cc0066; font-weight: bold;">require</span> <span style="color: #996600;">&#39;rubygems&#39;</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #cc0066; font-weight: bold;">require</span> <span style="color: #996600;">&#39;json&#39;</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #cc0066; font-weight: bold;">require</span> <span style="color: #996600;">&#39;open-uri&#39;</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #cc0066; font-weight: bold;">require</span> <span style="color: #996600;">&#39;cgi&#39;</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #cc0066; font-weight: bold;">require</span> <span style="color: #996600;">&#39;aws-sdk&#39;</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160;</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># The temporary credentials will normally come from your identity</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># broker, but for simplicity we create them in place</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">sts = <span style="color: #6666ff; font-weight: bold;">AWS::STS</span>.<span style="color: #9900cc;">new</span><span style="color: #006600; font-weight: bold;">(</span><span style="color: #ff3333; font-weight: bold;">:access_key_id</span> <span style="color: #006600; font-weight: bold;">=&gt;</span> <span style="color: #996600; background-color: #fff8c6; border: 1px dotted black;">&quot;*** Your AWS Access Key ID ***&quot;</span>,</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160; <span style="color: #ff3333; font-weight: bold;">:secret_access_key</span> <span style="color: #006600; font-weight: bold;">=&gt;</span> <span style="color: #996600; background-color: #fff8c6; border: 1px dotted black;">&quot;*** Your AWS Secret Access Key ***&quot;</span><span style="color: #006600; font-weight: bold;">)</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160;</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># A sample policy for accessing SNS in the console.</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">policy = <span style="color: #6666ff; font-weight: bold;">AWS::STS::Policy</span>.<span style="color: #9900cc;">new</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">policy.<span style="color: #9900cc;">allow</span><span style="color: #006600; font-weight: bold;">(</span><span style="color: #ff3333; font-weight: bold;">:actions</span> <span style="color: #006600; font-weight: bold;">=&gt;</span> <span style="color: #996600;">&quot;sns:*&quot;</span>,:resources <span style="color: #006600; font-weight: bold;">=&gt;</span> <span style="color: #ff3333; font-weight: bold;">:any</span><span style="color: #006600; font-weight: bold;">)</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160;</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">session = sts.<span style="color: #9900cc;">new_federated_session</span><span style="color: #006600; font-weight: bold;">(</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160; <span style="color: #996600;">&quot;UserName&quot;</span>,</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160; <span style="color: #ff3333; font-weight: bold;">:policy</span> <span style="color: #006600; font-weight: bold;">=&gt;</span> policy,</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160; <span style="color: #ff3333; font-weight: bold;">:duration</span> <span style="color: #006600; font-weight: bold;">=&gt;</span> <span style="color: #006666;">3600</span><span style="color: #006600; font-weight: bold;">)</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160;</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160;</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># The issuer parameter specifies your internal sign-in</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># page, for example https://mysignin.internal.mycompany.com/.</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># The console parameter specifies the URL to the destination tab of the</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># AWS Management Console. This example goes to the sns console.</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># The signin parameter is the URL to send the request to.</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">issuer_url = <span style="color: #996600; background-color: #fff8c6; border: 1px dotted black;">&quot;https://mysignin.internal.mycompany.com/&quot;</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">console_url = <span style="color: #996600;">&quot;https://console.aws.amazon.com/sns&quot;</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">signin_url = <span style="color: #996600;">&quot;https://signin.aws.amazon.com/federation&quot;</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160;</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># Create the signin token using temporary credentials,</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># including the Access Key ID, Secret Access Key, and security token.</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160;</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">session_json = <span style="color: #006600; font-weight: bold;">{</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160; <span style="color: #ff3333; font-weight: bold;">:sessionId</span> <span style="color: #006600; font-weight: bold;">=&gt;</span> session.<span style="color: #9900cc;">credentials</span><span style="color: #006600; font-weight: bold;">[</span><span style="color: #ff3333; font-weight: bold;">:access_key_id</span><span style="color: #006600; font-weight: bold;">]</span>,</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160; <span style="color: #ff3333; font-weight: bold;">:sessionKey</span> <span style="color: #006600; font-weight: bold;">=&gt;</span> session.<span style="color: #9900cc;">credentials</span><span style="color: #006600; font-weight: bold;">[</span><span style="color: #ff3333; font-weight: bold;">:secret_access_key</span><span style="color: #006600; font-weight: bold;">]</span>,</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160; <span style="color: #ff3333; font-weight: bold;">:sessionToken</span> <span style="color: #006600; font-weight: bold;">=&gt;</span> session.<span style="color: #9900cc;">credentials</span><span style="color: #006600; font-weight: bold;">[</span><span style="color: #ff3333; font-weight: bold;">:session_token</span><span style="color: #006600; font-weight: bold;">]</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #006600; font-weight: bold;">}</span>.<span style="color: #9900cc;">to_json</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160;</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">get_signin_token_url = signin_url <span style="color: #006600; font-weight: bold;">+</span> <span style="color: #996600;">&quot;?Action=getSigninToken&amp;SessionType=json&amp;Session=&quot;</span> <span style="color: #006600; font-weight: bold;">+</span> <span style="color: #cc00ff; font-weight: bold;">CGI</span>.<span style="color: #9900cc;">escape</span><span style="color: #006600; font-weight: bold;">(</span>session_json<span style="color: #006600; font-weight: bold;">)</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">returned_content = <span style="color: #cc00ff; font-weight: bold;">URI</span>.<span style="color: #9900cc;">parse</span><span style="color: #006600; font-weight: bold;">(</span>get_signin_token_url<span style="color: #006600; font-weight: bold;">)</span>.<span style="color: #9900cc;">read</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">signin_token = JSON.<span style="color: #9900cc;">parse</span><span style="color: #006600; font-weight: bold;">(</span>returned_content<span style="color: #006600; font-weight: bold;">)</span><span style="color: #006600; font-weight: bold;">[</span><span style="color: #996600;">&#39;SigninToken&#39;</span><span style="color: #006600; font-weight: bold;">]</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">signin_token_param = <span style="color: #996600;">&quot;&amp;SigninToken=&quot;</span> <span style="color: #006600; font-weight: bold;">+</span> <span style="color: #cc00ff; font-weight: bold;">CGI</span>.<span style="color: #9900cc;">escape</span><span style="color: #006600; font-weight: bold;">(</span>signin_token<span style="color: #006600; font-weight: bold;">)</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160;</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># The issuer parameter is optional, but recommended. Use it to direct users</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;"><span style="color: #008000; font-style: italic;"># to your sign-in page when their session expires.</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">issuer_param = <span style="color: #996600;">&quot;&amp;Issuer=&quot;</span> <span style="color: #006600; font-weight: bold;">+</span> <span style="color: #cc00ff; font-weight: bold;">CGI</span>.<span style="color: #9900cc;">escape</span><span style="color: #006600; font-weight: bold;">(</span>issuer_url<span style="color: #006600; font-weight: bold;">)</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">destination_param = <span style="color: #996600;">&quot;&amp;Destination=&quot;</span> <span style="color: #006600; font-weight: bold;">+</span> <span style="color: #cc00ff; font-weight: bold;">CGI</span>.<span style="color: #9900cc;">escape</span><span style="color: #006600; font-weight: bold;">(</span>console_url<span style="color: #006600; font-weight: bold;">)</span></div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160;</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">login_url = signin_url <span style="color: #006600; font-weight: bold;">+</span> <span style="color: #996600;">&quot;?Action=login&quot;</span> <span style="color: #006600; font-weight: bold;">+</span> signin_token_param <span style="color: #006600; font-weight: bold;">+</span> issuer_param <span style="color: #006600; font-weight: bold;">+</span> destination_param</div>
</li>
<li>
<div style="font: normal normal 1em/1.2em monospace; margin: 0; padding: 0; background: none; vertical-align: top; color: #000020;">&#0160;</div>
</li>
</ol></div>
<p>You can control the user name displayed in the upper right corner of the AWS Management Console when your user logs in. You can also optionally provide an &quot;Issuer&quot; URL when signing your users in. This URL will then be displayed to the user when their credentials expire, so they can re-authenticate with your identity system before continuing to use the AWS Console.</p>
<p>The following services support Identity Federation to the AWS Management Console today: <a href="http://aws.amazon.com/ec2/" target="_self">Amazon EC2</a>, <a href="http://aws.amazon.com/s3/" target="_self">Amazon S3</a>, <a href="http://aws.amazon.com/sns/" target="_self">Amazon SNS</a>, <a href="http://aws.amazon.com/sqs/" target="_self">Amazon SQS</a>, <a href="http://aws.amazon.com/vpc/" target="_self">Amazon VPC</a>, <a href="http://aws.amazon.com/cloudfront/" target="_self">Amazon CloudFront</a>, <a href="http://aws.amazon.com/route53/" target="_self">Amazon Route 53</a>, <a href="http://aws.amazon.com/cloudwatch/" target="_self">Amazon CloudWatch</a>, <a href="http://aws.amazon.com/rds/" target="_self">Amazon RDS</a>, <a href="http://aws.amazon.com/elasticache/" target="_self">Amazon ElastiCache</a>, <a href="http://aws.amazon.com/ses/" target="_self">Amazon SES</a>, <a href="http://aws.amazon.com/elasticloadbalancing/" target="_self">Elastic Load Balancing</a>, and <a href="http://aws.amazon.com/iam/" target="_self">IAM</a>. We&#39;ll of course be adding support for additional service consoles over time (the busy <a href="http://aws.amazon.com/dynamodb/" target="_self">Amazon DynamoDB</a> team is already working on it!).</p>
<p>-- Jeff;</p>
<p><iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://www.facebook.com/plugins/like.php?app_id=132675016822106&amp;href=http%3A%2F%2Faws.typepad.com%2Faws%2F2012%2F01%2Fidentity-federation-to-aws-management-console.html&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" style="border: none; overflow: hidden; width: 450px; height: 21px;"></iframe></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=BN5ZIDnIDV0:Ndj-2OJ4s6w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=BN5ZIDnIDV0:Ndj-2OJ4s6w:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=BN5ZIDnIDV0:Ndj-2OJ4s6w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AmazonWebServicesBlog/~4/BN5ZIDnIDV0" height="1" width="1"/>]]></content:encoded>


<dc:subject>AWS IAM</dc:subject>
<dc:subject>AWS Management Console</dc:subject>
<dc:subject>Identity and Access Management</dc:subject>

<dc:creator>AWS Evangelist</dc:creator>
<dc:date>2012-01-19T19:47:43-08:00</dc:date>
<feedburner:origLink>http://aws.typepad.com/aws/2012/01/identity-federation-to-aws-management-console.html</feedburner:origLink></item>
<item rdf:about="http://aws.typepad.com/aws/2012/01/guest-post-geo-blocking-content-with-amazon-cloudfront.html">
<title>Guest Post: Geo-Blocking Content With Amazon CloudFront</title>
<link>http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/BjOLElXmf7M/guest-post-geo-blocking-content-with-amazon-cloudfront.html</link>
<description>Today's guest blogger is Nihar Bihani, a Product Manager on the Amazon CloudFront team. -- Jeff; After we launched Amazon CloudFront in November 2008, customers began asking for a way to block access to their content being delivered. We heard...</description>
<content:encoded><![CDATA[<p><em>Today&#39;s guest blogger is <a href="http://www.linkedin.com/in/bihani">Nihar Bihani</a>, a Product Manager on the Amazon CloudFront team.</em></p>
<p>-- Jeff;</p>
<hr />
<p>After we launched <a href="http://aws.amazon.com/cloudfront/" target="_self">Amazon CloudFront</a> in November 2008, customers began asking for a way to block access to their content being delivered. We heard a variety of reasons why customers wanted to have detailed control over who is able to download their files from Amazon CloudFront. Some of the more common use cases we heard included customers wanting the ability to block content delivered by Amazon CloudFront so they could sell digital goods only to paying customers on their website, deliver training materials only to their employees and offer secure video streaming for their pay-per-view or subscription access model.  We listened to their feedback and we launched Amazon CloudFront’s <a href="http://aws.typepad.com/aws/2009/11/new-amazon-cloudfront-feature-private-content.html" target="_self">private content</a> feature in late 2009 for download content and in early 2010 for <a href="http://aws.typepad.com/aws/2010/03/amazon-cloudfront-another-edge-location-and-private-streamed-content.html" target="_self">streaming content</a>. These features help customers protect their content by restricting access based on date ranges, IP addresses, and IP address ranges.</p>
<p>More recently, we heard Amazon CloudFront customers ask for another method of blocking access to their content based on the geographic location of their viewers. One use case is a video publisher who may only have rights to distribute video to users in a single country and needs a way to prevent users who aren’t in that country from accessing their video. Another is a software delivery company that needs to limit the downloading of their content to certain territories because of licensing terms that prevent users in certain countries from downloading their software.  We’ll refer to blocking access to certain countries or territories as geo-restriction.</p>
<p>As a result of this customer feedback, we recently published a <a href="http://docs.amazonwebservices.com/FeaturedArticles/latest/RestrictingCFDistributionsByLocation.html" target="_self">tutorial</a> that shows how to add geo-restriction logic to your web application using Amazon CloudFront’s private content feature in combination with a third party geo-location product. The geo-location product translates your end user&#39;s client IP address into an estimation of the end-user’s location. The tutorial shows you how to consume this location data and issue an Amazon CloudFront private content URL based on the results. We’ve included sample code in Java, .Net, and PHP that work with two different geo-location products.</p>
<p>Here&#39;s how it works:</p>
<ol>
<li>End user requests a webpage on your site.</li>
<li>Your web server sends the end user’s IP address to a geo-location service.</li>
<li>Geo-location service returns the geographic location for the end user.</li>
<li>Your web server determines if the end user should have access to your content on Amazon CloudFront. If so, your webserver generates an Amazon CloudFront signed URL.</li>
<li>End user browser requests the content from Amazon CloudFront using the signed URL.</li>
</ol><ol> </ol>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/cloudfront_geo_tutorial_1.png" /></div>
<p>Using Amazon CloudFront and a third-party geo-location service to restrict access to your content from your application also provides you with control over your end user&#39;s experience if they are restricted from access. For end users whose access is blocked, your application can display a meaningful message instead of returning an error code. You can also customize the error message you display for your end users according to their location.</p>
<p>You can find the tutorial <a href="http://docs.amazonwebservices.com/FeaturedArticles/latest/RestrictingCFDistributionsByLocation.html" target="_self">here</a>. Please take a look at let us know what you think.</p>
<p>Nihar Bihani<br />Product Manager - Amazon CloudFront</p>
<p><iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://www.facebook.com/plugins/like.php?app_id=132675016822106&amp;href=http%3A%2F%2Faws.typepad.com%2Faws%2F2012%2F01%2Fguest-post-geo-blocking-content-with-amazon-cloudfront.html&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" style="border: none; overflow: hidden; width: 450px; height: 21px;"></iframe></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=BjOLElXmf7M:2RBW6lYyn6Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=BjOLElXmf7M:2RBW6lYyn6Y:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=BjOLElXmf7M:2RBW6lYyn6Y:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AmazonWebServicesBlog/~4/BjOLElXmf7M" height="1" width="1"/>]]></content:encoded>


<dc:subject>Amazon CloudFront</dc:subject>

<dc:creator>AWS Evangelist</dc:creator>
<dc:date>2012-01-19T17:15:48-08:00</dc:date>
<feedburner:origLink>http://aws.typepad.com/aws/2012/01/guest-post-geo-blocking-content-with-amazon-cloudfront.html</feedburner:origLink></item>
<item rdf:about="http://aws.typepad.com/aws/2012/01/amazon-dynamodb-internet-scale-data-storage-the-nosql-way.html">
<title>Amazon DynamoDB - Internet-Scale Data Storage the NoSQL Way</title>
<link>http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/WVjofKes0DU/amazon-dynamodb-internet-scale-data-storage-the-nosql-way.html</link>
<description>We want to make it very easy for you to be able to store any amount of semistructured data and to be able to read, write, and modify it quickly, efficiently, and with predictable performance. We don't want you to...</description>
<content:encoded><![CDATA[<p>We want to make it very easy for you to be able to store any amount of semistructured data and to be able to read, write, and modify it quickly, efficiently, and with predictable performance. We don&#39;t want you to have to worry about servers, disks, replication, failover, monitoring, software installation, configuration, or updating, hardware upgrades, network bandwidth, free space, sharding, rearchitecting, or a host of other things that will jump up and bite you at the worst possible time.</p>
<p>We want you to think big, to dream big dreams, and to envision (and then build) data-intensive applications that can scale from zero users up to tens or hundreds of millions of users before you know it. We want you to succeed, and we don&#39;t want your database to get in the way. Focus on your app and on building a user base, and leave the driving to us.</p>
<p>Sound good?</p>
<p><span style="text-decoration: underline;"><strong>Hello, DynamoDB</strong></span><br />Today we are introducing <a href="http://aws.amazon.com/DynamoDB" target="_self">Amazon DynamoDB</a>, our Internet-scale NoSQL database service. Built from the ground up to be efficient, scalable, and highly reliable, DynamoDB will let you store as much data as you want and to access it as often as you&#39;d like, with predictable performance brought on by the use of Solid State Disk, better known as <a href="http://en.wikipedia.org/wiki/Solid-state_drive" target="_self">SSD</a>.</p>
<p>DynamoDB works on the basis of <strong>provisioned throughput</strong>. When you create a DynamoDB table, you simply tell us how much read and write throughput you need. Behind the scenes we&#39;ll set things up so that we can meet your needs, while maintaining latency that&#39;s in the single-digit milliseconds. Later, if your needs change, you can simply turn the provisioned throughput dial up (or down) and we&#39;ll adjust accordingly. You can do this online, with no downtime and with no impact on the overall throughput. In other words, you can scale up even when your database is handling requests.</p>
<p>We&#39;ve made DynamoDB ridiculously easy to use. Newly created tables will usually be ready to use within a minute or two. Once the table is ready, you simply start storing data (as much as you want) into it, paying only for the storage that you use (there&#39;s no need to pre-provision storage).Again, behind the scenes, we&#39;ll take care of provisioning adequate storage for you.</p>
<p>Each table must have a primary index. In this release, you can choose between two types of primary keys: Simple Hash Keys and Composite Hash Key with Range Keys.</p>
<ul>
<li><strong>Simple Hash Keys</strong> give DynamoDB the Distributed Hash Table abstraction and are used to index on a unique key. The key is hashed over multiple processing and storage partitions to optimally distribute the workload.</li>
<li><strong>Composite Hash Keys with Range Keys</strong> give you the ability to create a primary key that is composed of two attributes -- a hash attribute and a range attribute. When you query against this type of key, the hash attribute must be uniquely matched but a range (low to high) can be specified for the&#0160; range attribute. You can use this to run queries such as &quot;all orders from Jeff in the last 24 hours.&quot;</li>
</ul>
<p>Each item in a DynamoDB table consists of a set of key/value pairs. Each value can be a string, a number, a string set, or a number set. When you choose to retrieve (get) an item, you can choose between a strongly consistent read and an eventually consistent read based on your needs. The eventually consistent reads consume half as many resources, so there&#39;s a throughput consideration to think about.</p>
<p>Sounds great, you say, but what about reliability and data durability? Don&#39;t worry, we&#39;ve got that covered too! When you create a DynamoDB table in a particular region, we&#39;ll synchronously replicate your data across servers in multiple zones. You&#39;ll never know about (or be affected by) hardware or facility failures. If something breaks, we&#39;ll get the data from another server.</p>
<p>I can&#39;t stress the operational performance of DynamoDB enough. You can start small (say 5 reads per second) and scale up to 50, 500, 5000, or even 50,000 reads per second. Again, online, and with no changes to your code. And (of course) you can do the same for writes. DynamoDB will grow with you, and it is not going to get between you and success.</p>
<p>As part of the AWS Free Usage Tier, you get 100 MB of free storage, 5 writes per second, and 10 strongly consistent reads per second (or 20 eventually consistent reads per second). Beyond that, pricing is based on how much throughput you provision and how much data you store. As is always the case with AWS, there&#39;s no charge for bandwidth between an EC2 instance and a DynamoDB table in the same Region.</p>
<p>You can create up to 256 tables, each provisioned for 10,000 reads and 10,000 writes per seconds. I cannot emphasize the next point strongly enough: <strong>We are ready, willing, and able to increase any of these values; </strong>simply <a href="http://www.amazon.com/gp/html-forms-controller/DynamoDB_Limit_Increase_Form" target="_self">click here</a> and provide us with some additional information. Our early customers have, in several cases, already exceeded the default limits by an order of magnitude!</p>
<p><span style="text-decoration: underline;"><strong>DynamoDB from the AWS Management Console</strong></span><br />The <a href="http://console.aws.amazon.com/" target="_self">AWS Management Console</a> has a new DynamoDB tab. You can create a new table, provision the throughput, set up the index, and configure CloudWatch alarms with a few clicks:</p>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/dynamodb_create_table_p1_1.png" /></div>
<p>You can enter your throughput requirements manually:</p>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/dynamodb_create_table_p2_manual_1.png" /></div>
<p>Or you can use the calculator embedded in the dialog:</p>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/dynamodb_create_table_p2_calc_2.png" /></div>
<p>You can easily set CloudWatch alarms that will fire when you are consuming more than a specified percentage of the throughput that you have provisioned for the table:</p>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/dynamodb_create_table_p3.png" /></div>
<p>You can use the CloudWatch metrics to see when it is time to add additional read or write throughput:</p>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/dynamodb_metrics_summary_1.png" /></div>
<p>You can easily increase or decrease the provisioned throughput:</p>
<div style="text-align: center;"><img alt="" src="http://media.amazonwebservices.com/blog/dynamodb_modify_table_1.png" /></div>
<p><span style="text-decoration: underline;"><strong>Programming With DynamoDB</strong></span><br />The <a href="http://aws.amazon.com/code" target="_self">AWS SDKs</a> have been updated and now include complete support for DynamoDB. Here are some examples that I put together using the <a href="http://aws.amazon.com/sdkforphp/" target="_self">AWS SDK for PHP</a>.</p>
<p>The first step is to include the SDK and create a reference object:</p>
<div class="php" style="font-family: monospace; color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0; font-size: 120%;"><span style="color: #b1b100;">require_once</span><span style="color: #009900;">(</span><span style="color: #0000ff;">&quot;sdk.class.php&quot;</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br /> <span style="color: #000088;">$DDB</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> AmazonDynamoDB<span style="color: #009900;">(</span><a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;credentials&#39;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&#39;production&#39;</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></div>
<p>Creating a table requires three arguments: a table name, a key specification, and a throughput specification:</p>
<div class="php" style="font-size: 120%; font-family: monospace; color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;"><span style="color: #666666; font-style: italic;">// Create a table</span><br /> <span style="color: #000088;">$Schema</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;HashKeyElement&#39;</span> <span style="color: #339933;">=&gt;</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;AttributeName&#39;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&#39;RecordId&#39;</span><span style="color: #339933;">,</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #0000ff;">&#39;AttributeType&#39;</span> <span style="color: #339933;">=&gt;</span> AmazonDynamoDB<span style="color: #339933;">::</span><span style="color: #004000;">TYPE_STRING</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br /> <br /> <span style="color: #000088;">$Throughput</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;ReadsPerSecond&#39;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&#39;WritesPerSecond&#39;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br /> <br /> <span style="color: #000088;">$Res</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$DDB</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create_table</span><span style="color: #009900;">(</span><a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;TableName&#39;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&#39;Sample&#39;</span><span style="color: #339933;">,</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #0000ff;">&#39;KeySchema&#39;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$Schema</span><span style="color: #339933;">,</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #0000ff;">&#39;ProvisionedThroughput&#39;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$Throughput</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></div>
<p>After <strong>create_table</strong> returns, the table&#39;s status will be CREATING. It will transition to ACTIVE when the table is provisioned and ready to accept data. You can use the describe_table function to get the status and other information about the table:</p>
<div class="php" style="font-size: 120%; font-family: monospace; color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;"><span style="color: #000088;">$Res</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$DDB</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">describe_table</span><span style="color: #009900;">(</span><a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;TableName&#39;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&#39;Sample&#39;</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br /> <a href="http://www.php.net/print_r" style="color: #000060;"><span style="color: #990000;">print_r</span></a><span style="color: #009900;">(</span><span style="color: #000088;">$Res</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">body</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Table</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></div>
<p>Here&#39;s the result as a PHP object:</p>
<div class="php" style="font-size: 120%; font-family: monospace; color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;">CFSimpleXML Object<br /> <span style="color: #009900;">(</span><br /> &#0160; &#0160; <span style="color: #009900;">[</span>CreationDateTime<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> <span style="color: #800080;">1324673829.32</span><br /> &#0160; &#0160; <span style="color: #009900;">[</span>ItemCount<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span><br /> &#0160; &#0160; <span style="color: #009900;">[</span>KeySchema<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> CFSimpleXML Object<br /> &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">(</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">[</span>HashKeyElement<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> CFSimpleXML Object<br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">(</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">[</span>AttributeName<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> RecordId<br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">[</span>AttributeType<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> S<br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">)</span><br /> <br /> &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">)</span><br /> <br /> &#0160; &#0160; <span style="color: #009900;">[</span>ProvisionedThroughput<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> CFSimpleXML Object<br /> &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">(</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">[</span>ReadsPerSecond<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">5</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">[</span>WritesPerSecond<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">5</span><br /> &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">)</span><br /> <br /> &#0160; &#0160; <span style="color: #009900;">[</span>TableName<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> Sample<br /> &#0160; &#0160; <span style="color: #009900;">[</span>TableSizeBytes<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span><br /> &#0160; &#0160; <span style="color: #009900;">[</span>TableStatus<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> ACTIVE<br /> <span style="color: #009900;">)</span></div>
<p>It is really easy to insert new items. You need to specify the data type of each item; here&#39;s how you do that (the other data type constants are TYPE_ARRAY_OF_STRINGS and TYPE_ARRAY_OF_NUMBERS):</p>
<div class="php" style="font-size: 120%; font-family: monospace; color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;"><span style="color: #b1b100;">for</span> <span style="color: #009900;">(</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">)</span><br /> <span style="color: #009900;">{</span><br /> &#0160; <span style="color: #b1b100;">print</span><span style="color: #009900;">(</span><span style="color: #000088;">$i</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br /> &#0160; <span style="color: #000088;">$Item</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;RecordId&#39;</span> <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span>AmazonDynamoDB<span style="color: #339933;">::</span><span style="color: #004000;">TYPE_STRING</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">(</span>string<span style="color: #009900;">)</span> <span style="color: #000088;">$i</span><span style="color: #009900;">)</span><span style="color: #339933;">,</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #0000ff;">&#39;Square&#39;</span> &#0160; <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span>AmazonDynamoDB<span style="color: #339933;">::</span><span style="color: #004000;">TYPE_NUMBER</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">(</span>string<span style="color: #009900;">)</span> <span style="color: #009900;">(</span><span style="color: #000088;">$i</span> <span style="color: #339933;">*</span> <span style="color: #000088;">$i</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br /> <br /> &#0160; <span style="color: #000088;">$Res</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$DDB</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">put_item</span><span style="color: #009900;">(</span><a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;TableName&#39;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&#39;Sample&#39;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&#39;Item&#39;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$Item</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br /> <span style="color: #009900;">}</span></div>
<p>Retrieval by the RecordId key is equally easy:</p>
<div class="php" style="font-family: monospace; font-size: 120%; color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;"><span style="color: #b1b100;">for</span> <span style="color: #009900;">(</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">)</span><br /> <span style="color: #009900;">{</span><br /> &#0160; <span style="color: #000088;">$Key</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;HashKeyElement&#39;</span> <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span>AmazonDynamoDB<span style="color: #339933;">::</span><span style="color: #004000;">TYPE_STRING</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">(</span>string<span style="color: #009900;">)</span> <span style="color: #000088;">$i</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br /> <br /> &#0160; <span style="color: #000088;">$Item</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$DDB</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_item</span><span style="color: #009900;">(</span><a href="http://www.php.net/array" style="color: #000060;"><span style="color: #990000;">array</span></a><span style="color: #009900;">(</span><span style="color: #0000ff;">&#39;TableName&#39;</span> <span style="color: #339933;">=&gt;</span> TABLE<span style="color: #339933;">,</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160;<span style="color: #0000ff;">&#39;Key&#39;</span> &#0160; &#0160; &#0160; <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$Key</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br /> <br /> &#0160; <a href="http://www.php.net/print_r" style="color: #000060;"><span style="color: #990000;">print_r</span></a><span style="color: #009900;">(</span><span style="color: #000088;">$Item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">body</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Item</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br /> <span style="color: #009900;">}</span></div>
<p>Each returned item looks like this as a PHP object:</p>
<div class="php" style="font-size: 120%; font-family: monospace; color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;">CFSimpleXML Object<br /> <span style="color: #009900;">(</span><br /> &#0160; &#0160; <span style="color: #009900;">[</span>RecordId<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> CFSimpleXML Object<br /> &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">(</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">[</span>S<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">44</span><br /> &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">)</span><br /> <br /> &#0160; &#0160; <span style="color: #009900;">[</span>Square<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> CFSimpleXML Object<br /> &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">(</span><br /> &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">[</span>N<span style="color: #009900;">]</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1936</span><br /> &#0160; &#0160; &#0160; &#0160; <span style="color: #009900;">)</span><br /> <br /> <span style="color: #009900;">)</span></div>
<p>The DynamoDB API also includes <strong>query </strong>and <strong>scan </strong>functions. The <strong>query </strong>function queries primary key attribute values and supports the use of comparison operators. The <strong>scan</strong> function scans the entire table with optional filtering of the results of the scan. Queries are generally more efficient than scans.</p>
<p>You can also update items, retrieve multiple items, delete items, or delete multiple items. DynamoDB includes conditional updates (to ensure that some other write hasn&#39;t occurred within a read/modify/write operation as well as atomic increment and decrement operations). Read more in the <a href="http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/Introduction.html?r=948" target="_self">Amazon DynamoDB Developer Guide</a>.</p>
<p>And there you have it, our first big release of 2012. I would enjoy hearing more about how you plan to put DynamoDB to use in your application. Please feel free to leave a comment on the blog.</p>
<p>-- Jeff;</p>
<p>&#0160;</p>
<p>&#0160;</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=WVjofKes0DU:HW5VblUns4E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=WVjofKes0DU:HW5VblUns4E:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=WVjofKes0DU:HW5VblUns4E:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AmazonWebServicesBlog/~4/WVjofKes0DU" height="1" width="1"/>]]></content:encoded>


<dc:subject>Amazon DynamoDB</dc:subject>
<dc:subject>Announcements</dc:subject>

<dc:creator>AWS Evangelist</dc:creator>
<dc:date>2012-01-18T09:32:23-08:00</dc:date>
<feedburner:origLink>http://aws.typepad.com/aws/2012/01/amazon-dynamodb-internet-scale-data-storage-the-nosql-way.html</feedburner:origLink></item>
<item rdf:about="http://aws.typepad.com/aws/2012/01/aws-free-usage-tier-now-includes-microsoft-windows-on-ec2.html">
<title>AWS Free Usage Tier now Includes Microsoft Windows on EC2</title>
<link>http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/szBKB2y--uc/aws-free-usage-tier-now-includes-microsoft-windows-on-ec2.html</link>
<description>The AWS Free Usage Tier now allows you to run Microsoft Windows Server 2008 R2 on an EC2 t1.micro instance for up to 750 hours per month. This benefit is open to new AWS customers and to those who are...</description>
<content:encoded><![CDATA[<p>The <a href="http://aws.amazon.com/free/" target="_self">AWS Free Usage Tier</a> now allows you to run Microsoft Windows Server 2008 R2 on an EC2 t1.micro instance for up to 750 hours per month. This benefit is open to new AWS customers and to those who are already participating in the Free Usage Tier, and is available in all AWS Regions with the exception of GovCloud. This is an easy way for Windows users to start learning about and enjoying the benefits of cloud computing with AWS.</p>
<p>The micro instances provide a small amount of consistent processing power and the ability to burst to a higher level of usage from time to time. You can use this instance to learn about Amazon EC2, support a development and test environment, build an AWS application, or host a web site (or all of the above). We've fine-tuned the micro instances to make them even better at running Microsoft Windows Server.</p>
<p>You can launch your instance from the <a href="https://console.aws.amazon.com/ec2/home" target="_self">AWS Management Console</a>:</p>
<div style="text-align: center;"><img style="border: 1px dotted black;" src="http://media.amazonwebservices.com/blog/console_quick_launch_windows_1.png" alt="" /></div>
<p>We have lots of helpful resources to get you started:</p>
<ul>
<li>An updated (and even more helpful) <a href="http://docs.amazonwebservices.com/AWSEC2/latest/WindowsGuide/Welcome.html?r=8989" target="_self">Amazon EC2 Microsoft Windows Guide.</a></li>
<li><a href="http://docs.amazonwebservices.com/gettingstarted/latest/wah/" target="_self">Getting Started Guide: Web Application Hosting for Microsoft Windows.</a></li>
<li>The Getting Started Guide includes a new section on <a href="http://docs.amazonwebservices.com/AWSEC2/latest/WindowsGuide/EC2Win_CreateWordPressBlog.html" target="_self">Deploying a WordPress Blog</a>. </li>
<li>Our <a href="http://aws.amazon.com/net/" target="_self">Windows and .NET Developer Center.</a></li>
<li>A brand new <a href="http://awsmicrosite.com/" target="_self">AWS Microsite</a>, with a focus on running Windows on Amazon EC2.</li>
<li><a href="http://docs.amazonwebservices.com/gettingstarted/latest/awsgsg-freetier/TestDriveFreeTier.html" target="_self">Additional documentation on the AWS free usage tier</a>, including eligibility information and some tips for making the most of it.</li>
</ul>
<p>Along with 750 instance hours of Windows Server 2008 R2 per month, the Free Usage Tier also provides another 750 instance hours to run Linux (also on a t1.micro), Elastic Load Balancer time and bandwidth, Elastic Block Storage, Amazon S3 Storage, and SimpleDB storage, a bunch of Simple Queue Service and Simple Notification Service requests, and some CloudWatch metrics and alarms (see the <a href="http://aws.amazon.com/free/" target="_self">AWS Free Usage Tier</a> page for details). We've also boosted the amount of EBS storage space offered in the Free Usage Tier to 30GB, and we've doubled the I/O requests in the Free Usage Tier, to 2 million.</p>
<p>I look forward to hearing more about your experience with this new offering. Please feel free to leave a comment!</p>
<p>-- Jeff;</p>
<p>PS - If you want to learn more about what's next in the AWS Cloud, please <a href="http://aws.amazon.com/register-livestream-cloud/?ref_=pe_8050_22392070" target="_self">sign up for our live event</a>.</p>
<p><iframe allowtransparency="true" src="http://www.facebook.com/plugins/like.php?app_id=132675016822106&amp;href=http%3A%2F%2Faws.typepad.com%2Faws%2F2012%2F01%2Faws-free-usage-tier-now-includes-microsoft-windows-on-ec2.html&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" style="border: none; overflow: hidden; width: 450px; height: 21px;" frameborder="0" scrolling="no"></iframe></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=szBKB2y--uc:7G3X_oFv-Sw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=szBKB2y--uc:7G3X_oFv-Sw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=szBKB2y--uc:7G3X_oFv-Sw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AmazonWebServicesBlog/~4/szBKB2y--uc" height="1" width="1"/>]]></content:encoded>


<dc:subject>Amazon EC2</dc:subject>
<dc:subject>Windows</dc:subject>

<dc:creator>AWS Evangelist</dc:creator>
<dc:date>2012-01-15T23:02:08-08:00</dc:date>
<feedburner:origLink>http://aws.typepad.com/aws/2012/01/aws-free-usage-tier-now-includes-microsoft-windows-on-ec2.html</feedburner:origLink></item>
<item rdf:about="http://aws.typepad.com/aws/2012/01/aws-direct-connect-now-available-in-four-additional-locations.html">
<title>AWS Direct Connect - Now Available in Four Additional Locations</title>
<link>http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/yfPvMjlx4kk/aws-direct-connect-now-available-in-four-additional-locations.html</link>
<description>AWS Direct Connect lets you create a dedicated network connection between your office, data center, or colocation facility to an AWS Region. You might want to do this for privacy, to reduce your network costs, or to get a more...</description>
<content:encoded><![CDATA[<p><a href="http://aws.amazon.com/directconnect/" target="_self">AWS Direct Connect</a> lets you create a dedicated network connection between your office, data center, or colocation facility to an AWS Region. You might want to do this for privacy, to reduce your network costs, or to get a more consistent network experience than is possible across the Internet.</p>
<p>We <a href="http://aws.typepad.com/aws/2011/08/aws-direct-connect.html" target="_self">launched AWS Direct Connect</a> in US East (Northern Virginia) this past summer and we <a href="http://aws.typepad.com/aws/2011/09/aws-direct-connect-heads-west.html" target="_self">expanded it to Silicon Valley</a> shortly thereafter.</p>
<p>Today we are making Direct Connect available in four more locations. Here&#39;s the complete list of Regions and the associated data centers:</p>
<ul>
<li>US East (Northern Virginia): <a href="http://www.equinix.com/data-center-locations/map/equinix-north-america/washington-dc-data-center/" target="_self">Equinix Northern Virginia</a>. </li>
<li>US West (Northern California): <a href="http://www.equinix.com/locations/americas/us/silicon-valley-data-centers/" target="_self">Equinix San Jose</a>,  <a href="http://coresite.com/one-wilshire-los-angeles-data-center.php" target="_self">Coresite One Wilshire Los Angeles</a> (<strong>New).</strong></li>
<li> EU West (Ireland):  <a href="http://www.telecitygroup.com/amazon-web-services.htm" target="_self">TelecityGroup Docklands, London</a> (<strong>New).</strong>. </li>
<li> Asia Pacific (Singapore): <a href="http://www.equinix.com/locations/asia-pacific/singapore/singapore-data-centers/" target="_self">Equinix Singapore</a> - <strong>(New).</strong></li>
<li>Asia Pacific (Tokyo): <a href="http://www.equinix.com/locations/asia-pacific/japan/tokyo-data-centers/" target="_self">Equinix Tokyo</a> - <strong>(New).</strong></li>
</ul>
<p>Two of the locations listed above are not in the same city as the associated AWS Region. These locations provide you with additional flexibility when connecting to AWS from those cities.&#0160;</p>
<p>You can initiate the Direct Connect provisioning process by simply <a href="https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/AWSDirectConnect_Service_Request" target="_self">filling out a form</a>:</p>
<div style="text-align: center;"><a href="https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/AWSDirectConnect_Service_Request" target="_self"><img alt="" src="http://media.amazonwebservices.com/blog/direct_connect_request_form_2.png" /></a></div>
<p>-- Jeff;</p>
<p><iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://www.facebook.com/plugins/like.php?app_id=132675016822106&amp;href=http%3A%2F%2Faws.typepad.com%2Faws%2F2012%2F01%2Faws-direct-connect-now-available-in-four-additional-locations.html&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" style="border: none; overflow: hidden; width: 450px; height: 21px;"></iframe></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=yfPvMjlx4kk:y0U8RQt9xj8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=yfPvMjlx4kk:y0U8RQt9xj8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?a=yfPvMjlx4kk:y0U8RQt9xj8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/AmazonWebServicesBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/AmazonWebServicesBlog/~4/yfPvMjlx4kk" height="1" width="1"/>]]></content:encoded>


<dc:subject>AWS Direct Connect</dc:subject>

<dc:creator>AWS Evangelist</dc:creator>
<dc:date>2012-01-10T15:19:13-08:00</dc:date>
<feedburner:origLink>http://aws.typepad.com/aws/2012/01/aws-direct-connect-now-available-in-four-additional-locations.html</feedburner:origLink></item>


</rdf:RDF><!-- ph=1 -->

