by changing or adding nodes to your existing cluster. If you change only the number of nodes, queries are temporarily paused and connections are held open, if possible. Typically, elastic resize takes 10–15 minutes. During the resize operation, the cluster is read-only.
We recommend using elastic resize whenever possible, because it completes much more quickly than classic resize.
• Classic resize – Use it to change the node type, number of nodes, or both. Classic resize provisions a new cluster and copies the data from the source cluster to the new cluster. Choose this option only when you are resizing to a configuration that isn't available through elastic resize, because it takes considerably more time to complete. An example of when to use it is when resizing to or from a single-node cluster. During the resize operation, the cluster is read-only. Classic resize can take several hours to several days, or longer, depending on the amount of data to transfer and the difference in cluster size and computing resources.
If your configuration warrants performing a classic resize, you can minimize production impact by making a copy of your existing cluster and subsequently resizing the copy. Snapshot, restore, and resize (p. 54) describes the steps.
You can resize (both elastic resize and classic resize) your cluster on a schedule. When you use the new Amazon Redshift console, you can set up a schedule to resize your cluster. For more information, see Resizing a cluster (p. 87). You can also use the AWS CLI or Amazon Redshift API operations to schedule a resize. For more information, see create-scheduled-action in the AWS CLI Command Reference or CreateScheduledAction in the Amazon Redshift API Reference.
Topics
• Elastic resize (p. 50)
• Classic resize (p. 53)
• Snapshot, restore, and resize (p. 54)
• Details of resizing a cluster (p. 55)
Elastic resize
Elastic resize is the fastest method to resize a cluster. You can use elastic resize to add or remove nodes and change node types.
When a cluster is resized using elastic resize with the same node type, it automatically redistributes the data to the new nodes. Because it doesn't create a new cluster in this scenario, the elastic resize operation completes quickly, usually in a few minutes. You might notice a slight increase in execution time for some queries while the data is redistributed in the background. An elastic resize operation occurs in the following stages:
1. Elastic resize takes a cluster snapshot.
The snapshot that elastic resize creates includes no-backup tables (p. 325). If your cluster doesn't have a recent snapshot because you disabled automated snapshots, the backup operation takes longer. To minimize the time before the resize operation begins, we recommend that you enable automated snapshots or create a manual snapshot before starting an elastic resize. When you start an elastic resize and a snapshot operation is currently in progress, then elastic resize might fail if the snapshot operation doesn't complete within a few minutes. For more information, see Amazon Redshift snapshots (p. 322).
2. The cluster is temporarily unavailable while elastic resize migrates cluster metadata.
This stage is very short, just a few minutes at most. Amazon Redshift holds session connections and queries remain queued. Some sessions and queries might time out.
Resizing clusters
3. Session connections are reinstated and queries resume.
4. Elastic resize redistributes data to the node slices in the background.
The cluster is available for read and write operations, but some queries might take longer to run.
When a cluster is resized using elastic resize to change the node type, a snapshot is created. A new cluster is provisioned for you with the latest data from the snapshot. The cluster is temporarily unavailable for writes when the data is transferred to the new cluster. It is available for reads. The new cluster is populated in the background. After the new cluster is fully populated, queries should reach optimal performance. When the resize process nears completion, Amazon Redshift updates the endpoint of the new cluster, and all connections to the original cluster are terminated.
After the resize completes, Amazon Redshift sends an event notification. You can connect to the new cluster and resume running read and write queries.
If you have reserved nodes, for example DS2 reserved nodes, you can upgrade to RA3 reserved nodes.
You can do this when you use the console to restore from a snapshot or to perform an elastic resize. You can use the console to guide you through this process. For more information about upgrading to RA3 nodes, see Upgrading to RA3 node types.
NoteA new console is available for Amazon Redshift. Choose either the New console or the Original console instructions based on the console that you are using. The New console instructions are open by default.
New console
To monitor the progress of a resize operation using the Amazon Redshift console, choose CLUSTERS, then choose the cluster being resized to see the details.
Original console
To monitor the progress of an elastic resize operation using the Amazon Redshift console, choose the Status tab on the cluster details page.
Resizing clusters
You can't use elastic resize on single-node clusters.
To run an elastic resize on a cluster that is transferring data from a shared snapshot, at least one backup must be available for the cluster. You can view your backups on the Amazon Redshift console snapshots list, the describe-cluster-snapshots CLI command, or the DescribeClusterSnapshots API operation.
Elastic resize doesn't sort tables or reclaim disk space, so it isn't a substitute for a vacuum operation. A classic resize copies tables to a new cluster, so it can reduce the need to vacuum. For more information, see Vacuuming tables.
Elastic resize has the following constraints:
• Elastic resize is available only for clusters that use the EC2-VPC platform. For more information, see Use EC2-VPC when you create your cluster (p. 35).
• Make sure that your new node configuration has enough storage for existing data. Even when you add nodes, your new configuration might not have enough storage because of the way that data is redistributed.
• The possible configurations of node number and type that you can resize to is determined by the number of nodes in the original cluster and the target node type of the resized cluster. To determine the possible configurations available, you can use the console. Or you can use the describe-node-configuration-options AWS CLI command with the action-type resize-cluster option. For more information about the resizing using the Amazon Redshift console, see Resizing a cluster (p. 87).
The following example CLI command describes the configuration options available. In this example, the cluster named mycluster is a dc2.large 8-node cluster.
aws redshift describe-node-configuration-options --cluster-identifier mycluster --region eu-west-1 --action-type resize-cluster
This command returns an option list with recommended node types, number of nodes, and disk utilization for each option. The configurations returned can vary based on the specific input cluster.
You can choose one of the returned configurations when you specify the options of the resize-cluster CLI command.
• Elastic resize has limits on the nodes that you can add to a cluster. For example, a dc2 cluster supports elastic resize up to double the number of nodes. To illustrate, you can add a node to a 4-node
dc2.8xlarge cluster to make it a 5-node cluster, or add more nodes until you reach 8.
With some ra3 node types, you can increase the number of nodes up to four times the existing count.
Specifically, suppose that your cluster consists of ra3.4xlarge or ra3.16xlarge nodes. You can then use elastic resize to increase the number of nodes in an 8-node cluster to 32. Or you can pick a value below the limit. If your cluster has ra3.xlplus nodes, the limit is double.
All ra3 node types support a decrease in the number of nodes to a quarter of the existing count. For example, you can decrease the size of a cluster with ra3.4xlarge nodes from 12 nodes to 3, or to a number above the minimum.
The following table lists growth and reduction limits for each node type that supports elastic resize.
Node type Growth limit Reduction limit
ra3.16xlarge 4x (from 4 to 16 nodes, for
example) To one-quarter of the number
(from 16 to 4 nodes, for example)
ra3.4xlarge 4x To one-quarter of the number
Resizing clusters
Node type Growth limit Reduction limit
ra3.xlplus 2x (from 4 to 8 nodes, for
example) To one-quarter of the number
dc2.8xlarge 2x To one-half the number (from
16 to 8 nodes, for example)
dc2.large 2x To one-half the number
ds2.8xlarge 2x To one-half the number
ds2.xlarge 2x To one-half the number