Skip to main content
This page describes how OpenSearch Domain maps to services in the environment where the application runs, including backend choices, supported operations and service-specific behavior.

Supported environments

  • Akamai
  • Azure
  • DigitalOcean
  • Google Cloud
  • OCI
  • Private Kubernetes
  • Scaleway
Check the operation and capability tables for the behavior your application depends on. A supported environment does not imply that every operation of the origin service is available.

How the backends compare

Each row compares a capability of OpenSearch Domain with its adaptation on each backend. A dash means this profile does not state the capability for that backend.

Cloud Adapter

On Akamai, Azure, DigitalOcean, Google Cloud, Private Kubernetes, and Scaleway

OpenSearch

How it works

Tensor9 provisions OpenSearch in your Kubernetes cluster, through an OpenSearchCluster resource or a Helm chart, and points your application at its endpoint. Your OpenSearch client sends document and search requests straight to the cluster’s OpenSearch API; nothing from Tensor9 sits in between. You operate the cluster and its storage.
Your application's OpenSearch requests go straight to the OpenSearch cluster on Kubernetes through its endpoint, which Tensor9 provisions and configures.Your application's OpenSearch requests go straight to the OpenSearch cluster on Kubernetes through its endpoint, which Tensor9 provisions and configures.

Engine and plugins

The cluster runs the OpenSearch engine with its bundled plugins, so the listed document, index, search, aggregation, ingest and scripting operations keep their OpenSearch APIs. The distribution includes k-NN vector search, SQL, PPL, Index State Management, Alerting, Anomaly Detection and ML Commons, and their _plugins APIs run on the cluster. Match the engine and plugin versions to the ones your application uses on AWS. Two deployments of the same engine are not identical if their versions differ.

Topology and access

You define node pools with CPU, memory and PersistentVolume capacity. A dedicated cluster_manager pool keeps the cluster quorum: use at least three eligible nodes and spread replicas across failure domains. (OpenSearch renamed the master role to cluster_manager in version 2.0.) Configure shard allocation and plan rolling upgrades for your version. The OpenSearch Security plugin controls roles, role mappings and internal users, including SAML, OIDC or LDAP sign-in where supported, and document- or field-level access. You translate your AWS IAM-based access rules into this configuration.

Storage and backups

PersistentVolumes and their StorageClasses set disk capacity, IOPS and encryption. Availability depends on node placement, quorum and index replicas. Register a snapshot repository, and schedule snapshots and their retention with OpenSearch Snapshot Management (not the same feature as Elasticsearch Snapshot Lifecycle Management). An S3-compatible repository needs the repository-s3 plugin and the object store’s endpoint settings. Keep backups outside the cluster’s failure domain, and test a restore.

Limitations

  • A managed uptime SLA is not available. The cluster is self-managed. Tensor9 provisions it and its endpoint, but adds no managed durability guarantee; availability is what your placement, quorum and replicas provide.
  • AWS IAM access control is not supported. You must express access rules in the OpenSearch Security plugin’s roles, role mappings and users.
  • Encryption behaves differently: AWS KMS key settings are not kept. Encryption at rest comes from the StorageClass of the PersistentVolumes, not from a domain’s AWS KMS key.
  • Elasticsearch licensing APIs are not supported. _license and _xpack are Elasticsearch endpoints, not OpenSearch APIs.

Other considerations

Before going live. Replace the bootstrap certificates and default credentials before you expose the cluster. Moving from AWS. The cluster starts empty. Restore a compatible snapshot or reindex from the source, then check index mappings and queries before cutover. Size shards, replicas and storage for your workload; shard sizes in the tens of gigabytes are a starting point to evaluate, not a fixed limit. What you operate. You run Kubernetes capacity, storage expansion, cluster health, upgrades and snapshots.

On Azure

Azure Native Elastic

How it works

Your application keeps its OpenSearch client. Its requests go to a Tensor9 adapter, which translates the supported APIs and authentication and sends them to a managed Elasticsearch 8.x endpoint on Azure Native Elastic. Tensor9 creates the Elastic resource in the customer’s Azure tenant through the Azure Native integration. Elastic operates Elasticsearch, and the resource is bought and billed through the customer’s Azure subscription.
Your app's OpenSearch requests go to the Tensor9 adapter, which translates supported APIs and authentication and sends them to Azure Native Elastic.Your app's OpenSearch requests go to the Tensor9 adapter, which translates supported APIs and authentication and sends them to Azure Native Elastic.

