Amazon Relational Database Service
User Guide (API Version 2014-10-31)
Did this page help you?  Yes | No |  Tell us about it...
« PreviousNext »
View the PDF for this guide.Go to the AWS Discussion Forum for this product.Go to the Kindle Store to download this guide in Kindle format.

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.

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.

The Medium Utilization and Light Utilization reserved DB instance options are still available for Amazon RDS, but will be discontinued on August 15, 2015. The following table summarizes these offerings.

Medium Utilization

These reserved DB instances are the best option if you plan to use your reserved DB instances a substantial amount of the time, but want either a lower one-time fee or the flexibility to stop paying for your DB instance when you shut it off. This offering type is equivalent to the reserved DB instance offering available before the 2011-12-19 API version of Amazon RDS. Medium Utilization reserved DB instances are a more cost-effective option when you plan to run more than 40 percent of the reserved DB instance term. This option can save you up to 49 percent off of the On-Demand price. With Medium Utilization reserved DB instances, you pay a slightly higher one-time fee than with Light Utilization reserved DB instances, and you receive lower hourly usage rates when you run a DB instance.

Light Utilization

These reserved DB instances are ideal for periodic workloads that run only a couple of hours a day or a few days per week. Using Light Utilization reserved DB instances, you pay a one-time fee followed by a discounted hourly usage fee when your DB instance is running. You can start saving when your instance is running more than 17 percent of the reserved DB instance term, and you can save up to 33 percent off of the On-Demand rates over the entire term of your reserved DB instance.

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.

  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

  • Type the following command at a command prompt:

    PROMPT>rds-describe-reserved-db-instances-offerings  --headers
    

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

This 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

  • Type the following command at a command prompt:

    PROMPT>rds-purchase-reserved-db-instances-offering 649fd0c8-cf6d-47a0-bfa6-060f8e75e95f -i 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

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

  • Call PurchaseReservedDBInstancesOffering with the following parameters:

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

    • ReservedDBInstanceID = myreservationID

    • DBInstanceCount = 1

    Example

    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

  • Type the following command at a command prompt:

    PROMPT>rds-describe-reserved-db-instances --headers
    

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