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);