| OpenSearch REST API | OpenSearch / Elasticsearch REST | native OpenSearch API; match engine and client versions | adapter-translated OpenSearch requests on Elasticsearch 8.x | adapter-translated OpenSearch requests on Elasticsearch 8.x | native OpenSearch API; match engine and client versions |
| Engine + version | OpenSearch (AWS-managed domain) | OpenSearch (self-hosted; OpenSearch Operator / Helm chart) | Elasticsearch 8.x (Elastic Cloud Hosted) | Elasticsearch 8.x (Elastic-managed via Azure Native ISV Service) | OpenSearch 2.11 / 2.15 / 2.18 / 2.19.1 / 3.2 / 3.6 (OCI-managed) |
| Durability / HA owner · who operates the cluster | AWS-managed domain | you (self-managed on Kubernetes) | Elastic (Elastic Cloud) | Elastic / Microsoft (Azure Native Elastic) | Oracle (OCI Search with OpenSearch) |
| Cluster topology / sharding | data + dedicated-master + UltraWarm tiers | nodePools you define (data + dedicated cluster_manager + optional warm role) | ec_deployment full topology: hot/warm/cold/frozen tiers, size + zone_count (1-3) | resource without topology fields - size in the Elastic console (default 16 GB / 560 GB / 2 AZ) | mandatory 3-tier: data + leader (master) + Dashboard nodes; optional coordinator / ML / search tiers |
| Replication / HA · replicas + failover | Multi-AZ (up to 99.99% with standby) | index replicas + shard allocation awareness you configure; no SLA | 99.5 / 99.9 / 99.95% by AZ count (1 / 2 / 3 zones) | governed by the Elastic Cloud SLA (99.5 / 99.9 / 99.95% by AZ count) | OCI spreads data nodes across availability domains; no published availability SLA |
| Storage | EBS gp3 (to 36 TiB/node) / 3 PiB per domain | PersistentVolume per nodePool (diskSize / storageClass); IOPS is StorageClass-derived | disk bundled at a fixed disk:RAM ratio per tier | included in the plan (no topology field on the resource) | per-node data_node_storage_gb (FLEX sizing; up to ~314 TB/node, OCPU 1-32, memory 20-1024 GB) |
| Encryption at rest | encrypt_at_rest + KMS CMK | the PersistentVolume / StorageClass encryption (no AWS-KMS CMK analog) | Elastic-managed (CMK is an EC Enterprise feature) | Elastic-managed | service-managed encryption; no per-domain AWS KMS customer-key setting in this mapping |
| Security / FGAC | fine-grained access control + IAM policies | the Security plugin, config + internal_users you own | Elastic native realm (security.enabled), not the OpenSearch Security plugin | Elastic native realm / API keys / SSO, not the OpenSearch Security plugin | OpenSearch Security plugin - security_mode ENFORCING + master user; SAML/LDAP/OIDC; DLS/FLS (2.3+) |
| Plugins (k-NN / SQL / ISM / Alerting / ML) | bundled _plugins/* (Apache-2.0) | the full bundled _plugins/* set (k-NN, SQL/PPL, ISM, Alerting, AD, ML Commons) | ES-native; the OpenSearch _plugins/* APIs diverge | ES-native (_ml, _watcher, dense_vector); the OpenSearch _plugins/* APIs diverge (k-NN/SQL adapter-served, PPL/security out of scope) | the full supported set: k-NN, SQL/PPL, ISM, Alerting, AD, ML Commons, Neural Search, Security Analytics |
| Snapshots / backups | managed automated + manual _snapshot | self-managed: register a snapshot repository + schedule OpenSearch Snapshot Management | Elastic SLM (snapshot.retention) | Elastic SLM (console) | managed daily backups (14-day, non-configurable) + manual Snapshot API to Object Storage |
| API coverage | full | high | partial | partial | high |