Category: Amazon RDS

AWS Elastic Beanstalk for .NET now Supports VPC, RDS, and Configuration Files

by Jeff Barr | on | in Amazon EC2, Amazon RDS, Amazon VPC, AWS Elastic Beanstalk |

AWS Elastic Beanstalk for .NET now supports the Amazon Virtual Private Cloud (VPC), seamlessly integrates with the Amazon Relational Database Service (RDS), and can be customized using configuration files.

Elastic Beanstalk allows you to easily deploy and manage .NET applications on AWS. Because Elastic Beanstalk leverages Windows Server 2008 R2 and Windows Server 2012, you can run .NET applications with minimal changes.

VPC Integration
With Amazon VPC, you can set up your own virtual network and you can configure Elastic Beanstalk to run your .NET applications inside of this logically isolated section of the AWS cloud. For example, you can create a private subnet where you host your Elastic Beanstalk backend services and then expose the public-facing web application in a public subnet. Visit the AWS Elastic Beanstalk Developer Guide to learn more about Using AWS Elastic Beanstalk with Amazon VPC.

RDS Integration
If your application relies on a relational database, you can easily configure an Amazon RDS DB Instance for your Elastic Beanstalk .NET application. Using the AWS Toolkit for Visual Studio or the AWS Management Console, you can add an RDS DB Instance with just a few clicks. The connection information is automatically exposed to your application through a connection string. Visit Using Amazon RDS in the AWS Elastic Beanstalk Developer Guide.

Configuration Files
Elastic Beanstalk configuration files are YAML text files that allow you to customize your environment in two ways:

  1. You can customize the software running inside your environment by downloading files, running commands, installing agents and packages, and setting environment variables.
  2. You can provision and configure additional resources such as DynamoDB tables, SQS queues, and CloudWatch alarms.

For example, if your application requires write permissions to app_data, you can grant it these permissions using the following configuration file:

container_commands :
   01 changeperm :
     command : icacls “C:/inetpub/wwwroot/myapp/App_Data” /grant DefaultAppPool : (OI ) (CI )F > log. txt 2 >& 1
     cwd : “C:/inetpub/wwwroot/myapp”

Visit Customizing and Configuring AWS Elastic Beanstalk Environments in the AWS Elastic Beanstalk Developer Guide to learn more about configuration files and for additional examples.

— Jeff + Saad;


Amazon RDS – SQL Server Major Version Upgrade

by Jeff Barr | on | in Amazon RDS, Windows |

The Amazon Relational Database Service (RDS) takes care of the low-level drudgery associated with setting up, managing, and scaling a relational database. With support for multiple versions of MySQL, Oracle Database, and Microsoft SQL Server, RDS can be used in a wide variety of appliations.

Without RDS, upgrading to a new version of your chosen database engine can be a complex and time-consuming exercise. You need to find extra servers and storage to do a test upgrade, create and verify backups, test all of your applications, and then upgrade the production database.

We added SQL Server 2012 support to RDS late last year. Today we are introducing a new feature to allow you to perform an in-place upgrade of your SQL Server 2008 R2 database instances to SQL Server 2012 with just a few clicks.

To upgrade, select the target database instance in the AWS Management Console and initiate a Modify operation. Choose the SQL Server 2012 engine and click on Continue:

The upgrade is not reversible, so make sure that this is what you want to do:

There will be some downtime while the new database engine is installed. RDS will automatically take snapshots before the upgrade starts and after it completes.

After you have upgraded, you can take advantage of a number of new SQL Server 2012 features including contained databases, columnstore indexes, sequence objects, and user-defined roles.

It is always advisable to test your applications before upgrading to a new major version of a database. Amazon RDS makes that process easy. You can create a snapshot of the existing database instance (the one running SQL Server 2008 R2 in this case), create a new database running SQL Server 2012, and run your tests without having to buy any hardware. 

As always, this feature is available now and you can start using it today!

— Jeff;

PS – Are you planning to attend the Microsoft Management Summit 2013 (April 8 – 12 in Las Vegas)?  AWS will be there. If you are attending, then please fill out this survey to set up an appointment.

Amazon RDS Scales Up – Provision 3 TB and 30,000 IOPS Per DB Instance

by Jeff Barr | on | in Amazon RDS |

The Amazon Relational Database Service (RDS) handles all of the messy low-level aspects of setting up, managing, and scaling MySQL, Oracle Database, and SQL Server databases. You can simply create an RDS DB instance with the desired processing power and storage space and RDS will take care of the rest.

