Elastic Cloud and Amazon OpenSearch Service (formerly known as AWS Elasticsearch) are the most common SaaS search solutions. Both are based on Elasticsearch and both are good options, but which one is the right one for your business? This article will help you to find out.
In the market for a SaaS search solution? Have you narrowed down your choices to Elastic Cloud and Amazon OpenSearch Service (formerly Amazon Elasticsearch Service), but you’re finding it difficult to select a final winner? You’re not alone. Many have found themselves stuck at these crossroads, unable to find which has the edge over the other. In this post, we’ll explain some of the pros and cons to each search solution. By the end, hopefully you’ll gain enough insight to choose your ideal search solution.
OpenSearch is an open source search solution licensed under Apache 2.0 (ALv2). OpenSearch is a fork of Elasticsearch version 7.10.2, the last version of Elasticsearch available under the Apache 2.0 license. OpenSearch Dashboards is the GUI for OpenSearch which was forked from Kibana version 7.10.2 as well. OpenSearch is available as a managed service by AWS (on AWS of course), and on other clouds through other vendors.
Elasticsearch was formerly an open source product, but has since switched to using their own Elastic license and the SSPL. The base code (excluding enterprise features) is still downloadable and usable by your everyday user but there are a lot more restrictions in place to prevent usage by SaaS providers. Thus, Elastic Cloud is the only managed Elasticsearch service nowadays.
Elastic Cloud is the fully managed Elastic stack SaaS solution, hosted directly by Elastic themselves. It offers a multi-cloud, multi-region solution, giving you your choice between AWS, Azure or GCP. The Elastic stack gives you access to a wide breadth of software solutions, all powered by Elasticsearch and managed in a single interface via Kibana (REST API management is available as well).
Let’s dive right into a comparison between both providers:
*Though not a true auto scaling feature, OpenSearch does offer auto-tune for memory related suggestions for your clusters.
**Support covers mostly AWS infrastructure, but the depth of support depends on the account's AWS Support level.
***CloudWatch monitoring only. For a more in-depth, detailed monitoring solution, see our Pulse solution
Can you notice a pattern in the table above? Elastic Cloud clearly offers a lot of additional software/features. There is a lot more bundled together in one seamless package (note that some features are only available to the higher end licenses). OpenSearch, while still fully-featured as a search solution, does not bundle nearly as many additional features. In some cases this is a good thing. Why pay for these additional features when all you need is basic search engine functionality? OpenSearch tends to be a lot more cost-effective because of this less-is-more approach. It can be much more suitable for a logs/metrics use-case while Elastic Cloud can be a better platform for more elaborate, advanced use-cases.
That being said, all of the additional features provided by Elastic Cloud can be done with an OpenSearch instance (aside from things like multi-cloud support), it just requires the use of plugins and/or additional applications outside of the OpenSearch realm. The beauty of Elastic Cloud is, all of this functionality is bundled together in one simple to use solution. Additionally there are quite a few of missing/disabled levers and knobs in Amazon OpenSearch, which often can be tuned by opening a ticket to AWS Support - but there's no direct control over them. A lot of the system logic is concealed from the end-user, thus you do not have as much control. Elastic Cloud hides/blocks much less and allows much more flexibility to change advanced configuration (though future versions of Elasticsearch may hide some of this functionality as well).
Elastic Cloud supports several templates for data tiering - hence supporting hot / warm / cold architectures. For large workloads, this is extremely important since data that is less frequently queried (e.g. older data) can be kept on cheaper or more densely populated nodes, thus reducing costs significantly.
The Amazon OpenSearch service does not support this - you can only use one type of nodes and storage (SSD vs EBS) for your entire cluster.
However, a "frozen" tier exists on both solutions, and works pretty much in the same way. Elastic Cloud offers a "frozen tier" where search is executed on index snapshots (aka backups) stored on S3. Amazon OpenSearch has the same offering but there it's called "UltraWarm". In both cases, searching this very cold data storage will not be as fast, and it's mostly suitable for older time-series data that is never updated after ingestion.
Both services offer blue/green deployment schemes, where upgrading a cluster spins up a new cluster and migrates all your data into it.
One place where OpenSearch shines is its interoperability with AWS services such as Kinesis, Firehose, and many more. A lot of these features are simple plug and play integrations. Additionally its auto-tune feature allows you to optimize memory usage by auto adjusting caches. If your organization already uses AWS as its cloud provider of choice, you may want to take this ease of use into consideration.
Elastic has a wealth of documentation, segmented into easily digestible sections. The documentation is versioned, so you can easily switch to your version of Elasticsearch to see documentation that is specific to that version. It is very simple to find documentation on the available APIs which include excellent examples for easier readability. There are release notes that include known issues and breaking changes, troubleshooting guides, migration guides to migrate to the next major version of Elasticsearch, etc. To top it all off, it is all powered by an excellent search experience that makes it simple to find what you are looking for. Lastly, there is a great integration with Kibana. You can begin typing out a search query in Dev Tools and then select the option to view documentation. Kibana will open a link to the Elasticsearch documentation that corresponds to the query you are writing, making the entire experience seamless.
OpenSearch on the other hand does not have such a rich and vast set of documentation available. It is not nearly as easy to find the information you are looking for, and there are not as many examples that help provide additional clarity. The good news is, you can refer back to the Elasticsearch documentation for a lot of OpenSearch APIs and queries. A lot of functionality works the same in both applications. Though this is true for now, eventually the two products will differentiate themselves from one another more and more. At that point, Elasticsearch documentation will no longer be a usable reference for OpenSearch.
Elastic Cloud has varying levels of support included in their licensing. Different licenses include different SLAs for support. They range from web-based support only with a 3 business day response time with the Standard license up to web and phone support with a 1 hour SLA for the Platinum and Enterprise licenses. Elastic support is a great service that is very easy to use. There is a support portal where you can send messages back and forth between the support engineers. If needed, they will set up a call or run a screen share session in order to get the issue resolved. The only real draw-back for this support service is its price.
The support packages are bundled into the different license levels, so in order to get the highest level of support, you have to have a Platinum or Enterprise license. The price differences between licensing tiers is not insignificant. The cost of a cluster under the Enterprise license can be nearly double that of the same hardware under the Standard license. Granted, the Enterprise license has a lot more software and functionality bundled together than the Standard license, but if these additional features are not needed by your enterprise then you are paying a significant premium for support without getting the benefits of the additional features.
OpenSearch Service includes basic AWS support with its offering. You can create support tickets for issues relating to your OpenSearch infrastructure only. Unlike Elastic Cloud support, questions on best practices, the OpenSearch queries, Dashboards, etc are not covered. If you require any additional support, you are forced to turn to 3rd party consulting services.
Both support solutions pale in comparison to what we here at Big Data Boutique can offer you. Migrating from one search solution to Elasticsearch/OpenSearch? We can help. Just starting out and need some assistance architecting the number and type of nodes, index structure, queries, etc. We can help with that too. With experts available 24/7 and guaranteed SLA’s, we’re ready to help with all your Elasticsearch/OpenSearch needs. Seriously, just check us out !
In most circumstances, OpenSearch Service will cost you less than Elastic Cloud. This makes sense since Elastic does not host using their own cloud services like Amazon does. With AWS, Amazon essentially cuts out the middleman and can therefore offer better pricing on the Cloud infrastructure. This is even more apparent if you decide to utilize Amazon’s reserved instance pricing and make a commitment for several years. One exception to this comes with use cases that have a significant amount of storage requirements (e.g. hundreds of terabytes of data) where the majority of the data does not need to be queried at fast speeds. The searchable snapshots available within Elastic Cloud allows for frozen tier storage which is significantly cheaper than your traditional hot nodes. It is a trade-off between cost and query speeds. OpenSearch provides for cold storage options as well, but it begins to become prohibitively expensive the more storage is needed.
At the end of the day, the choice between Amazon OpenSearch Service and Elastic Cloud will come down to your organization's business requirements and price considerations. If you are looking for a high performance search product at a lower cost, and you don’t need any of the additional features available within the Elastic Stack – Choose Amazon OpenSearch Service. On the other hand, if you do require some of the additional features available within the Elastic Stack and don’t mind the added premium – Choose Elastic Cloud. Both services provide an excellent search experience, so either choice is a winner!