I am planning to use AWS Open Search and some AWS Open Search ingestion (AWS DataPrepper flavour).
So far we have been using aws_elasticsearch_domain terraform resource to create the AWS Open Search cluster and that works well.
However I notice there is also an aws_opensearch_domain terraform resource available. At simple surface way, the differences are mostly the naming of the attributes as the documentation states:
OpenSearch Domain configurations are similar in many ways to Elasticsearch Domain configurations. However, there are important differences including these:
- OpenSearch has
engine_versionwhile Elasticsearch haselasticsearch_version- Versions are specified differently - e.g.,
Elasticsearch_7.10with OpenSearch vs.7.10for Elasticsearch.- instance_type argument values end in
searchfor OpenSearch vs.elasticsearchfor Elasticsearch (e.g.,t2.micro.searchvs.t2.micro.elasticsearch).- The AWS-managed service-linked role for OpenSearch is called
AWSServiceRoleForAmazonOpenSearchServiceinstead ofAWSServiceRoleForAmazonElasticsearchServicefor Elasticsearch.
What is the difference between use one or another when it comes to working with OpenSearch?
The new Open Search provider is created for a reason right?