Choosing an Instance Class
The compute and memory capacity of a DB Instance is determined by its DB Instance class. As a result, you can increase or decrease the CPU and memory available to a DB Instance by changing its DB Instance class. For information on available DB Instance classes and the compute and memory resources of each, see the Amazon RDS Product Page.
If you're unsure how much CPU you need, we recommend starting with the db.m1.small DB Instance class and monitoring CPU utilization with Amazon's CloudWatch service. If your DB Instance is CPU bound, you can easily upgrade to a larger DB Instance class using the rds-modify-db-instance command. For information on how to monitor the CPU utilization of your DB Instances, see the "DB Instance Monitoring" section of the Amazon RDS Developer Guide.
This example shows how to change the DB Instance class. Here, the 'acme' DB Instance is upgraded to a db.m1.xlarge.
rds-modify-db-instance acme --db-instance-class db.m1.xlarge
Amazon RDS will perform the upgrade during the next maintenance window. If you want the upgrade to be performed now, rather than waiting for the maintenance window, specify the --apply-immediately option. Warning: changing the DB Instance class requires a brief outage for your DB Instance.
rds-modify-db-instance acme --db-instance-class db.m1.xlarge --apply-immediately
For information on displaying and setting the maintenance window for your Amazon RDS DB Instances, see the Amazon RDS ClI Users Guide.
How Much Storage Do I Need to Allocate?
To determine the amount of storage to allocate to a DB Instance, start by estimating the storage needed under typical operating conditions (steady-state). Add to that the storage required for expected growth for 1-3 months, plus any additional storage needed for operations requiring significant amounts of temporary storage (such as batch jobs or large data loads). See the Amazon RDS Customer Data Import Guide for information on loading data into your DB Instance while minimizing temporary storage requirements.
If the data is already in a MySQL database, you'll already have a good measure of the storage requirements. When copying or migrating the data to Amazon RDS, allocate storage sufficient to meet the peak demand of your current database and add enough to allow for expected growth. If the data is in flat files, a rule of thumb for estimating the amount of space needed for your DB Instance is to compute the total size of the flat files and double it. This allows space for secondary indexes and working storage.
For data stored in some other format, determine the amount of space required to store the data as flat files and use the estimating method for flat files. You can monitor the amount of allocated storage space being utilized by your DB Instance with the help of Amazon CloudWatch. If you find that you need additional storage, use the rds-modify-db-instance command to add storage to the DB Instance. In the example below, the total storage for the 'acme' DB Instance is increased to 90GB. The '--apply-immediately' option tells Amazon RDS to do it now rather than wait for a maintenance window. Note that Amazon RDS adds storage without restarting the DB Instance and without interrupting active processes.
rds-modify-db-instance acme --allocated-storage=90 --apply-immediately
Use the rds-describe-db-instances command to see when Amazon RDS has completed the task and use CloudWatch to verify that the additional storage is available.
Warning: RDS cannot remove storage once it has been allocated. The only way to reduce the amount of storage allocated to a DB Instance is to dump the data out of the DB Instance, create a new DB Instance with less storage space, and load the data into the new DB Instance.