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.

Example

aws rds describe-reserved-db-instances-offerings

This call returns output similar to the following:

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

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:

<DescribeReservedDBInstancesOfferingsResponse xmlns="http://rds.amazonaws.com/doc/2014-09-01/">
  <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.

Example

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:

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

For Windows:

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:

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.

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:

<PurchaseReservedDBInstancesOfferingResponse xmlns="http://rds.amazonaws.com/doc/2014-09-01/">
  <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.

Example

aws rds describe-reserved-db-instances

This command should return output similar to the following:

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

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:

<DescribeReservedDBInstancesResponse xmlns="http://rds.amazonaws.com/doc/2014-09-01/">
  <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.