How OpenSearch cluster sizing decides search and ingestion speed
Sizing an OpenSearch cluster comes down to data volume, retention, query and ingest rates, and shard layout, and the shard layout is the part that is costly to reverse. A team that starts from a use case such as application search, logs, observability or security analytics usually asks three questions: how many nodes, how much memory and disk, and how many shards. The answers depend on each other. A cluster with the right node count can still search slowly if the index was created with too few or too many primary shards, and fixing that often means building a new index and reindexing the data.
Sizing is harder than it looks for three reasons. The primary shard count of an index is fixed when the index is created, so the team must estimate growth before the data exists. Each replica is a full copy of its primary, which multiplies both disk use and indexing work, so replica count belongs in the storage calculation from the start. Shard size pulls in two directions: very small shards add per-shard overhead to cluster state and memory, while very large shards slow recovery after a node restart and make rebalancing take longer. The workload sets where the right size falls, so test it instead of copying a figure from a blog post.
Much of the sizing guidance teams bring with them comes from Elasticsearch. OpenSearch is a fork of Elasticsearch 7.10, and its APIs and settings are largely wire-compatible with that version, so habits such as shard sizing, heap planning and hot node layout usually carry over. Treat them as starting hypotheses to test. OpenSearch has moved beyond 7.10 with its own releases and features, so check each heap, shard and node setting against the OpenSearch documentation for the exact version you plan to run. Confirm the current shard and heap guidance there before you commit to a layout.
Before you size anything, gather the inputs: expected daily ingest volume and peak rate, retention period, the number and shape of queries, latency targets, and growth over the planned life of the hardware. Then run a load test on a representative index built with the shard layout you intend to use, and measure indexing throughput, query latency and heap pressure during the run. Ask your internal team or implementation partner to show the sizing calculation and the test results, not only a node count, so you can see which assumptions drive the answer.
This page does not cover index lifecycle, including rollover, shrink and deletion schedules, which is a separate topic. High availability design, including dedicated cluster manager nodes, replica placement across zones and recovery testing, is also covered separately, as is cost of ownership, which weighs hardware, storage tiers and operating effort against each sizing choice. Read this page as the sizing inputs and shard decisions those topics depend on. Ask any partner quoting this work to show how each shard decision feeds the retention and availability design, so the layout you choose now does not block those later.
Which node roles and index settings carry the load
Sizing an OpenSearch cluster starts with knowing which node role consumes which resource and which index-level settings multiply that load. The cards below cover the four node roles named in the cluster documentation and the index settings that decide how many shards exist and where their copies land.
Data nodes hold the shards
Data nodes store primary and replica shards and do most of the disk, heap and I/O work for indexing and search. They are usually the largest part of a cluster budget, so the first sizing question is how much data each node must hold and how much heap and disk it needs to serve that data. Check disk headroom and heap pressure on these nodes before adding any other role.
Coordinating nodes merge results
Coordinating nodes receive client requests, fan each query out to the data nodes holding the relevant shards, and merge the partial results before responding. They consume CPU and memory for merging and for holding in-flight responses, not disk for index data. Heavy queries across many shards or large result sets are the usual reason to add coordinating capacity.
Ingest nodes run pipelines
Ingest nodes run ingest pipelines, which transform documents before they are indexed, such as parsing fields, enriching data or dropping unwanted content. Their cost depends on the processors in each pipeline and the document rate, so a heavy enrichment step can shift load away from the data nodes. Confirm the pipeline processors and expected throughput before deciding whether ingest work needs its own nodes.
Cluster manager nodes hold state
Cluster manager nodes track cluster state, including index metadata, shard placement and node membership, and make decisions when nodes join, leave or fail. They do little indexing or search work but must stay responsive as the cluster grows. The cluster documentation recommends dedicated cluster manager nodes; the design of that choice belongs to the high availability topic.
Primary shard count sets parallelism
The primary shard count is fixed when an index is created, and it sets how the data is split across data nodes and how far a single index can spread its work. Too few primaries limit parallelism and make individual shards large, while too many create small shards that add overhead to cluster state. Plan the count from expected index size and growth, and confirm how rollover or reindexing will change it later.
Replica count multiplies storage and reads
Each replica is a full copy of a primary shard, so the replica count directly multiplies the storage and indexing work the cluster must carry. Replicas also serve search requests, which adds read capacity at the cost of disk and write amplification. The cluster documentation recommends placing replicas on separate nodes from their primaries, and the placement design belongs to the high availability topic.
Allocation awareness places copies
Shard allocation awareness tells the cluster which node attributes, such as zone or rack, to use when placing primary and replica copies. It changes where storage is consumed and how much capacity remains usable if a zone fails, because copies are spread rather than packed onto one group of nodes. Confirm the attribute names and node labels in your environment before sizing each zone, since uneven zones will skew disk use.
Decisions that set the shard strategy and node layout
This table compares the main choices that fix an OpenSearch shard strategy and node layout, with the operational cost of each option. Read each row as a decision to settle before ingestion starts, because most of these choices are expensive to reverse once data is indexed. The main takeaway is that index layout and role placement determine recovery time, rebalancing load and storage use long after the first deployment.
| Decision | When it fits | Operational trade-off |
|---|---|---|
| Combined data and coordinating roles | Light query load, small cluster, few concurrent searches | Heavy fan-out queries compete with indexing and shard recovery for heap and CPU on the same nodes |
| Separate coordinating nodes | Many concurrent users, large result merges, dashboards with wide time ranges | More node types to size, patch and monitor, and extra capacity sits idle when query load is low |
| Combined cluster manager and data roles | Small clusters where node count is limited and cluster state is light | Data-node pressure such as garbage collection pauses or heavy recovery can destabilize cluster management |
| Dedicated cluster manager nodes | Larger clusters, frequent index creation, or any production cluster that must stay in control during load spikes | Additional nodes to provision, patch and pay for, with a quorum that must be kept across failure domains |
| One index per tenant or source | Strict isolation per tenant, distinct retention or mappings per source | Shard count and cluster state grow with each index, and index management overhead rises with every new source |
| Shared indices with a filter key | Many small tenants with similar mappings and retention | Every query must filter correctly, and a noisy tenant can affect shared shard resources |
| Time-based indices | Logs, events and metrics with defined retention periods | Index management overhead increases with the number of indices, so rollover and deletion must be automated (see the OpenSearch index lifecycle topic) |
| Single growing index | Small, stable datasets with no scheduled retention | Shards grow without bound, deletion requires expensive document-level work, and recovery of large shards takes longer |
| Fixed shard count chosen at creation | Predictable data volume with a stable growth profile | Changing the count later requires a reindex, which adds ingestion load and temporary storage use |
| Planned reindex or split and shrink path | Volumes that are uncertain or expected to grow beyond the first estimate | Requires keeping a tested procedure and spare capacity, and the migration window must be scheduled |
| Replica count set for availability | Production data that must stay searchable through node or zone loss | Each replica multiplies storage and indexing work, and recovery after a node failure copies data across the network |
| Replica count set for storage cost | Non-critical or easily rebuilt data, such as short-lived debug logs | Node loss can cause data unavailability or require rebuilding from snapshots, which lengthens recovery time |
Build an OpenSearch cluster sizing plan in six steps
Each step produces one artifact and closes with a check, so every sizing decision can be traced from source data to the capacity plan handed to operations. The work moves from measured data to a test cluster, then to templates and growth triggers, which keeps guesses out of the final numbers.
Inventory sources, fields and query patterns
Your team, with DeployOpen if engaged, lists every data source, its fields, average and peak daily volume, retention period and the queries users run, such as full-text search, time-based aggregations or sorted lookups. The artifact is a sizing inventory with one row per index family. The step closes when the data owner and the platform team both confirm that no source or query type is missing and that retention matches written policy.
Measure document size and index overhead
Index a representative sample of production documents into a scratch index that uses the mappings you expect to deploy, then compare stored size on disk with the raw size of the source records. Estimates from raw data tend to miss overhead from inverted indexes, doc values and replicas, so the measured ratio is the figure you carry forward. The artifact is a measured size ratio per index family. The step closes when samples taken on different days produce ratios within a tolerance your team agreed in advance.
Set index pattern and provisional shard counts
For each index family, choose a naming and rollover pattern, such as time-based indexes behind an alias. Then divide the expected stored size per period by your written shard size target to get a provisional primary shard count. Set replica count separately, because replicas multiply stored size. The artifact is a shard table listing index pattern, primaries, replicas and expected size per shard. The step closes when every shard size falls inside the target band and the table totals match the storage estimate from step two.
Build a non-production cluster to test sizing
Stand up a non-production cluster that matches the target operating system, the OpenSearch version you will run and the planned node roles. Set dedicated cluster manager nodes where the design calls for them, assign data, ingest and coordinating roles, and size heap and disk per node from the measured storage. Confirm heap and disk guidance against the vendor documentation for your exact version. The artifact is a node specification listing role, count, heap, disk and CPU per node. The step closes when the test cluster reports green health with the planned shard table loaded.
Load test ingestion and query traffic
Replay ingest at expected and peak rates, and run the query mix from step one at matching concurrency. Watch indexing latency, search latency, rejected requests and disk usage against the disk watermark thresholds, and hold peak runs long enough for merges and refreshes to settle. The artifact is a load test report with rates, latencies, rejection counts and peak disk use per node. The step closes when the cluster stays under its watermarks and rejects no requests at normal load, and peak results show the headroom the plan requires.
Lock templates and write the capacity plan
Turn the tested choices into index templates that set mappings, shard and replica counts and the lifecycle policy, then write a capacity plan that records the sizing inputs, the node specification and the growth triggers. Each trigger should name a measurable condition, such as shard size drift, a rising disk usage trend or peak query latency, and state the action: add data nodes, split or reshape indices, or change the rollover policy. The artifact is version-controlled templates and the approved capacity plan. The step closes when a template change passes review against the plan and a rollover test creates an index that matches the template.
What drives sizing effort and how to keep it down
This table lists the inputs that change how much sizing work an OpenSearch cluster needs and what the team can do to limit that work. Read each row as a question to settle before hardware or cloud capacity is ordered. The main takeaway is that a sampled ingest set, fixed index templates and written growth triggers remove most of the rework.
| Driver | Why it raises effort | How to keep it down |
|---|---|---|
| Data volume and growth rate | Shard counts, node counts and disk depend on current size and growth. Unknown growth forces repeated resizing. | Measure a representative ingest set early. Agree growth triggers in writing so resizing follows a rule, not an ad hoc meeting. |
| Retention period and number of copies | Retention multiplies stored data, and each replica adds a full copy of every shard. | Confirm retention with legal and compliance owners first. Tie retention to index lifecycle rules from the start. |
| Document size and field count | Large documents and many mapped fields raise heap use, index size and indexing time. High-cardinality fields add aggregation memory. | Sample real documents before design. Set explicit mappings, turn off indexing for fields never searched and cap dynamic fields. |
| Query complexity and concurrency | Deep aggregations, wildcard searches and many concurrent users need more heap, CPU and coordinating capacity. | Collect the top query patterns and their owners. Test the heaviest dashboards at expected concurrency before go-live. |
| Ingest rate and bursts | Peak ingest, not average, sets indexing capacity. Batch jobs or incident floods can cause rejected writes and backlogs. | Ask data owners for peak rates by source and hour. Test a burst profile supplied by the owners, not only steady load. |
| Number of indices, tenants or sources | Each index adds shards, mappings and cluster state. Many small indices slow the cluster manager and complicate access rules. | Group sources with similar mappings. Agree a naming and ownership standard for indices before build. |
| Environments that need a matching test cluster | Each environment that must mirror production needs its own sized cluster, data subset and upgrade rehearsal. | Decide early which environments must match production in size. Use smaller clusters for functional tests and full-size copies only for performance tests. |
| Deployment model | Each model changes node provisioning, storage design, patching and how packages reach the network. | Choose the deployment model before sizing. Confirm storage performance and node placement with the platform team. For air-gapped sites, plan the package and image transfer path early. |
| Compliance evidence the capacity plan must carry | The plan may need to show retention, availability assumptions, growth triggers and test results mapped to controls. | Link each assumption to an owner and a test. Confirm the required evidence with the auditor or control owner before writing the plan. |
How sizing changes by deployment model
A single node suits development and proofs of concept, where the goal is to test mappings, queries and ingestion code. It does not reflect production behavior. With one node, replica copies have nowhere to go, so health, recovery and allocation behavior differ from a real multi-node deployment. Treat any shard count or replica setting chosen here as a development value.
- Shard and replica labels: Record every shard and replica setting from this stage as non-production so the values are not carried into the production plan by default.
- Heap and memory: Use the single node to confirm that queries and indexing work, not to set the production heap or memory ceiling.
- Storage estimates: Load a representative sample, then measure size per document and index overhead. Sample results rarely scale in a straight line, so test again at higher volume.
- Data shape: Use data with the field mix, cardinality and volume pattern of the actual workload, because synthetic data often hides mapping and field count problems.
Confirm with the platform owner that proof of concept settings are marked non-production and that the production sizing will be rebuilt on a multi-node topology before go-live.
In a multi-node production cluster, sizing depends on three decisions made together: role separation, zone layout and replica placement. The OpenSearch cluster documentation recommends dedicated cluster manager nodes, replicas on separate nodes and shard allocation awareness for availability. Each of these changes how many nodes you need and how much headroom each one carries.
- Role separation: Decide whether cluster manager nodes are dedicated. Size them separately from data, ingest and coordinating roles, since their load profile is different.
- Zone layout: Map nodes to availability zones or racks before choosing shard counts, so shard allocation awareness has failure domains to work with.
- Replica placement: Replicas multiply storage and indexing work. Include the replica count in every capacity calculation and check that copies can land on separate nodes.
- Per-role sizing: Size each role on its own workload measure. A single node profile for all roles usually leaves some roles short and others idle.
Confirm with the platform owner the number of zones, the expected behavior during node or zone loss, and how quickly replacement hardware or cloud instances can be provisioned, since these set the headroom each node needs.
On Kubernetes, the sizing plan starts from the install method. OpenSearch documents installation with Helm and with the OpenSearch Kubernetes Operator, and each route controls resource requests, heap and storage claims in its own way. Pod resources, persistent volume performance and node pool layout become sizing inputs in their own right.
- Install method: Confirm how the chosen Helm chart or Operator release sets JVM heap relative to pod memory, and which fields control persistent volume size.
- Pod resources: Set CPU and memory requests and limits with the heap in mind. A memory limit below what the JVM and off-heap memory need can cause pod restarts under load.
- Persistent volumes: Storage class throughput and latency affect indexing and search. Ask what the storage class delivers and whether volumes can be expanded later.
- Node pools: Dedicate node pools to cluster manager and data roles where possible, and spread pods across zones so shard allocation awareness has zones to use.
Confirm with the cluster platform owner which Helm chart or Operator version is approved, how that version sets heap and storage, and who owns changes to storage classes and node pools.
In an air-gapped network, every sizing input must be available inside the boundary. The team brings installation packages, container images and any sizing or load-testing tools in through its own approved transfer process. The plan should not assume that a documentation site, a public calculator or a package repository can be reached during the work.
- Package intake: Confirm the install method, whether tarball, RPM, Debian or container images, and check that the full package set is present before sizing begins. The installation documentation lists several options, so pick one and record it.
- Offline tools: Any spreadsheet, script or load generator used for sizing must be approved, scanned and copied in. Avoid tools that fetch data or configuration at runtime.
- Reference data: Keep measured results from the representative test inside the boundary, so future resizing does not depend on outside sources.
- Updates: Plan how new minor releases reach the enclosed network. Each update passes through the same intake process and may change resource behavior, so retest sizing assumptions after it.
Confirm with the security and platform owners how media is approved, who signs off on imported tools, and where the sizing workbook is stored and version-controlled inside the boundary.
How to test that the shard strategy holds under load
Testing the shard strategy means proving, before production traffic arrives, that the chosen shard counts, shard sizes, replica settings and node counts keep the cluster healthy at expected and peak load. The test plan should be written from the sizing decisions themselves, so every number in the test traces back to an assumption the team made about data volume, ingest rate and query mix. Ask the partner or internal team to produce a test matrix that lists each assumption, the metric that confirms it, and the threshold that counts as a pass. The load test replays representative ingest and query mixes against a test cluster built to the production topology, with the same dedicated cluster manager, data and coordinating node roles and the same shard allocation awareness settings. Run the mix at the expected rate, then at the peak rate the business has defined, and hold each level long enough for heap usage, merge activity and segment counts to settle. Record cluster health, the spread of shards across data nodes, and whether any index sits on a node far more heavily than its peers, since uneven allocation is often the first sign that a shard count is wrong for the workload.
During each run, watch the signals that show whether the cluster is under pressure rather than merely busy. Track JVM heap pressure on every data node, disk usage against the low, high and flood-stage watermarks, indexing and search latency at the percentiles the business cares about, and the rejected request counts reported by the write and search thread pools. Rejections are not a failure of the test by themselves. They show where backpressure begins, and the team should note the rate at which they start relative to the peak load so the capacity buffer is known rather than assumed. The failure test stops one data node in the test cluster while the load continues at expected rate. Confirm that replicas for the affected primaries are promoted, that the cluster returns to green or yellow as the design predicts, and that shard recovery finishes inside the window the operations team needs for a node restart or replacement. Then fill a test data node's disk past a watermark and confirm the cluster behaves predictably: allocation stops on that node, indices are not silently dropped, and writes that cannot be accepted return errors to clients. Confirm which watermark settings were configured and what the team's own tolerance is, rather than relying on defaults.
The cluster should fail safely. Under overload, the expected behavior is backpressure: thread pool queues fill, requests are rejected with explicit error responses, and client retry logic or a buffering tier holds the data. Silent data loss, such as dropped documents with a success response, is a design defect and should be treated as a failed test. Check that the ingest clients record rejected writes, that retries are bounded, and that the team can reconstruct which events were rejected during a test run. Confirm the behavior of the specific client libraries and any ingestion tool in front of the cluster, because retry defaults vary. Alerts must fire before the limits are reached, not after. For each threshold the design relies on, including heap pressure, disk watermarks, rejected request counts, shard count per node and recovery time, inject the condition in the test environment and confirm that the alert reaches the on-call channel with enough headroom for an operator to act. Document the alert thresholds and the response for each one in the runbook. The alert timing check is the one most often skipped, and it is the one that tells the team whether the capacity buffer is usable in practice.
Finally, confirm that the growth triggers in the plan actually work. The plan should state the conditions that require adding a data node, such as sustained heap pressure, shard allocation running out of room, or disk usage crossing an agreed level. In the test environment, add a data node following the documented procedure, then confirm that the cluster rebalances shards onto it, that allocation awareness rules still hold, that latency returns to the expected range, and that the rebalance finishes without hurting query performance for the duration. Time the rebalance and record how it behaved under load, because a rebalance during peak traffic is the scenario the team is most likely to face. Ask the implementation partner or internal engineers to confirm the OpenSearch version under test, the exact settings used, and the procedure for adding a node in your environment, and keep the results with the sizing record. Results from this testing are evidence for your own change and capacity reviews, and they should be repeated after major version upgrades or significant changes in data volume.
Access and secrets that sizing choices affect
Security controls change how much work a cluster does and how much disk it needs. Access rules decide who can create indices, encryption adds handshake and CPU cost, and audit and snapshot settings add storage. Each card names what the sizing plan must record so the load test and capacity numbers reflect the cluster as it will actually run.
Index permissions and shard counts
The Security plugin's role-based access control decides which indices a user or service account can create. If application teams create their own indices, a permissive role can multiply shard counts without any review. Record which roles hold create-index rights, which index patterns they cover, and whether templates set default shard and replica counts. Confirm that these roles are reviewed against the shard budget before go-live.
TLS overhead in the load test
TLS for node-to-node and client traffic adds connection setup and CPU work on every node that handles requests. Sizing based on plaintext benchmarks will understate the cores needed for ingestion and query peaks. Record which connections are encrypted, how clients reuse connections, and the certificate rotation process. Run the load test with the same TLS settings planned for production.
Document and field-level security cost
Document-level and field-level security add filtering work to each query, and field masking adds more. The cost grows with the number of roles and the complexity of their filters. If these features are part of the design, include them in the load test with representative roles and query mixes. Record which indices use them so the CPU estimate covers those queries.
Audit log volume on disk
Audit logs are written as additional documents and add steady write volume that scales with request rate and the audit categories enabled. This volume must be counted in disk sizing alongside primary data, replicas and snapshots. Record which audit categories are on, the expected event rate per node, and the retention period for audit indices. Confirm the audit index lifecycle with the security team.
Snapshot repository credentials
Snapshot repositories need credentials for the storage backend, and those secrets must be kept outside the cluster rather than in index settings or plain configuration files. Snapshot volume depends on change rate and retention, so the repository capacity must be sized for every retained snapshot. Record the credential store, the rotation owner, and the repository size needed for the planned retention. Confirm the restore test schedule with the platform team.
Full control set in the hardening topic
This section covers only the controls that change sizing numbers. Authentication backends, REST API lockdown, certificate management and the rest of the hardening baseline are described in the OpenSearch security hardening topic. Use that topic to complete the security design, then return here to update the load test, disk and snapshot figures.
What to monitor, back up, upgrade and document after go-live
The shard strategy is only as good as the operations that keep checking it. After go-live, the team should watch the metrics that show whether the capacity plan still holds: JVM heap pressure on each data node, free disk and the disk watermarks, shard count per node, the spread of shard sizes within each index, indexing and query latency, and rejected requests in the thread pools. Set each alert threshold from the capacity plan, not from a generic default, so that a breach means the plan itself needs review. Confirm with your own environment which of these signals your monitoring stack already collects and which need a custom exporter or dashboard. Backups are the second control. Snapshots to a registered repository are incremental, and the repository size tracks the volume of data retained, so the storage budget should be reviewed whenever retention or ingest rate changes. A snapshot that has never been restored is not a tested backup. Schedule restore tests into a separate cluster on a regular cadence, time them, and record how long a restore of your largest index takes. Those timings feed back into the availability design and into how many shards you are willing to hold on any one node. Upgrades need the same discipline. OpenSearch targets a new minor version about every eight weeks, and a given version stays under maintenance until the next major version enters maintenance or one year passes, whichever is longer. During maintenance, a version receives bug fixes and security patches but no new features, so you can often defer a minor upgrade without losing security coverage, but you should not defer indefinitely. Plan each upgrade so that you re-run the load test from the sizing exercise whenever the new version changes indexing, query or allocation behavior, because a shard layout that held on the old version can behave differently on the new one. Review shard size and count each quarter, and also at each growth trigger such as a new tenant, a new log source or a retention change. Shard count on an existing index cannot be changed in place. It requires a reindex into a new index with the desired count, or a split or shrink operation that has its own preconditions. Treat any such change as a scheduled project with a rollback plan, not as an ad hoc fix on a busy cluster. Ask your team to confirm the split and shrink constraints for the exact version you run before you commit to a date. Finally, document the capacity plan, the reason behind each shard decision (expected size, growth rate, query pattern, retention), and a named owner who approves changes to shard counts, node sizes and retention. Without that record, the next engineer will change a template or index setting without knowing the original trade-off. Review the document at each quarterly check and after every upgrade, so that the plan describes the cluster that is actually running.
Questions teams ask before sizing OpenSearch
What makes an OpenSearch sizing engagement cost more or less?
The scope moves with how much data the cluster will hold, how long it must keep that data, how many environments need sizing, and how many indices and index patterns the workload creates. Each adds test runs, measurements and documented decisions. A single production cluster with one well-understood log stream is a narrow job. Several clusters with different retention rules, search and ingestion patterns, and separate development, test and production environments take more time to measure and more review. Ask any provider to state which of these drivers its quote assumes, and what changes if they grow. Note that the cost of the cluster itself, including hardware or cloud instances, storage and staff, is separate from the cost of the sizing work.
How long does OpenSearch sizing take?
Sizing takes as long as it takes to gather representative data and traffic and to test against them. The main delay is usually access: getting sample data, realistic query logs and a test cluster that resembles production. When those arrive early, measurement and tuning can move quickly. When they arrive late or only in part, the schedule moves with them. Ask for a plan that names each input, its owner and the date it is due, and for the test sequence that will confirm node sizing, heap, shard count and storage. A written scope should state the timeline that depends on those inputs, not a generic number.
What does our team need to provide for a sizing exercise?
Sizing relies on evidence from your own workload, so the team needs to supply a set of inputs before measurement starts:
- Sample data: representative documents or log lines, including field counts and typical sizes.
- Query logs: the searches, aggregations and dashboards users run, with their frequency and latency expectations.
- Retention rules: how long each data set must stay searchable, and what must be deleted or archived.
- Growth forecasts: expected ingestion rates and peak periods over the planning horizon.
- A test cluster: access to a non-production environment that can be loaded and stressed.
- Named owners: people who can answer questions on data meaning, business priorities and change approval.
Missing inputs usually mean assumptions that must be revisited later, so confirm each one before the work is scoped.
Can our internal team size OpenSearch without outside help?
Yes, many teams can size a cluster internally if they have engineers who know Elasticsearch or OpenSearch and access to production-like data. The work that needs specialized testing skill is load testing that produces credible numbers, interpreting heap, segment and merge behavior, designing a shard strategy that holds up as indices roll over, and checking that the design still works when a node or zone fails. Teams without recent experience in those areas often benefit from a short review of their plan before committing hardware. Decide early who will own the sizing decisions after handover, since the cluster will change over its life.
Can an OpenSearch cluster be resized later, and what does that involve?
Adding data nodes is usually straightforward, but changing the number of primary shards on an existing index is not a simple setting change. OpenSearch offers ways to reduce shard counts for an existing index, but increasing primary shards generally requires creating a new index with the desired layout and moving data into it, which is a reindexing task. Replica counts can be changed on a live index. The practical cost is therefore the time, compute and temporary storage needed to reindex, plus testing and any client changes. Designing shard sizes and index rollover up front reduces how often this is needed. Confirm the exact operations supported by your target version before relying on them.
Does OpenSearch have a license fee?
No license fee applies to the OpenSearch software itself. All software in the OpenSearch project is released under the Apache License, Version 2.0, and the OpenSearch FAQ does not describe any paid edition. The main costs of running it are the hardware or cloud instances that host the nodes, the storage and its retention period, and the staff who build, secure, upgrade and operate the cluster. Some of those costs are one-time, such as implementation, while infrastructure and operations recur. Ask any vendor or partner to separate software from infrastructure and labor in a quote, so you can compare like with like.
How DeployOpen scopes, builds and hands over OpenSearch sizing work
DeployOpen approaches OpenSearch cluster sizing and shard strategy as a written, fixed-scope piece of work inside your own infrastructure. We start from your workloads, data volumes and retention needs, then build and document the sizing model so your team can explain and maintain it after handover.
How we scope
- Inventory the use case, data sources, daily ingestion volume and query patterns for each index family.
- Agree retention periods and growth assumptions in writing before any sizing model is built.
- Confirm the target OpenSearch version and deployment method, such as Helm, the Kubernetes Operator or packages, from the official install options.
How we build
- Define node roles and sizing for memory, CPU and storage, with dedicated cluster manager nodes where the design calls for them.
- Set shard counts and target shard sizes per index, and document the rollover and allocation rules that keep shards within range.
- Load-test ingestion and search against representative data, then record results and adjust the model before it is accepted.
How we hand over
- Deliver the written sizing model, shard strategy, assumptions and load-test results as versioned documentation.
- Walk your platform and operations engineers through how to recalculate sizing when volume or retention changes.
- Agree a handover checklist covering open risks, threshold alerts to watch and the growth points that should trigger a review.
How we support
- Offer ongoing support for sizing reviews as data volume grows, available as a retainer under a separate written agreement.
- Plan sizing checks alongside OpenSearch minor releases, which arrive about every eight weeks, so changes are tested before rollout.
- Confirm with your team and the OpenSearch release notes which support windows apply to the version you run.

