We are continuing to simplify the Windows development experience on AWS, and today we are excited to announce Amazon RDS for SQL Server and .NET support for AWS Elastic Beanstalk. Amazon RDS takes care of the tedious aspects of deploying, scaling, patching, and backing up of a relational database, freeing you from time-consuming database administration tasks. AWS Elastic Beanstalk is an easy way to deploy and manage applications in the AWS cloud and handles the deployment details of capacity provisioning, load balancing, auto scaling, and application health monitoring.
Here are the details...
Amazon RDS for SQL Server
We launched the Amazon Relational Database Service (RDS) in late 2009 with support for MySQL. Since then, we have added a number of features, including Multi-AZ, read replicas, and VPC support. Last year, we added support for Oracle Database.
Today we are extending the manageability benefits of Amazon RDS to SQL Server customers. Amazon RDS now supports Express, Web, Standard, and Enterprise Editions of SQL Server 2008 R2. We plan to add support for SQL Server 2012 later this year.
If you are a new Amazon RDS customer, you can use Amazon RDS for SQL Server (Express Edition) under the free usage tier for a full year. After that, you can use the service under multiple licensing models, with prices starting as low as $0.035/hour. Refer to Amazon RDS for SQL Server pricing for more details.

.NET Support for AWS Elastic Beanstalk
Earlier this year, we added support for PHP applications to Elastic Beanstalk alongside the existing support for Java applications.
Today, we are extending Elastic Beanstalk to our Windows developers who are building .NET applications. Elastic Beanstalk leverages the Windows Server 2008 R2 AMI and IIS 7.5 to run .NET applications. You can run existing applications on AWS with minimal changes. There is no additional charge for Elastic Beanstalk—you pay only for the AWS resources needed to store and run your applications. And if you are eligible for the AWS free usage tier, you can deploy and run your application on Elastic Beanstalk for free.
AWS Toolkit for Visual Studio Enhancements
We are also updating the AWS Toolkit for Visual Studio so you can deploy your existing web application projects to AWS Elastic Beanstalk. You can also use the AWS Toolkit for Visual Studio to create Amazon RDS DB Instances and connect to them directly, so you can focus on building your applications without leaving your development environment.
Let’s look at how it all works. For a detailed step-by-step walkthrough, visit the AWS Elastic Beanstalk Developer Guide.
Deploy Your Application to AWS Elastic Beanstalk
To get started, simply install the AWS Toolkit for Visual Studio and make sure you have signed up for an AWS account. You can deploy any Visual Studio Web project to AWS Elastic Beanstalk, including ASP.NET MVC projects and ASP.NET Web Forms. As an example, I will use the NerdDinner MVC sample application.
To deploy to AWS Elastic Beanstalk, right-click the project, and then click Publish to AWS. Provide the details and complete the wizard. This will launch a new Elastic Beanstalk environment and create the AWS resources to run your application. That’s it; NerdDinner is now running on Elastic Beanstalk.
Create and Connect to an Amazon RDS Database Instance
By default, NerdDinner connects to a local SQL Server Express database, so we’ll need to make a few changes to connect it to an Amazon RDS for SQL Server instance. Let’s start by creating a new Amazon RDS for SQL Server instance using the AWS Explorer view inside Visual Studio.
We will also need to create the schema that NerdDinner expects. To do so, simply use the Publish to Provider wizard in Visual Studio to export the schema and data to a SQL script. You can then run the SQL script against the RDS for SQL Server database to recreate the schema and data.
Update Your Running Application
Now that the Amazon RDS for SQL Server database is set up, let’s modify the application’s connection string to use it. To do so, you simply modify the ConnectionString.config file in your NerdDinner project and provide the connection details of your RDS instance.
Finally, you will republish these changes to AWS Elastic Beanstalk. Using incremental deployments, the AWS Toolkit for Visual Studio will only upload the modified file and RDS-backed NerdDinner becomes available a few seconds later.
I hope that you enjoy these new AWS features!
-- Jeff (with lots of help from Saad Ladki of the Elastic Beanstalk team);



Glad to see RDS continue to improve. We are really hoping to see Postgres support announced, as it is a top-notch open source alternative to Oracle and MSSQL, and is an improvement on MySQL in a number of places.
Posted by: Gctaylor | May 08, 2012 at 04:22 PM
Does it support SQL Server Reporting Services?
Posted by: Niall | May 09, 2012 at 02:13 AM
Great to see new developments, but lack of Postgres is really the main thing preventing us from using RDS.
Posted by: AFry | May 09, 2012 at 06:11 AM
Presumably you're hard at work on Multi-AZ and Failover? Getting point-in-time backups automatically is super-nice, but we're looking at ways to increase our availability as well as durability, and it looks like we might need to move to MySQL unless we want to become database administration experts running our own EC2 instances :(.
Posted by: Simon Buchan | May 09, 2012 at 05:49 PM
Hi,
we are very disappointed, that there is no VPC Support for MS SQLServer today .. we are just in the process of moving into the AWS Cloud and we were glad to see that RDS is now supporting SQLServer ... when can we expect VPC Support for SQLServer?
Kevin, Bronze Support Customer from Saudi Arabia
Posted by: Kevin | May 15, 2012 at 07:07 AM
Hi Kevin,
we have had the same problem .. actually Amazon RDS with SQLServer and Oracle Instances do not support VPCs.
Good news is, that there is an easys workaround:
Just assign the EC2 Instance in your private Subnet a second Network-Interface. This second NIC is assigned to the public subnet and then gets an Elastic IP. Also make sure that the Security Group allows outbound traffic via Port 1433.
Then make sure, that your DB Security Group only accepts connections from your defined Elastic IP. It's that simple.
And the good news is, when Amazon implements official VPC Support for SQLServer and Oracle you only have to delete that NIC and change the DB Security Group.
I also have documented this in my Blog: http://www.aws-blog.de ... it's in German but Google Translate makes a good Job.
Sven Ramuschkat
tecRacer GmbH, German Amazon AWS Solution Provider
Posted by: Sven Ramuschkat | May 15, 2012 at 12:50 PM
So guys,
what about if you have two different environment TEST & PRODUCTION and they both have different ConnectionStrings 'cause they point to two different DB?
I know I can deploy a version of TEST to PRODUCTION (after all the normal testing) but what about the different ConnectionString? how do you manage it?
Cheers
Posted by: Joe | June 14, 2012 at 04:30 AM
Joe - Your code could "know" which environment it is running in, and choose the connection string appropriately.
Posted by: Jeff Barr | June 14, 2012 at 05:46 AM
Hi Joe
Any plans for offering Postgres running on flash - ideally pcie such as fusion-io ?
I think you would see massive demand for this.
aws instances are notoriously slow for running rdbms such as Postgres because of poor io performance.
Its surprising to me how slow public cloud industry is in bringing flash storage to market -perhaps you could shed some light as to the reasons why ?
i can only find cloud sigma at reasonable price and thats not pcie - hopefully rumurs that azure's new offering launched last week is ssd based will spurAmazon to get it's act together on this !
Regards Gary CEO M4 Systems
Posted by: Gary Clarke | June 15, 2012 at 07:23 AM