Requests and authentication

The adapter forwards the supported document, search, aggregation, index, cluster, ingest and scripting operations. It translates differences in requests and responses, such as the point-in-time path: _search/point_in_time becomes _pit. The adapter checks the AWS SigV4 signature on each request, then calls Elasticsearch with Elastic credentials or API keys. You configure backend permissions in Elastic’s security model. Elasticsearch 8.x accepts compatible-with=7 headers for its earlier REST API. The adapter uses them where they apply, alongside its own translations. This does not make every OpenSearch request or client version work. Test your application’s queries, response parsing and client behavior against the listed operations. See Elastic’s API compatibility documentation.

Plugin APIs

OpenSearch and Elasticsearch have different plugin APIs. The adapter maps k-NN vector fields from knn_vector to dense_vector and converts the query to Elasticsearch’s knn form. SQL requests move from _plugins/_sql to _sql, with the response fields translated. Index State Management (ISM) policies map to Elasticsearch Index Lifecycle Management (ILM) where their actions fit ILM’s phases. Alerting, anomaly detection and machine learning map to Elasticsearch’s _watcher and _ml features. Some of these need a commercial Elastic subscription. The operations table shows which APIs are translated and which are not supported.

Deployment, security and availability

The Azure resource does not expose the deployment’s topology. You set size and topology in the Elastic Cloud console. The documented default is 16 GB RAM, 560 GB storage and two availability zones, with instances up to 256 GB RAM. Elastic Cloud publishes monthly availability commitments of 99.5%, 99.9% and 99.95% for one-, two- and three-zone deployments, subject to the subscription and its high-availability conditions. The subscription also decides which commercial features you get, so choose topology and subscription together. Security uses Elastic’s own configuration, API keys and single sign-on, not OpenSearch Security roles. Document- and field-level security and other commercial features depend on the subscription you buy. The hosted offering’s subscription terms apply whatever the source-code license. Elastic added an AGPLv3 option for the free source portions in 2024; see its licensing FAQ.

Limitations

  • PPL is not supported. Elasticsearch has no PPL, and the adapter does not translate PPL requests. Replace them with an application change. - The OpenSearch Security API is not supported. OpenSearch Security configuration is not translated. Configure users, roles and permissions in Elastic’s security model instead. - Notifications and observability objects are not supported. They have no Elasticsearch equivalent. They need backend-native configuration or an application change. - ISM behaves differently: custom states and transitions are not mapped. ILM has fixed phases, so only ISM actions that fit those phases are mapped. - Snapshots behave differently: an OpenSearch snapshot does not restore into Elasticsearch. Backup schedules and retention use Elastic Snapshot Lifecycle Management, which has a different API from OpenSearch snapshots. - Some features need a commercial Elastic subscription. Parts of alerting, anomaly detection and machine learning, and document- and field-level security, depend on the subscription you buy. - The _license and _xpack endpoints are not supported. They are Elasticsearch licensing APIs, not OpenSearch APIs, and are outside the mapping.

Other considerations

Before going live. Review mappings, analyzers and index settings before loading data. Check representative queries, including translated operations, before switching traffic. Moving from AWS. The deployment starts empty. Move data with a compatible remote reindex or a bulk export and import. Replace AWS-managed snapshots with Elastic Snapshot Lifecycle Management schedules and retention that meet your recovery requirements. Sizing. Choose shard layout, replicas, data tiers and memory for your indexing and query load. Published engine benchmarks describe their own versions and datasets; they do not measure this mapping. Measure your deployed application, including translated operations, when choosing capacity.

On DigitalOcean

OpenSearch Domain

Keep the managed domain

The application can continue using its existing AWS OpenSearch domain while other services run in the target environment. AWS continues to operate the domain. Its engine, plugin APIs, security configuration, and managed snapshots stay in place.

Connectivity and ownership

The customer deployment must be able to reach and authenticate to the AWS domain endpoint. This choice keeps an AWS service dependency and its existing operational ownership.

DigitalOcean Managed OpenSearch

How it works