The RDS Provisioned IOPS feature (see my recent blog post for more information) gives you the power to specify the desired number of I/O operations per second when you create each DB instance.  This allows you to set up instances with the desired level of performance while keeping your costs as low as possible.

Today we are introducing three new features to make Amazon RDS even more powerful and more scalable:

  1. Up to 3 TB of storage and 30,000 Provisioned IOPS.
  2. Conversion from Standard Storage to Provisioned IOPS storage.
  3. Independent scaling of IOPS and storage.

Let’s take an in-depth look at each of these new features.

Up to 3 TB of Storage and 30,000 Provisioned IOPS
We are tripling the amount of storage that you can provision for each DB instance, and we’re also tripling the number of IOPS for good measure.

You can now create DB instances (MySQL or Oracle) with up to 3 TB of storage (the previous limit was 1 TB) and 30,000 IOPS (previously, 10,000). SQL Server DB Instances can be created with up to 1TB of storage and 10,000 IOPS.

For a workload with 50% reads and 50% writes running on an m2.4xlarge instance, you can realize up to 25,000 IOPS for Oracle and 12,500 IOPS for MySQL. However, by provisioning up to 30,000 IOPS, you may be able to achieve lower latency and higher throughput. Your actual realized IOPS may vary from what you have provisioned based on your database workload, instance type, and choice of database engine. Refer to the Factors That Affect Realized IOPS section of the Amazon RDS User Guide to learn more.

Obviously, you can work with larger datasets, and you can read and write the data faster than before. You might want to start thinking about scaling PIOPS up and down over time in response to seasonal variations in load. You could also use a CloudWatch alarm to make sure that you are the first to know

You can modify the storage of existing instances that are running MySQL or Oracle Database. When you do this you can grow storage by 10% or more, and you can raise and lower PIOPS in units of 1,000. There will be a performance impact while the scaling process is underway.

Conversion from Standard Storage to Provisioned IOPS Storage
You can convert DB instances with Standard Storage to Provisioned IOPS in order to gain the benefits of fast and predictable performance. You can do this from the AWS Management Console, the command line, or through the RDS APIs. Simply Modify the instance and specify the desired number of PIOPS.

There will be a brief impact on availability when the modification process starts. If you are running a Multi-AZ deployment of RDS, the availability impact will be limited to the amount of time needed for the failover to complete (typically three minutes). The conversion may take several hours to complete and there may be a moderate performance degradation during this time.

Note: This feature is applicable to DB instances running MySQL or Oracle Database.

Independent Scaling of IOPS and Storage
You can now scale Provisioned IOPS and storage independently. In general, you will want to have between 3.0 and 10.0 IOPS per GB of storage. You can modify the ratio over time as your needs change.

Again, this feature is applicable to DB instances running MySQL or Oracle Database.

Available Now
All three of these features are available now, and they are available in every AWS Region where Provisioned IOPS are supported (all Regions except AWS GovCloud (US)).

You can use these features in conjunction with RDS Multi-AZ deployments and RDS Read Replicas.

— Jeff;

Reserved Instance Price Reduction for Amazon EC2

by Jeff Barr | on | in Amazon EC2, Amazon RDS, Price Reduction |

The AWS team is always exploring ways to reduce costs and to pass the savings along to our customers. We’re more than happy to continue this tradition with our latest price reduction.

Starting today, we are reducing prices for new EC2 Reserved Instances running Linux/UNIX, Red Hat Enterprise Linux, and SUSE Linux Enterprise Server by up to 27%. This reduction applies to the Standard (m1), Second-Generation Standard (m3), High-Memory (m2), and High-CPU (c1) instance families. As always, if you reserve more, you will save more. To be more specific, you will automatically receive additional savings when you have more than $250,000 in active upfront Reserved Instance fees.

With this price reduction, Reserved Instances will provide savings of up to 65% in comparison to On-Demand instances. Here are the price decreases by instance family and Region:

  Price Decrease (%)
Region m1 m2 m3 c1
 US East (Northern Virginia) 13.0% 23.2% 13.2% 10.1%
 US West (Northern California) 13.3% 27.7% 13.3% 10.0%
 US West (Oregon) 13.0% 23.2% 13.2% 10.1%
 AWS GovCloud (US) 0.6% 13.9% 1.1% 2.1%
 Europe (Ireland) 13.3% 27.7% 13.5% 10.0%
 Asia Pacific (Singapore) 4.9% 19.8% 4.9% 2.4%
 Asia Pacific (Tokyo) 4.9% 20.8% 5.0% 2.2%
 Asia Pacific (Sydney) 4.9% 19.8% 4.9% 2.4%
 South America (So Paulo) 4.9% 21.1% 4.9% 0.0%

