Menu
Amazon Relational Database Service
User Guide (API Version 2014-10-31)

Working with Reserved DB Instances

Reserved DB instances let you reserve a DB instance for a one- or three-year term and in turn receive a significant discount on the hourly charge for instances that are covered by the reservation. You can use the command line tools, the API, or the AWS Management Console to list and purchase available reserved DB instance offerings.

When you purchase a reserved instance in Amazon RDS, you purchase a commitment to getting a discounted rate on a specific instance type for the duration of the reserved instance. To use an Amazon RDS reserved instance, you need to create a DB instance just like you would for an on-demand instance. The DB instance you create must match the specifications of the reserved instance. If the specifications of the DB instance you create matches an existing reserved instance for your account, you are billed at the discounted rate offered for the reserved instance; otherwise, the DB instance is billed at an on-demand rate.

Reserved DB instances are available in three varieties—No Upfront, Partial Upfront, and All Upfront—that let you optimize your Amazon RDS costs based on your expected usage. For more information about reserved DB instance types, see Amazon RDS Reserved Instances.

No Upfront

This option provides access to a reserved DB instance without requiring an upfront payment. Your No Upfront reserved DB instance will bill a discounted hourly rate for every hour within the term, regardless of usage, and no upfront payment is required. This option is only available as a one-year reservation.

Partial Upfront

This option requires a part of the reserved DB instance to be paid upfront. The remaining hours in the term are billed at a discounted hourly rate, regardless of usage. This option is the replacement for the previous Heavy Utilization option.

All Upfront

Full payment is made at the start of the term, with no other costs incurred for the remainder of the term regardless of the number of hours used.

Remember that discounted usage fees for reserved DB instance purchases are tied to instance type and region. Also, you can move reserved DB instances from an EC2-Classic (non-VPC) instance into an Amazon Virtual Private Cloud (Amazon VPC) without additional charge.

If you shut down a running DB instance on which you have been getting a discounted rate as a result of a reserved DB instance purchase, and the term of the reserved DB instance has not yet expired, you will continue to get the discounted rate if you launch another DB instance with the same specifications during the term. Your upfront payment for a reserved DB instance will reserve the resources for your use. Because these resources are reserved for you, you will be billed for the resources regardless of whether you use them.

Getting Information About Available Reserved DB Instance Offerings

Before you purchase a reserved DB instance, you can get pricing and information about available reserved DB instance offerings.

The following example shows how to do so.

AWS Management Console

To get pricing and information about available reserved DB instances

  1. Sign in to the AWS Management Console and open the Amazon RDS console at https://console.aws.amazon.com/rds/.

  2. In the navigation pane, click the Reserved DB Purchases link.

  3. Choose Purchase Reserved DB Instance.

  4. For Product Description, choose the DB engine and licensing type.

  5. For DB Instance Class, choose the DB instance class.

  6. For Multi-AZ Deployment, choose whether or not you want a Multi-AZ deployment.

    Note

    Reserved Amazon Aurora instances will always have the Multi-AZ Deployment option set to No. When you create an Amazon Aurora DB cluster from your reserved instance, the cluster will automatically be created as Multi-AZ.

  7. For Term, choose the length of time you want the DB instance reserved.

  8. For Offering Type, choose the offering type.

  9. Information is displayed after you select the offering type. When you have selected the reserved DB instance you want, choose Continue.

    
                                Purchase reserved DB instance console step 1
  10. The summation screen shows you the instance information and cost. Click the X in the upper-right corner of the page to avoid incurring any charges.

    
                                Purchase reserved DB instance console step 2

CLI

To get information about reserved DB instances, use the AWS CLI command describe-reserved-db-instances-offerings.

Copy
aws rds describe-reserved-db-instances-offerings

This call returns output similar to the following:

Copy
OFFERING OfferingId Class Multi-AZ Duration Fixed Price Usage Price Description Offering Type OFFERING 438012d3-4052-4cc7-b2e3-8d3372e0e706 db.m1.large y 1y 1820.00 USD 0.368 USD mysql Partial Upfront OFFERING 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f db.m1.small n 1y 227.50 USD 0.046 USD mysql Partial Upfront OFFERING 123456cd-ab1c-47a0-bfa6-12345667232f db.m1.small n 1y 162.00 USD 0.00 USD mysql All Upfront Recurring Charges: Amount Currency Frequency Recurring Charges: 0.123 USD Hourly OFFERING 123456cd-ab1c-37a0-bfa6-12345667232d db.m1.large y 1y 700.00 USD 0.00 USD mysql All Upfront Recurring Charges: Amount Currency Frequency Recurring Charges: 1.25 USD Hourly OFFERING 123456cd-ab1c-17d0-bfa6-12345667234e db.m1.xlarge n 1y 4242.00 USD 2.42 USD mysql No Upfront

