I want to make sure that data I store in Amazon Elasticsearch Service (Amazon ES) resources is protected against accidental deletion, application or hardware failures, or outages. What are some best practices I should keep in mind?

To improve the fault-tolerance of your Amazon ES domain, keep the following best practices in mind:

  • Take regular index snapshots.
  • Monitor the status of your Amazon ES resources.
  • Understand and maintain Amazon ES service limits.
  • Use more than two nodes in a domain.
  • Enable zone awareness for your domain.
  • Avoid using t2 instance types in production environments.
  • Use dedicated master nodes.

Take regular index snapshots

  • Configure automatic daily snapshots as a backup solution for your cluster. To restore your cluster, a recent snapshot will expedite the process.
  • Take manual index snapshots to create point-in-time backups of the data in your Amazon ES domain, and then store them in an Amazon Simple Storage Service (Amazon S3) bucket on your account. Manual index snapshots can also help you migrate data between Amazon ES domains.

Monitor the status of your Amazon ES resources

Use more than two nodes in a domain

  • Use more than two nodes to avoid an unintentionally partitioned network (split brain).
  • Have a replica for each index to avoid potential data loss.
  • If you're not using a dedicated master node, use three or more nodes.

Enable zone awareness for your domain

Zone awareness allocates nodes and replica index shards that belong to an Elasticsearch cluster across multiple Availability Zones in the same Region.

Note: You must allocate at least one replica shard per Availability Zone for zone awareness to be effective.

Avoid using t2 instance types in production environments

The t2 instance types aren't optimized for use with Amazon ES in a production environment. For production environments, use m3 instance types or larger. If you decide to use t2 instance types, be sure to closely monitor the CPU credits, CPU usage, memory usage, and general operational stability of your instances. Scale up or out whenever necessary.

Use dedicated master nodes

Dedicated master nodes can help guard against issues caused by overloaded nodes. Use dedicated master nodes when:

  • Your domain has five or more nodes
  • Your index mapping is complex, with many fields defined across types and indices

Did this page help you? Yes | No

Back to the AWS Support Knowledge Center

Need help? Visit the AWS Support Center

Published: 2016-10-20

Updated: 2018-06-06