These new prices apply to all three Reserved Instance models (Light,  Medium, and Heavy Utilization) for purchases made on or after March 5, 2013.

We recommend that you review your usage once a month to determine if you should alter your Reserved Instance footprint by buying additional Reserved Instances or selling them on the AWS Reserved Instance Marketplace. However, if you havent done it lately, now is the perfect opportunity to review your existing usage and determine if now is the right time to purchase new Reserved Instances. Here are some general guidelines to help you choose the most economical model:

  • If your server is running less than 15% of the time, use an On-Demand instance.
  • If your server is runninng 15% and 40% of the time, use a Light Utlization Reserved Instance.
  • If your server is running 40% to 80% of the time, use a Medium Utilization Reserved Instance.
  • If your server is running 80% to 100% of the time, use a Heavy Utilization Reserved Instance.

For more information on making the choice that is right for you, see my blog post on Additional Reserved Instance Options for Amazon EC2.

During the month of March, you can take advantage of a free trial of AWS Trusted Advisor to generate a personalized report on how you can optimize your bill by taking advantage of the new, lower Reserved Instance prices. For more information about Trusted Advisor, see my post about the AWS Trusted Advisor Update + Free Trial.

To learn more about this feature and other Amazon EC2 pricing options, please visit the Amazon EC2 Pricing and the Amazon EC2 Reserved Instance Page.


Amazon RDS – Easier Access to Database Log Files

by Jeff Barr | on | in Amazon RDS, Amazon Redshift |

You can now access the log files generated by your Amazon RDS DB Instances running MySQL, Oracle Database, or SQL Server via the AWS Management Console and the Amazon RDS APIs. You can use these logs to identify, troubleshoot, and repair configuration errors and sub-optimal performance.

You can view the logs as of a certain point in time, watch them for real-time updates, or download them for further processing (downloads are not currently supported by the AWS Management Console and can be initiated via the rds-download-db-logfile command).

You can select a DB Instance in the Console and see the list of log files:

You can then choose to View or Watch any of them:

The type of log files available to you will vary based on the database engine:

MySQL – You can monitor the Error Log, Slow Query Log, and General Log files. The Error Log is generated by default; you’ll need to enable the others by using an RDS DB Parameter Group. The logs are rotated hourly and retained for 24 hours.

Oracle Database – You can access the Alert Log and Trace Files. They are retained for seven days by default; you can adjust this as needed.

SQL Server – You can access the Error Log, Agent Log, and Trace Files. They are retained for seven days and you can adjust this as needed.

Refer to the Working with Database Log Files section of the Amazon RDS User Guide to learn more.

— Jeff;


Amazon RDS Price Reduction for Multi-AZ Deployments

by Jeff Barr | on | in Amazon RDS, Price Reduction |

When you create a Multi-AZ Database Instance using the Amazon Relational Database Service, we automatically create a standby instance which maintains an up-to-date copy of the primary database. If the primary database goes down due to a instance, storage, or network issue, Amazon RDS automatically initiates a failover from primary to secondary and also creates a fresh secondary for you. Here’s the basic architecture (see my Multi-AZ blog post for more information):

Today we are making the Multi-AZ deployment model an even better value, with price reductions ranging from 15% to 32%. As an example, here are the old and new On-Demand prices for an m1.small RDS Database Instance running MySQL or Oracle (BYOL) in a Multi-AZ deployment:

Region Old Price New Price Savings
US East (Northern Virginia) $0.180 $0.153 15%
US West (Northern California) $0.230 $0.167 27%
US West (Oregon) $0.180 $0.153 15%
AWS GovCloud (US) $0.240 $0.187 22%
Europe (Ireland) $0.230 $0.167 27%
Asia Pacific (Singapore) $0.230 $0.196 15%
Asia Pacific (Tokyo) $0.240 $0.204 15%
Asia Pacific (Sydney) $0.230 $0.196 15%
South America (So Paulo) $0.300 $0.204 32%

This price reduction takes effect February 1, 2013 and represents our continued commitment to make AWS a better and better value over time.

— Jeff;

Relational Database Service – Now With Event Subscriptions

by Jeff Barr | on | in Amazon RDS, Amazon Simple Notification Service |