API

To get information about available reserved DB Instances, call the Amazon RDS API function DescribeReservedDBInstancesOfferings.

Example

Copy
https://rds.us-east-1.amazonaws.com/ ?Action=DescribeReservedDBInstancesOfferings &ReservedDBInstancesOfferingId=438012d3-4052-4cc7-b2e3-8d3372e0e706 &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-09-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140411/us-east-1/rds/aws4_request &X-Amz-Date=20140411T203327Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=545f04acffeb4b80d2e778526b1c9da79d0b3097151c24f28e83e851d65422e2

This call returns output similar to the following:

Copy
<DescribeReservedDBInstancesOfferingsResponse xmlns="http://rds.amazonaws.com/doc/2014-10-31/"> <DescribeReservedDBInstancesOfferingsResult> <ReservedDBInstancesOfferings> <ReservedDBInstancesOffering> <Duration>31536000</Duration> <OfferingType>Partial Upfront</OfferingType> <CurrencyCode>USD</CurrencyCode> <RecurringCharges/> <FixedPrice>1820.0</FixedPrice> <ProductDescription>mysql</ProductDescription> <UsagePrice>0.368</UsagePrice> <MultiAZ>true</MultiAZ> <ReservedDBInstancesOfferingId>438012d3-4052-4cc7-b2e3-8d3372e0e706</ReservedDBInstancesOfferingId> <DBInstanceClass>db.m1.large</DBInstanceClass> </ReservedDBInstancesOffering> <ReservedDBInstancesOffering> <Duration>31536000</Duration> <OfferingType>Partial Upfront</OfferingType> <CurrencyCode>USD</CurrencyCode> <RecurringCharges/> <FixedPrice>227.5</FixedPrice> <ProductDescription>mysql</ProductDescription> <UsagePrice>0.046</UsagePrice> <MultiAZ>false</MultiAZ> <ReservedDBInstancesOfferingId>649fd0c8-cf6d-47a0-bfa6-060f8e75e95f</ReservedDBInstancesOfferingId> <DBInstanceClass>db.m1.small</DBInstanceClass> </ReservedDBInstancesOffering> <ReservedDBInstancesOffering> <Duration>31536000</Duration> <OfferingType>All Upfront</OfferingType> <CurrencyCode>USD</CurrencyCode> <RecurringCharges> <RecurringCharge> <RecurringChargeFrequency>Hourly</RecurringChargeFrequency> <RecurringChargeAmount>0.123</RecurringChargeAmount> </RecurringCharge> </RecurringCharges> <FixedPrice>162.0</FixedPrice> <ProductDescription>mysql</ProductDescription> <UsagePrice>0.0</UsagePrice> <MultiAZ>false</MultiAZ> <ReservedDBInstancesOfferingId>TEMP-DELETE-1</ReservedDBInstancesOfferingId> <DBInstanceClass>db.m1.small</DBInstanceClass> </ReservedDBInstancesOffering> <ReservedDBInstancesOffering> <Duration>31536000</Duration> <OfferingType>All Upfront</OfferingType> <CurrencyCode>USD</CurrencyCode> <RecurringCharges> <RecurringCharge> <RecurringChargeFrequency>Hourly</RecurringChargeFrequency> <RecurringChargeAmount>1.25</RecurringChargeAmount> </RecurringCharge> </RecurringCharges> <FixedPrice>700.0</FixedPrice> <ProductDescription>mysql</ProductDescription> <UsagePrice>0.0</UsagePrice> <MultiAZ>true</MultiAZ> <ReservedDBInstancesOfferingId>TEMP-DELETE-2</ReservedDBInstancesOfferingId> <DBInstanceClass>db.m1.large</DBInstanceClass> </ReservedDBInstancesOffering> <ReservedDBInstancesOffering> <Duration>31536000</Duration> <OfferingType>No Upfront</OfferingType> <CurrencyCode>USD</CurrencyCode> <RecurringCharges/> <FixedPrice>4242.0</FixedPrice> <ProductDescription>mysql</ProductDescription> <UsagePrice>2.42</UsagePrice> <MultiAZ>false</MultiAZ> <ReservedDBInstancesOfferingId>TEMP-DELETE-3</ReservedDBInstancesOfferingId> <DBInstanceClass>db.m1.xlarge</DBInstanceClass> </ReservedDBInstancesOffering> </ReservedDBInstancesOfferings> </DescribeReservedDBInstancesOfferingsResult> <ResponseMetadata> <RequestId>5e4ec40b-2978-11e1-9e6d-771388d6ed6b</RequestId> </ResponseMetadata> </DescribeReservedDBInstancesOfferingsResponse>

