View a markdown version of this page

Creating a Capacity Reservation - Amazon Relational Database Service

Creating a Capacity Reservation

When you create a Capacity Reservation, you specify a DB instance class, database engine, and one or more Availability Zones in a single AWS Region, along with the amount of capacity to reserve in each Availability Zone. You can create the reservation for immediate use, or schedule it to begin on a future date ahead of a planned event. After the reservation becomes active, you reference it by name or by identifier to place DB instances into the reserved capacity.

Creating a reservation without a start date makes it immediately active. Capacity is reserved and billing begins immediately.

To create a Capacity Reservation
  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, choose Capacity reservations.

  3. Choose Create capacity reservation.

  4. Under Engine options, choose the engine type for your Capacity Reservation.

    Engine types that you can choose for a Capacity Reservation, with PostgreSQL selected.
  5. Under Instance configuration, choose the DB instance configuration.

    The db.r7g.large DB instance class selected.
  6. Under Capacity reservation details, do the following:

    • For DB capacity reservation name, enter a name for the reservation. The name must start with a lowercase letter and can contain lowercase letters, digits, and hyphens, up to 63 characters. It can't end with a hyphen or contain two consecutive hyphens.

    • Under Availability Zones, select one or more Availability Zones in the current Region. Select at least two if you plan to place Multi-AZ DB instances.

    • For Reserved capacity per AZ, enter the number of DB instances to reserve in each Availability Zone.

    • Under Capacity reservation starts, choose Immediately.

    • (Optional) Under Capacity reservation ends, choose No end time to keep the reservation until you cancel it, or At a specific time to set an end date.

    Capacity Reservation details: my-reservation, us-east-1a, 2 per AZ, starts immediately, no end time.
  7. (Optional) Add tags.

  8. Choose Create capacity reservation.

The reservation appears in the list. When its state becomes active, capacity is reserved and you can launch DB instances into it by referencing the reservation by name or by identifier. Creating a reservation does not change the placement of DB instances that don't target it.

Billing for an immediately active reservation starts when you create it. To stop the charges, cancel the reservation when you no longer need it. For more information, see Canceling a Capacity Reservation.

Create an immediately active reservation with the create-db-capacity-reservation command.

aws rds create-db-capacity-reservation \ --db-capacity-reservation-name my-reservation \ --engine postgres \ --db-instance-class db.r7g.large \ --availability-zones us-east-1a \ --capacity-per-availability-zone 3

To reserve capacity for Multi-AZ DB instances, list two or more Availability Zones. The same capacity is reserved in each one.

aws rds create-db-capacity-reservation \ --db-capacity-reservation-name my-multi-az-reservation \ --engine postgres \ --db-instance-class db.r7g.large \ --availability-zones us-east-1a us-east-1b \ --capacity-per-availability-zone 2

Example response:

{ "DBCapacityReservation": { "DBCapacityReservationName": "my-multi-az-reservation", "DBInstanceClass": "db.r7g.large", "Engine": "postgres", "ReservedCapacityPerAvailabilityZone": 2, "AvailableCapacityPerAvailabilityZoneList": [ { "AvailabilityZone": "us-east-1a", "AvailableCapacity": 2 }, { "AvailabilityZone": "us-east-1b", "AvailableCapacity": 2 } ], "CreateDate": "2026-09-21T21:44:50.147000+00:00", "State": "active", "DBCapacityReservationArn": "arn:aws:rds:us-east-1:123456789012:db-capacity-reservation:dbcr-abc123example", "DBCapacityReservationIdentifier": "dbcr-abc123example", "TagList": [] } }

For engines that offer more than one license option, include --license-model so that the reservation matches the DB instances you intend to launch into it. A DB instance whose license model differs from the reservation's can't use the reserved capacity.

aws rds create-db-capacity-reservation \ --db-capacity-reservation-name oracle-reservation \ --engine oracle-se2 \ --db-instance-class db.r7i.large \ --availability-zones us-east-1a \ --capacity-per-availability-zone 2 \ --license-model bring-your-own-license