On AWS your app’s OpenSearch or Elasticsearch client sends _bulk, _search and other OpenSearch REST calls to an Amazon OpenSearch domain. On DigitalOcean, Tensor9 creates a DigitalOcean Managed OpenSearch cluster (a digitalocean_database_cluster with engine = "opensearch") when it builds the deployment, and points your domain’s endpoint at the cluster’s host. Your app keeps the same clients and request formats. Nothing from Tensor9 handles the requests, so every index and query runs on DigitalOcean’s OpenSearch engine at the cluster’s own latency. DigitalOcean operates the cluster: it provisions the nodes and runs backups, failover and version upgrades. The cluster starts empty; your data moves separately.
On AWS, your app's OpenSearch client calls an Amazon OpenSearch domain over the OpenSearch REST API. On DigitalOcean, the same client calls a DigitalOcean Managed OpenSearch 2.19 cluster directly, with nothing from Tensor9 in between.On AWS, your app's OpenSearch client calls an Amazon OpenSearch domain over the OpenSearch REST API. On DigitalOcean, the same client calls a DigitalOcean Managed OpenSearch 2.19 cluster directly, with nothing from Tensor9 in between.

Your OpenSearch domain becomes a DigitalOcean Managed OpenSearch cluster, and your clients connect to it directly.

The same engine

