replication count. However, deploying additional instances takes some time. If you know in advance
that you will need additional capacity—for example, before a big launch or announcement—add replicas
ahead of time to ensure that your search domain is ready to handle the load.
• Improve fault tolerance. Increasing the desired replication count also improves the domain's
fault-tolerance—if there's a problem with one of the replicas, the others will continue to handle requests
while it is being recovered. However, note that the replicas reside in the same Availability Zone. If you
need to ensure availability of your domain in the event of an Availability Zone service disruption, you
should enable the MultiAZ option. For more information, see Configuring Availability Options (p.42).
When you set the desired instance type, desired number of replicas, or desired partition count, Amazon
CloudSearch scales your domain as necessary, but will never scale the domain to an instance type that's
smaller than the desired type, use fewer replicas than the desired number of replicas, or reduce the
partition count below the desired partition count.
You can change your scaling options at any time. If your need for additional capacity is temporary, you
can prescale your domain by setting the scaling options and then revert the changes after your volume
of uploads or queries returns to your domain's steady state.When you make changes, you need to
re-index your domain, which can take some time for the changes to take effect. How long it takes to
re-index depends on the amount of data in your index.You can monitor the domain status to determine
when indexing is complete—the status changes from PROCESSING to ACTIVE.
• Choosing Scaling Options in Amazon CloudSearch (p.40)
• Configuring Scaling Options through the Amazon CloudSearch Console (p.41)
• Configuring Scaling Options through the AWS CLI (p.41)
• Configuring Scaling Options through the AWS SDK (p.42)
Choosing Scaling Options in Amazon CloudSearch
When you set scaling options for a domain, you make a trade-off between cost and performance—changing
the desired instance type, replication count, and partition count can significantly impact the cost of running
To determine which instance type to select to handle your upload traffic, monitor your upload performance
as you increase the upload rate. If you start seeing a large number of 504 or 507 errors before you reach
your desired upload rate, select a larger instance type. If you are already on the largest instance type,
you can increase the number of partitions to further increase upload capacity.
For datasets of less than 1 GB of data or fewer than one million 1 KB documents, a small search instance
should be sufficient.To upload data sets between 1 GB and 8 GB, we recommend setting the desired
instance type to search.m3.large before you begin uploading. For datasets between 8 GB and 16 GB,
start with a search.m3.xlarge. For datasets between 16 GB and 32 GB, start with a
search.m3.2xlarge. If you have more than 32 GB to upload, select the search.m3.2xlarge instance
type and increase the desired partition count to accommodate your data set. Each partition can contain
up to 32 GB of data. Submit a Service Increase Limit Request if you need more upload capacity or have
more than 500 GB to index.
To determine how many replicas you need to handle a given query volume, do some testing using a
sample of your expected queries at the rate you need to support. Keep in mind that query performance
depends heavily on the type of queries being processed. In general, searches that return a large volume
of hits and complex structured queries are more resource intensive than simple text queries that match
a small percentage of the documents in your search domain. If you expect a high volume of complex
queries, choose a larger desired instance type and increase the desired replication count.
API Version 2013-01-01
Amazon CloudSearch Developer Guide
Choosing Scaling Options