Purchasing a Reserved DB Instance

The following example shows how to purchase a reserved DB instance offering.

Important

Following the examples in this section will incur charges on your AWS account.

AWS Management Console

The following example shows purchasing a specific reserved DB instance offering, 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f, with a reserved DB instance ID of myreservationID.

To purchase a reserved DB instance

  1. Sign in to the AWS Management Console and open the Amazon RDS console at https://console.aws.amazon.com/rds/.

  2. In the Navigation pane, click the Reserved DB Instances link.

  3. Choose Purchase Reserved DB Instance.

  4. For Product Description, choose the DB engine type.

  5. For DB Instance Class, choose the DB instance class.

  6. For Multi-AZ Deployment, choose whether or not you want a Multi-AZ deployment.

  7. For Term, choose the length of time you want the DB instance reserved.

  8. For Offering Type, choose the offering type.

  9. (Optional.) To purchase or repurchase a specific reserved DB instance, type the specific reserved DB instance ID for Reserved DB ID.

  10. Choose Continue.

    The Purchase Reserved DB Instance dialog box appears, showing a summary of the reserved DB instance attributes that you've selected and the payment due.

  11. To proceed and purchase the reserved DB instance, choose Yes, Purchase.

CLI

To purchase a reserved DB instance, use the AWS CLI command purchase-reserved-db-instances-offering.

This example shows purchasing a specific reserved DB instance offering, 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f, with a reserved DB instance ID of myreservationID.

For Linux, OS X, or Unix:

Copy
aws rds purchase-reserved-db-instances-offering \ --reserved-db-instances-offering-id 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f \ --reserved-db-instance-id myreservationID

For Windows:

Copy
aws rds purchase-reserved-db-instances-offering ^ --reserved-db-instances-offering-id 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f ^ --reserved-db-instance-id myreservationID

The command returns output similar to the following:

Copy
RESERVATION ReservationId Class Multi-AZ Start Time Duration Fixed Price Usage Price Count State Description Offering Type RESERVATION myreservationid db.m1.small y 2011-12-19T00:30:23.247Z 1y 455.00 USD 0.092 USD 1 payment-pending mysql Partial Upfront

API

To purchase a reserved DB instance, call the Amazon RDS API function PurchaseReservedDBInstancesOffering with the following parameters:

  • ReservedDBInstancesOfferingId = 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f

  • ReservedDBInstanceID = myreservationID

  • DBInstanceCount = 1

Example

The following example shows purchasing a specific reserved DB instance offering, 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f, with a reserved DB instance ID of myreservationID.

Copy
https://rds.us-east-1.amazonaws.com/ ?Action=PurchaseReservedDBInstancesOffering &ReservedDBInstanceId=myreservationID &ReservedDBInstancesOfferingId=438012d3-4052-4cc7-b2e3-8d3372e0e706 &DBInstanceCount=10 &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-09-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140415/us-east-1/rds/aws4_request &X-Amz-Date=20140415T232655Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=c2ac761e8c8f54a8c0727f5a87ad0a766fbb0024510b9aa34ea6d1f7df52fb11

This call returns output similar to the following:

Copy
<PurchaseReservedDBInstancesOfferingResponse xmlns="http://rds.amazonaws.com/doc/2014-10-31/"> <PurchaseReservedDBInstancesOfferingResult> <ReservedDBInstance> <OfferingType>Partial Upfront</OfferingType> <CurrencyCode>USD</CurrencyCode> <RecurringCharges/> <ProductDescription>mysql</ProductDescription> <ReservedDBInstancesOfferingId>649fd0c8-cf6d-47a0-bfa6-060f8e75e95f</ReservedDBInstancesOfferingId> <MultiAZ>true</MultiAZ> <State>payment-pending</State> <ReservedDBInstanceId>myreservationID</ReservedDBInstanceId> <DBInstanceCount>10</DBInstanceCount> <StartTime>2011-12-18T23:24:56.577Z</StartTime> <Duration>31536000</Duration> <FixedPrice>123.0</FixedPrice> <UsagePrice>0.123</UsagePrice> <DBInstanceClass>db.m1.small</DBInstanceClass> </ReservedDBInstance> </PurchaseReservedDBInstancesOfferingResult> <ResponseMetadata> <RequestId>7f099901-29cf-11e1-bd06-6fe008f046c3</RequestId> </ResponseMetadata> </PurchaseReservedDBInstancesOfferingResponse>