DigitalOcean Managed OpenSearch runs the OpenSearch engine at version 2.19 (Apache-2.0, derived from Elasticsearch 7.10.2), the same engine as your AWS domain. Index and document operations (_doc, _bulk), search and aggregations (_search), mappings, ingest and Painless scripting behave as they do today. The plugin APIs under _plugins/* are the bundled OpenSearch plugins: k-NN and Neural search for vectors (_plugins/_knn), SQL and PPL (_plugins/_sql, _plugins/_ppl), Index State Management, Alerting, Anomaly Detection and ML Commons. One vector detail affects sizing: DigitalOcean offers no disk-resident approximate-nearest-neighbor index, so vector search is limited by node RAM. Size the cluster for large HNSW graphs accordingly.
The same OpenSearch REST API, the core index, document, search and aggregation endpoints and the _plugins APIs for k-NN, Neural search, SQL, PPL, index state management, alerting, anomaly detection and machine learning, runs natively on DigitalOcean's OpenSearch 2.19 engine, which is Apache-2.0 and derived from Elasticsearch 7.10.2.The same OpenSearch REST API, the core index, document, search and aggregation endpoints and the _plugins APIs for k-NN, Neural search, SQL, PPL, index state management, alerting, anomaly detection and machine learning, runs natively on DigitalOcean's OpenSearch 2.19 engine, which is Apache-2.0 and derived from Elasticsearch 7.10.2.

The core index, search and aggregation API is the same, and the _plugins/* features are the plugins bundled in DigitalOcean’s 2.19 distribution.

What changes: operational ownership

DigitalOcean operates the cluster, as AWS operates your domain today. It provisions the nodes and runs automated backups (hourly for the first 24 hours, then daily for up to 3 more days), failover to a standby node, and in-place version upgrades. Node health and patching follow DigitalOcean’s control panel and API. You choose the plan class (Basic, General Purpose or Memory-Optimized), the node count and the storage size. There is no separate dedicated-master tier; add a standby node when you want failover. With nothing in between, the cluster’s performance is its own, and your own monitoring reports it.
DigitalOcean runs the cluster: automated backups (hourly for the first 24 hours, then daily for up to 3 more days), failover to a standby node, and in-place version upgrades. You choose the plan class (Basic, General Purpose or Memory-Optimized), the node count from 1 to 15, and the storage size.DigitalOcean runs the cluster: automated backups (hourly for the first 24 hours, then daily for up to 3 more days), failover to a standby node, and in-place version upgrades. You choose the plan class (Basic, General Purpose or Memory-Optimized), the node count from 1 to 15, and the storage size.

DigitalOcean runs backups, failover and upgrades; you choose the plan, node count and storage size.

Network and access on DigitalOcean

The cluster can sit in a DigitalOcean VPC and be reached over a private network. Who may connect is set by a trusted-sources allow-list of IP addresses and DigitalOcean resources (up to 2,000 entries per cluster), in place of AWS security groups and VPC endpoint policies. DigitalOcean Cloud Firewalls do not apply to the cluster, and with trusted sources on, some DigitalOcean log-forwarding paths are unavailable. Inside the cluster, DigitalOcean provides a single doadmin user. The OpenSearch Security plugin is present, but DigitalOcean does not offer creating more users or roles through its control panel or API. If your AWS setup uses fine-grained, per-index or per-user access control, you rebuild it around the one doadmin credential. Connections are encrypted in transit with SSL, and data is encrypted at rest with LUKS, always on, with no customer-managed key option.
The cluster sits in a DigitalOcean VPC on a private network. A trusted-sources allow-list of up to 2,000 entries decides who can connect, in place of AWS security groups and VPC endpoint policies. Inside the cluster there is a single doadmin user; DigitalOcean does not offer creating more users or roles, and DigitalOcean Cloud Firewalls do not apply to the cluster.The cluster sits in a DigitalOcean VPC on a private network. A trusted-sources allow-list of up to 2,000 entries decides who can connect, in place of AWS security groups and VPC endpoint policies. Inside the cluster there is a single doadmin user; DigitalOcean does not offer creating more users or roles, and DigitalOcean Cloud Firewalls do not apply to the cluster.

A trusted-sources allow-list inside a VPC decides who can connect, and the cluster has a single doadmin user.

Limitations

The OpenSearch API stays the same. Access control, backups, networking and sizing differ. Where DigitalOcean Managed OpenSearch and Amazon OpenSearch differ
  • Fine-grained access control is not supported. Per-index and per-user roles have no counterpart: DigitalOcean provides only the doadmin user and does not offer managing more OpenSearch users or roles.
  • Backups behave differently. Automated backups run hourly for the first 24 hours, then daily for up to 3 more days, with point-in-time recovery limited to the last 7 days. A restore creates a new cluster rather than restoring in place.
  • Security groups and VPC endpoint policies are not supported. Access is an allow-list of IP addresses and resources (up to 2,000 entries) inside a DigitalOcean VPC. Cloud Firewalls do not apply, and some log-forwarding paths are unavailable while trusted sources are on.
  • Vector search behaves differently: it is limited by memory: k-NN and Neural search are bundled, but there is no disk-resident ANN index, so large HNSW graphs must fit in node RAM.
  • Customer-managed encryption keys are not supported. Data is encrypted at rest with LUKS, always on, using DigitalOcean-managed keys.
  • Sizing behaves differently. Clusters are sized by plan (Basic: 1 or 3 nodes; General Purpose and Memory-Optimized: 1, 3, 6, 9 or 15) with managed storage. AWS instance types and EBS limits do not map one to one.
  • The SLA behaves differently: it covers Managed Databases generally. DigitalOcean’s Managed Databases SLA is 99.95% monthly uptime with a standby node and 99.5% without. It does not name OpenSearch.

Other considerations

What Tensor9 maps at build time. Tensor9 maps engine_version to a DigitalOcean major version, cluster_config.instance_type to a size, and instance_count to the node count (1 if unset). Settings with no DigitalOcean equivalent are dropped and reported as warnings: the dedicated-master tier, a separate EBS volume size (storage follows the node size), fine-grained access control, a customer-managed key, node-to-node encryption, zone awareness, vpc_options, endpoint options and log publishing. A domain declared with count or for_each stops the build with an error. Credentials. DigitalOcean creates the cluster’s credentials; none are written into the generated Terraform. Moving from AWS. The cluster starts empty and indices are not copied. Restore from a snapshot or reindex from the source, and check versions and capacity before switching traffic.

On DigitalOcean and Scaleway

Lucenia (self-hosted)

How it works

On AWS, your app’s OpenSearch or Elasticsearch client calls an Amazon OpenSearch domain over the OpenSearch REST API, with _bulk, _search and the rest. In the target cloud, Tensor9 deploys a self-hosted Lucenia cluster on Kubernetes with the Lucenia Helm chart, and points your client’s endpoint at it when the product is built. Lucenia offers an OpenSearch-compatible REST API, so your existing clients connect straight to it and keep the same request formats. No Tensor9 component handles these requests: every index and query call goes directly to the Lucenia cluster, at its own latency.
On AWS, your app's OpenSearch client calls an AWS-managed Amazon OpenSearch domain. In the target cloud, the same app and clients call a self-hosted Lucenia cluster on Kubernetes over the same OpenSearch REST API, with no proxy in between.On AWS, your app's OpenSearch client calls an AWS-managed Amazon OpenSearch domain. In the target cloud, the same app and clients call a self-hosted Lucenia cluster on Kubernetes over the same OpenSearch REST API, with no proxy in between.

Your clients connect straight to a self-hosted Lucenia cluster on Kubernetes, with no proxy in between.

A compatible fork

Lucenia is a separate project derived from OpenSearch 2.14, built by the creator of OpenSearch. It uses Apache Lucene 10.4 and documents API and mixed-cluster compatibility with OpenSearch and Elasticsearch. Lucenia is dual-licensed under Apache-2.0 and SSPL. Its API tracks roughly OpenSearch 2.18. Your core client calls (_doc, _bulk, _search, mappings, aggregations) work as they do today. Vector search is confirmed: k-NN with Lucene-native HNSW, IVF and Faiss, plus hybrid BM25 and vector queries. Lucenia is at an early 0.x version (0.11.1 at the current release). It is a young engine to adopt deliberately, not a generally available managed service like the cloud providers’ offerings.
Your existing OpenSearch REST clients, with core document, search, aggregation and vector search calls, reach Lucenia. Lucenia is a separate engine: an API-compatible fork of OpenSearch 2.14 built on Apache Lucene 10.4 by the creator of OpenSearch, dual-licensed Apache-2.0 and SSPL, and at an early 0.x release.Your existing OpenSearch REST clients, with core document, search, aggregation and vector search calls, reach Lucenia. Lucenia is a separate engine: an API-compatible fork of OpenSearch 2.14 built on Apache Lucene 10.4 by the creator of OpenSearch, dual-licensed Apache-2.0 and SSPL, and at an early 0.x release.

Lucenia is a separate engine; its compatible REST API is what keeps your clients working.

What is confirmed, and what is unverified

Lucenia confirms support for documents, search, aggregations and vector search. Its k-NN support uses Lucene-native HNSW, IVF and Faiss, and hybrid BM25 and vector queries run on the Lucene 10.4 core. The other OpenSearch _plugins/* features are unverified. SQL and PPL, Index State Management, Alerting, Anomaly Detection and ML Commons have no published per-plugin compatibility list for Lucenia. Check the specific APIs your app calls against your Lucenia version before you depend on them. Lucenia’s own performance and cost claims publish no method, so this page does not cite them.
On Lucenia, documents, search, aggregations and vector search are confirmed, and your OpenSearch REST clients keep working. The other OpenSearch plugins (SQL, PPL, index state management, alerting, anomaly detection, ML Commons) have no published compatibility list, so check them before you depend on them.On Lucenia, documents, search, aggregations and vector search are confirmed, and your OpenSearch REST clients keep working. The other OpenSearch plugins (SQL, PPL, index state management, alerting, anomaly detection, ML Commons) have no published compatibility list, so check them before you depend on them.

Core and vector search are confirmed; the other plugins are unverified, so check them first.

You operate the cluster

On the AWS domain, AWS ran high availability, version upgrades, daily snapshots and fine-grained access control under an SLA. A self-hosted Lucenia cluster is yours to run. You define the node pools (data and master), replica counts and cross-zone placement. You schedule snapshots. You own version upgrades on an early 0.x project, where releases can move quickly and upgrade paths are still maturing. Security is configured again, not inherited. The access control AWS applied to the domain becomes Lucenia’s own security configuration (its SSPL security component), which you set up separately. You set the initial admin password with LUCENIA_INITIAL_ADMIN_PASSWORD. No provider offers an availability SLA: the cluster’s uptime depends on how you run it.
On the AWS domain, AWS ran high availability, version upgrades, daily snapshots, fine-grained access control and an SLA. On a self-hosted Lucenia cluster, you own the node pools and replicas, snapshots and version upgrades, and the Lucenia security configuration, and no provider offers an availability SLA.On the AWS domain, AWS ran high availability, version upgrades, daily snapshots, fine-grained access control and an SLA. On a self-hosted Lucenia cluster, you own the node pools and replicas, snapshots and version upgrades, and the Lucenia security configuration, and no provider offers an availability SLA.

What AWS ran for the domain becomes yours to run, and no provider offers an availability SLA.

Limitations

Your existing clients use Lucenia’s compatible REST API. Review these differences before you choose this backend. Where an AWS OpenSearch domain and self-hosted Lucenia differ
  • The engine behaves differently: Lucenia is not the OpenSearch codebase. It is a fork of OpenSearch 2.14 on Apache Lucene 10.4. Your clients rely on its compatible REST API, but it is a separate project with its own release schedule and its own bugs.
  • Plugins other than k-NN are not verified. SQL, PPL, ISM, Alerting, Anomaly Detection and ML Commons have no published compatibility list for Lucenia. You must confirm each API your app calls before cutover; do not assume the domain’s plugin behavior.
  • Maturity behaves differently: Lucenia is an early 0.x release. It is at 0.11.1. Tooling, client testing, long-term support and upgrade stability are less established than for a generally available managed service. Weigh that against the workload’s risk tolerance.
  • An availability SLA is not offered. The cluster runs on your Kubernetes, so no provider guarantees uptime. A separate managed Lucenia Cloud exists, but it is not this self-hosted backend.
  • You must replace the domain’s managed features. Daily snapshots, fine-grained access control, and AWS instance families and EBS limits are not available. You size Lucenia with your own node pools and storage (persistence.size, storageClass) and secure it through its own model.
  • You must review the SSPL license. Lucenia is dual-licensed Apache-2.0 and SSPL. The SSPL terms matter if you would ever offer Lucenia as a service to third parties, so check the license against your intended use.

Other considerations

Moving from AWS. The cluster starts empty; indices are not copied automatically. Restore from a snapshot or reindex from the source before you move traffic. Before going live. Test the plugin APIs your app calls, and the Lucenia version you will run, before switching traffic. Plan how you will apply upgrades, since 0.x releases can move quickly. What to monitor. Latency and throughput are the cluster’s own, and your monitoring reports them; no provider dashboard or SLA covers this cluster.

On DigitalOcean and Google Cloud

Elastic Cloud (managed)

How it works

Your application keeps its OpenSearch client. Its requests go to a Tensor9 adapter, which translates the supported APIs and authentication and sends them to an Elastic Cloud Hosted deployment running Elasticsearch 8.x. Tensor9 provisions the deployment as an ec_deployment resource in your Google Cloud environment. Elastic operates Elasticsearch and Kibana; you choose the deployment configuration.
Your application's OpenSearch requests go to the Tensor9 adapter, which translates them and sends them to Elastic Cloud Hosted.Your application's OpenSearch requests go to the Tensor9 adapter, which translates them and sends them to Elastic Cloud Hosted.

Requests and authentication

The adapter forwards the supported document, search, aggregation, index, cluster, ingest and scripting operations, translating request and response differences. For example, the point-in-time path _search/point_in_time becomes _pit. The adapter checks AWS SigV4 signatures; its requests to Elasticsearch use Elastic credentials or API keys. You configure backend permissions in Elastic’s security model. Elasticsearch 8.x accepts compatible-with=7 headers for its earlier REST API, and the adapter uses them where they apply. This does not make every OpenSearch request or client version compatible. Check your queries, response parsing and client behavior against the listed operations. See Elastic’s API compatibility documentation.

Plugin features

OpenSearch and Elasticsearch have different plugin APIs, so the adapter translates them: - k-NN. knn_vector mappings become dense_vector, and queries become Elasticsearch’s knn form. - SQL. Requests to _plugins/_sql go to _sql, with response fields translated. - Index State Management. Policies map to Elasticsearch Index Lifecycle Management (ILM) where their actions fit. - Alerting, anomaly detection and machine learning. These map to Elasticsearch _watcher and _ml. Some of them need a commercial Elastic subscription.

Deployment, availability and security

The ec_deployment resource exposes hot, warm, cold and frozen tiers, instance size, one to three availability zones, and autoscaling per tier. Storage comes bundled at the selected tier’s disk-to-memory ratio. Elastic Cloud publishes monthly availability commitments of 99.5%, 99.9% and 99.95% for one-, two- and three-zone deployments, subject to the subscription and its high-availability conditions. Choose topology and subscription together. Access control uses Elastic’s security configuration, API keys and single sign-on, not OpenSearch Security roles. Document- and field-level security and other commercial features depend on the subscription you buy. The hosted offering’s subscription terms apply regardless of the source-code license. Elastic added an AGPLv3 option for the free source portions in 2024; see its licensing FAQ.

Limitations

  • Some OpenSearch APIs are not supported. PPL, the OpenSearch Security API, notifications and observability objects are outside the mapping. They need Elastic-native configuration or a change in your application.
  • Index State Management behaves differently: custom states are not kept. ILM has fixed phases, so custom ISM states and transitions cannot be represented and do not round-trip.
  • Restoring OpenSearch snapshots is not a supported migration path. Do not assume an OpenSearch snapshot restores into Elasticsearch across the engine fork. Move data with a reindex or bulk import instead.
  • Elasticsearch licensing APIs are not supported. _license and _xpack are not OpenSearch APIs and are not part of the mapping.

Other considerations

Moving from AWS. The deployment starts empty. Move data with a compatible remote reindex or a bulk export and import. Review mappings, analyzers and index settings before loading data, and test representative queries before you switch traffic. Backups. Elastic Snapshot Lifecycle Management sets backup schedules and retention. Make sure it meets the recovery requirements you had with AWS-managed snapshots. Sizing. Choose shard layout, replicas, data tiers and memory for your indexing and query load. Published engine benchmarks describe their own versions and datasets, not this mapping. Measure your deployed application, including translated operations, when choosing capacity.

On OCI

OCI Search with OpenSearch

How it works

Your application keeps its OpenSearch client and requests. Tensor9 provisions OCI Search with OpenSearch in the customer’s Oracle Cloud tenancy and points the application at the cluster’s opensearch_fqdn endpoint. Document and search requests go straight to the managed cluster; Tensor9 is not in the request path. Oracle operates the OpenSearch service.
Application requests reach OCI Search with OpenSearch directly through its OpenSearch endpoint. Tensor9 provisions the cluster and configures its endpoint.Application requests reach OCI Search with OpenSearch directly through its OpenSearch endpoint. Tensor9 provisions the cluster and configures its endpoint.

Engine and plugins

OCI runs OpenSearch itself, not a fork. The listed core REST operations and the supported plugins use the native OpenSearch APIs, including k-NN, SQL/PPL, Index State Management, Alerting, Anomaly Detection, ML Commons, Neural Search and Security Analytics. OCI documents versions 2.11, 2.15, 2.18, 2.19.1, 3.2 and 3.6. Match the engine and plugin versions to your application before migrating. The same engine on another provider still needs a version-compatibility review; it does not guarantee identical behaviour for every request.

Topology and security

You size the data, leader and OpenSearch Dashboards nodes, with optional coordinator, machine-learning and search tiers. The cluster runs in the customer’s VCN and subnet. Oracle manages the software and spreads data nodes across availability domains. Access control uses the OpenSearch Security plugin, with security_mode set to ENFORCING and a master user. It supports SAML, LDAP and OIDC sign-in, and document- and field-level security on supported versions.

Limitations

Where Amazon OpenSearch Service and OCI differ
  • AWS IAM access policies are not supported. Domain access_policies do not apply directly. On OCI, access control goes through the Security plugin described above.
  • Customer-managed encryption keys are not supported. OCI manages storage encryption, and this mapping has no per-domain AWS KMS key setting.
  • Elasticsearch _license and _xpack endpoints are not supported. They are not part of OpenSearch.
  • Backups behave differently: OCI keeps daily backups for 14 days. You cannot change that schedule or retention. For other recovery points, use the Snapshot API with an Object Storage repository in the customer tenancy.
  • Availability behaves differently: OCI states a 99.9% objective, not a contractual SLA. Node placement and replicas provide high availability. Check the current OCI service terms for the customer deployment.
  • AWS sizing settings are not kept. The service uses Oracle compute and storage shapes, with the limits listed in the comparison. AWS instance families, EBS limits and UltraWarm settings are not interchangeable with them.

Other considerations

Before going live. Set up your recovery destinations and test a restore. Measure your workload on the chosen topology, and keep enough storage and replica capacity. Moving from AWS. The new cluster starts empty; OCI does not import the AWS domain’s indexes. Restore a compatible snapshot through a registered repository, or reindex from the source. Check mappings, analyzers, queries and the Security plugin configuration before you switch the endpoint.

On Scaleway

Scaleway Cloud Essentials for OpenSearch

Install and run

The documentation and SLAs are public. Downloading and running the Cloud Adapter binary requires an entitled customer account. Set T9_API_KEY as described in Install and Authenticate, then list the adapters your account may use with this origin:
The result is limited to directed mappings for this origin that your account is entitled to use. Use a returned backend identifier when configuring the adapter or investigating a request. Request binary access from [email protected] if your account does not yet include this direction.

Existing data and credentials

Selecting a backend does not copy existing data, credentials or access policies. Plan and verify migration separately before changing an application’s endpoint. Do not assume an identifier, credential or encrypted value from the origin service works unchanged on the target.

Configure, tune and debug

Start with setup and configuration. Use tuning to understand supported request tags, debugging to investigate a request, and High Fidelity Cloud Emulators to validate a bounded reproduction. For requests that go through an entitled service adapter, use tensor9 explain and x-t9-explain to inspect the selected mapping.