To create a Capacity Reservation by using the Amazon RDS API, call the CreateDBCapacityReservation operation with the following parameters:

  • DBCapacityReservationName – A name for the reservation. The name must start with a lowercase letter and can contain lowercase letters, digits, and hyphens, up to 63 characters. It can't end with a hyphen, contain two consecutive hyphens, or start with dbcr-.

  • Engine – The database engine to reserve capacity for, for example postgres.

  • DBInstanceClass – The DB instance class to reserve capacity for, for example db.r7g.large.

  • AvailabilityZones – One or more Availability Zones in the current AWS Region.

  • CapacityPerAvailabilityZone – The number of DB instances to reserve in each Availability Zone.

You can also specify the following optional parameters:

  • LicenseModel – The license model, for engines that offer more than one. The license model of a DB instance must match the license model of the reservation.

  • EndDate – The date and time when the reservation expires, in UTC. If you don't specify it, the reservation doesn't expire.

  • Tags – Tags to assign to the Capacity Reservation.

Creating a future-dated Capacity Reservation

To schedule a reservation to begin on a future date, provide a start date and a commitment duration. Amazon RDS assesses the request, and if it can deliver the capacity, moves the reservation to the scheduled state. No charges apply until the start date, when Amazon RDS activates the reservation.

While assessing a request, Amazon RDS might determine that it can support a shorter commitment duration. In that case, Amazon RDS schedules the reservation with the shorter commitment duration, and you are committed to keeping the reservation for a shorter period than you requested. To see the commitment that applies, check CommitmentInfo.CommitmentEndDate in the output of describe-db-capacity-reservations.

Follow the steps in Creating a Capacity Reservation. Under Capacity reservation starts, do the following:

To create a future-dated Capacity Reservation
  1. Choose At a specific time.

  2. Set the Start date and Start time (must be at least 5 days in the future).

  3. Set the Commitment duration (minimum 14 days). This is the period you commit to keep the reservation after it becomes active.

    A future-dated reservation that starts at a specific time with a 14-day commitment.

Complete the remaining steps and choose Create capacity reservation. The reservation is created in the assessing state and moves to scheduled after Amazon RDS accepts the request.

Add --start-date and --commitment-duration to the create-db-capacity-reservation command. --commitment-duration is specified in seconds (for example, 1209600 for 14 days).

aws rds create-db-capacity-reservation \ --db-capacity-reservation-name peak-reservation \ --engine postgres \ --db-instance-class db.r7g.large \ --availability-zones us-east-1a \ --capacity-per-availability-zone 16 \ --start-date 2026-11-01T00:00:00Z \ --commitment-duration 1209600

Example response:

{ "DBCapacityReservation": { "DBCapacityReservationName": "peak-reservation", "DBInstanceClass": "db.r7g.large", "Engine": "postgres", "ReservedCapacityPerAvailabilityZone": 16, "StartDate": "2026-11-01T00:00:00Z", "CommitmentInfo": { "CommittedCapacityPerAvailabilityZone": 16, "CommitmentEndDate": "2026-11-15T00:00:00Z" }, "CreateDate": "2026-09-21T21:44:50.147000+00:00", "State": "assessing", "DBCapacityReservationArn": "arn:aws:rds:us-east-1:123456789012:db-capacity-reservation:dbcr-def456example", "DBCapacityReservationIdentifier": "dbcr-def456example", "TagList": [] } }
Note

Omitting --start-date and --commitment-duration creates an immediately active reservation. The two future-dated parameters are used together.

To create a future-dated Capacity Reservation by using the Amazon RDS API, call the CreateDBCapacityReservation operation with the parameters for an immediately active reservation, and with the following parameters:

  • StartDate – The date and time when the reservation starts, in UTC. It must be 5–120 days in the future.

  • CommitmentDuration – The length of the commitment, in seconds. The minimum is 1209600 (14 days). For the X family, the minimum is 7257600 (12 weeks).