Getting Information About Your Account's Reserved DB Instances

You can get information about reserved DB instances for your AWS account as described following.

AWS Management Console

To get information about reserved DB instances for your AWS account

  1. Sign in to the AWS Management Console and open the Amazon RDS console at https://console.aws.amazon.com/rds/.

  2. In the Navigation pane, click the Reserved DB Instances link.

    The reserved DB instances for your account appear in the My Reserved DB Instances list. You can choose any of the reserved DB instances in the list to see detailed information about that reserved DB instance in the detail pane at the bottom of the console.

CLI

To get information about reserved DB instances for your AWS account, use the AWS CLI command describe-reserved-db-instances.

Copy
aws rds describe-reserved-db-instances

This command should return output similar to the following:

Copy
RESERVATION ReservationId Class Multi-AZ Start Time Duration Fixed Price Usage Price Count State Description Offering Type RESERVATION ki-real-ri-test5 db.m1.small y 2011-12-09T23:37:44.720Z 1y 455.00 USD 0.092 USD 1 retired mysql Partial Upfront

API

To get information about reserved DB instances for your AWS account, call the Amazon RDS API function DescribeReservedDBInstances.

Example

Copy
https://rds.us-west-2.amazonaws.com/ ?Action=DescribeReservedDBInstances &ReservedDBInstanceId=customerSpecifiedID &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-09-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140420/us-west-2/rds/aws4_request &X-Amz-Date=20140420T162211Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=3312d17a4c43bcd209bc22a0778dd23e73f8434254abbd7ac53b89ade3dae88e

The API returns output similar to the following:

Copy
<DescribeReservedDBInstancesResponse xmlns="http://rds.amazonaws.com/doc/2014-10-31/"> <DescribeReservedDBInstancesResult> <ReservedDBInstances> <ReservedDBInstance> <OfferingType>Partial Upfront</OfferingType> <CurrencyCode>USD</CurrencyCode> <RecurringCharges/> <ProductDescription>mysql</ProductDescription> <ReservedDBInstancesOfferingId>649fd0c8-cf6d-47a0-bfa6-060f8e75e95f</ReservedDBInstancesOfferingId> <MultiAZ>false</MultiAZ> <State>payment-failed</State> <ReservedDBInstanceId>myreservationid</ReservedDBInstanceId> <DBInstanceCount>1</DBInstanceCount> <StartTime>2010-12-15T00:25:14.131Z</StartTime> <Duration>31536000</Duration> <FixedPrice>227.5</FixedPrice> <UsagePrice>0.046</UsagePrice> <DBInstanceClass>db.m1.small</DBInstanceClass> </ReservedDBInstance> <ReservedDBInstance> <OfferingType>Partial Upfront</OfferingType> <CurrencyCode>USD</CurrencyCode> <RecurringCharges/> <ProductDescription>mysql</ProductDescription> <ReservedDBInstancesOfferingId>649fd0c8-cf6d-47a0-bfa6-060f8e75e95f</ReservedDBInstancesOfferingId> <MultiAZ>false</MultiAZ> <State>payment-failed</State> <ReservedDBInstanceId>myreservationid2</ReservedDBInstanceId> <DBInstanceCount>1</DBInstanceCount> <StartTime>2010-12-15T01:07:22.275Z</StartTime> <Duration>31536000</Duration> <FixedPrice>227.5</FixedPrice> <UsagePrice>0.046</UsagePrice> <DBInstanceClass>db.m1.small</DBInstanceClass> </ReservedDBInstance> </ReservedDBInstances> </DescribeReservedDBInstancesResult> <ResponseMetadata> <RequestId>23400d50-2978-11e1-9e6d-771388d6ed6b</RequestId> </ResponseMetadata> </DescribeReservedDBInstancesResponse>

Cancelling a Reserved Instance

The terms for a reserved instance involve a one-year or three-year commitment. The process for deleting a reserved instance is the same as for any other DB instance.

If you shut down a running DB instance on which you have been getting a discounted rate as a result of a reserved DB instance purchase, and the term of the reserved DB instance has not yet expired, you will continue to get the discounted rate if you launch another DB instance with the same specifications during the term. Your upfront payment for a reserved DB instance will reserve the resources for your use. Because these resources are reserved for you, you will be billed for the resources regardless of whether you use them.

Related Topics