You can now elect to receive notifications via the Amazon Simple Notification Service (SNS) for a wide variety of events associated with each of your Relational Database Service (RDS) instances.

Why Notify?
If you are a database administrator (DBA), you can now use these “push” notifications to arrange for notification when your RDS DB Instances are low on storage or have recovered from a failure.

If your application (or your management tools) call the AWS APIs, they need to track the state of the AWS objects that they manage. By using notifications instead of polling (repeatedly calling the “Describe” functions) you can reduce the number of API calls you make while also simplifying your application architecture.

The Details
You can elect to set up notifications for any of your RDS DB Instances by creating an Event Subscription. The notifications will be delivered to the Amazon SNS topic of your choice when certain events occur. Over 40 types of notifications are available, grouped in to the following categories:

  • Availability – Database shutdown or restart.
  • Backup – Backup started or finished.
  • Configuration Change – Security group modified, instance scaling started or finished, password changed, and more.
  • Creation – Instance or snapshot created or deleted.
  • Failover – Failover (for Multi-AZ Instance) started or completed.
  • Low Storage – Allocated storage has been exhausted.
  • Maintenance – Going offline or returning online for patch installation.
  • Recovery – Recovering a database instance.
  • Restoration – Restoring a database instance to a point in time or from a snapshot.

In conjunction with the Simple Notification Service, you can arrange to receive notifications as email messages.

You can manage the notifications by using the RDS APIs or the AWS Management Console. Here is how you manage notifications from the console. The RDS console’s navigation pane contains a new item for DB Event Subscriptions:

You can begin the process of creating a new subscription by clicking this button:

From there you can fill in the following form:

What do you think? What kinds of interesting uses can you imagine for this feature?

— Jeff;

Endpoint Renaming for Amazon RDS

by Jeff Barr | on | in Amazon RDS |

You can now change the name and endpoint of an existing Amazon RDS database Instance via the AWS Management Console, the Amazon RDS API, or the Amazon RDS Command Line toolkit. This feature is available in all AWS regions and for all of the database engines supported by Amazon RDS.

There are two main uses for this feature:

Simplified Data Recovery – Amazon RDS gives you multiple options for data recovery including Point in Time Recovery, Read Replica Promotion, and Restore from DB Snapshot. Now that you have the power to change the name and endpoint of a newly created DB Instance, you can have it assume the identity of the original Instance, eliminating the need for you to update your application with the new endpoint.

Simplified Architectural Evolution – As your RDS-powered applications grow in size, scope, and complexity, the role of individual Instances may evolve. You can now rename the instances to keep their names in sync with their new roles.

Here’s how you rename an RDS Database Instance from the AWS Management Console. First you enter the new name:

Then you confirm the change:

— Jeff;


AWS Expansion in Brazil – Elastic Beanstalk, Provisioned IOPS for EBS and RDS

by Jeff Barr | on | in Amazon EC2, Amazon RDS, AWS Elastic Beanstalk |

We launched an AWS Region in Brazil almost a year ago, along with Portuguese and Spanish versions of the AWS Blog.

Today we are adding the following new AWS functionality in the Region:

AWS Elastic Beanstalk – You can now deploy and manage .NET, PHP, Python, Ruby, and Java applications in the AWS Cloud using AWS Elastic Beanstalk. With this new addition to our lineup in Brazil, you can get your application online more quickly and allow Elastic Beanstalk to handle system updates, scaling, monitoring, and lots more.

EBS Provisioned IOPS – You can now create EBS Provisioned IOPS volumes in Brazil, with up to 2000 IOPS per EBS volume. This will give you more control and the ability to create fast, responsive applications on AWS.

RDS Provisioned IOPS – You can now create RDS Database Instances with up to 10,000 Provisioned IOPS (for MySQL and Oracle) or 7,000 (SQL Server). This gives you the power to create fast, responsive database-driven applications on AWS. As part of today’s launch, this is also available in the Asia Pacific (Singapore) Region.

— Jeff;

PS[0] – Check out the AWS Products and Services by Region to find out which services are available in each AWS Region.

PS[1] – This post is also available in Portuguese and Spanish.

The AWS Report – John Smiley Discusses RDS Provisioned IOPS

by Jeff Barr | on | in Amazon RDS |

For this episode of The AWS Report, I interviewed John Smiley, Principal Database Engineer on the Amazon RDS team, to learn more about the new Provisioned IOPS feature for RDS:

We discussed use cases and scalability, and the fact that you can add additional IOPS to a running database while it is running if your needs change. Watch it and let me know what you think!

— Jeff;