OpenSearch-compatible · Your S3 · Your AWS account

Search that lives in your S3 bucket.

Search is an OpenSearch-compatible search server that keeps every segment, manifest and write-ahead log in an S3 bucket in your own AWS account. The server is disposable: any fresh instance can rebuild its state from the bucket. Point your existing OpenSearch client at it and stop paying for an always-on cluster just to hold data you rarely query.

Free 30–60 day pilot. Licensed per installation. Your data never leaves your account, and ending a license never deletes it.

install.specone-click stack
Data
your S3 bucket
Compute
1× EC2 t4g.small (default)
API
OpenSearch REST subset
Client tested
opensearch-py
Write ACK
after WAL is in S3
Retrieval
lexical · semantic · hybrid
Revocation deletes data
never

01The problem

A search cluster is an expensive place to keep data you rarely query.

Most search data is cold: logs, archives, catalogs, internal documents. It has to be searchable, but it is not searched constantly. A conventional cluster still bills you by the node-hour to keep all of it on attached disks.

Search inverts the arrangement. S3 is the durable source of truth. The server is a cache-affine worker that fetches only the segments a query needs and keeps the hot ones on local disk. Durability comes from your bucket, not from replicas on servers.

  • A
    Always-on nodesA production-HA OpenSearch domain costs the same per node-hour at one query a minute as at a thousand.
  • B
    Storage tied to computeData sits on node-attached volumes, so holding more data eventually means paying for more nodes.
  • C
    Durability depends on the serversLosing nodes puts data at risk. With Search, losing the server loses only cache.
  • D
    Your data in someone else’s accountHosted search puts your index in a vendor account. Search runs entirely in yours.

02How it works

One disposable server. One bucket you own.

The one-click stack runs a single server in your account and stores everything durable in your S3 bucket. The only call home is a periodic license check.

Architecture Your application sends OpenSearch requests to the Search server, a disposable EC2 instance inside your AWS account. The server reads and writes segments, manifests and the write-ahead log in your S3 bucket, also inside your account. Every six hours the server fetches a signed revocation list from search.avanttechnologiesllc.com, outside your account. Your AWS account Client Your application opensearch-py / REST API key Compute · disposable Search server EC2 t4g.small (default) local segment cache rebuilt from S3 on start /_console /metrics read/write Durable · source of truth Your S3 bucket segments · manifests · WAL retained if the stack is deleted every 6h · license ID only Avant Technologies search.avanttechnologiesllc.com signed revocation list Architecture Your application sends OpenSearch requests to the Search server, a disposable EC2 instance inside your AWS account. The server reads and writes segments, manifests and the write-ahead log in your S3 bucket, also inside your account. Every six hours the server fetches a signed revocation list from search.avanttechnologiesllc.com, outside your account. Client Your application opensearch-py / REST API key Your AWS account Compute · disposable Search server EC2 t4g.small (default) local segment cache rebuilt from S3 on start read/write Durable · source of truth Your S3 bucket segments · manifests · WAL every 6h · license ID only Avant Technologies search.avanttechnologiesllc.com signed revocation list
Nothing durable lives on the server. Delete the instance and a fresh one recovers from the bucket. Delete the stack and the bucket stays.
  1. Write

    A write is acknowledged only after it is in the write-ahead log in your bucket. Real-time GET sees it immediately.

  2. Publish

    A refresh turns recent writes into immutable segments and publishes a new catalog epoch with a compare-and-swap. Published segments are never edited in place.

  3. Search

    Each query pins one consistent snapshot, skips segments that cannot match, serves cached segments locally, and fetches the rest from S3.

03Features

The parts of OpenSearch small teams actually use, on storage you own.

A deliberate subset. Anything unsupported fails with a clear error instead of being silently ignored. See the compatibility matrix.

OpenSearch-compatible API

Indices, _doc, _update, _bulk, _search, _msearch, _count, aliases, PIT with search_after, reindex and by-query tasks. Tested end to end with the official opensearch-py client and checked against a real OpenSearch instance in CI.

Your bucket is the database

Segments, manifests, catalog and write-ahead log all live in S3. Local disk is only a cache: a fresh server with bucket access recovers and serves search.

Acknowledged means durable

Writes return only once they are in the object-storage WAL. On real AWS, 5,000 of 5,000 acknowledged writes survived scaling every worker to zero.

Consistent snapshots

Every search pins one catalog epoch published with compare-and-swap, so a query never sees a half-published state. Fenced writers mean a stale server can never publish.

Pruning and cost guardrails

Segments that cannot match are skipped. Queries over the cost budget get a 429 instead of a surprise S3 bill, and _estimate shows a query’s cost before you run it.

Semantic and hybrid retrieval

Exact cosine search over dense_vector fields, optionally fused with keyword results using reciprocal-rank fusion. Bring your own vectors, or embed text with an Ollama model on the same host. Results include citations you can pass to your own LLM.

Document import

_documents accepts plain text or Markdown and chunks it automatically. Source IDs are immutable, so an identical retry resumes safely instead of duplicating content.

Security built in

API keys, HTTP Basic (Argon2id) and SigV4, with roles scoped to index patterns and a JSON audit log. Without an explicit override, the server refuses to start unauthenticated against S3.

Console and observability

A browser console at /_console for search, import, API keys and snapshots, plus Prometheus /metrics, /ready and detailed health endpoints.

04Economics

Measured on real AWS. Modeled with prices you can change.

Every figure is labeled Measured or Modeled and names the benchmark report it comes from. Please read the caveats below before relying on any number.

Read this first: not HA-to-HAThe one-click install you license is a single node. It is durable: an acknowledged write is already in S3 and survives losing the instance. It is not highly available: search is down while a failed instance is replaced. The benchmark figures below come from a separate three-task, three-AZ research topology. Comparing the one-click install with a 3-node HA OpenSearch domain is therefore not a like-for-like, HA-to-HA comparison.

Modeled
78–88% lower

Monthly infrastructure cost of the three-task research topology compared with production-HA Amazon OpenSearch Service (HA-to-HA), across 10 GB–1 TB corpora at 1–10 QPS. Not the one-click install.

f13b-modeled-economics.md · us-east-1 list prices, 2026-08-21

Measured
49.8 vs 114.0 ms

Sequential p50, three Search tasks head to head with a 3-node m7g.large OpenSearch domain. Same day, client, 20,000-doc corpus and query mix.

f13b-tier2-measured.md · 2026-08-21

Measured
5,000 / 5,000

Acknowledged writes recovered after every worker, and its cache, was destroyed and a fresh fleet started from S3.

f13a-gate-report.md · real AWS, us-east-1

Measured Local
50% fewer GETs

Segment pruning halved object-store reads per query (3.5 vs 7.0) on a mix where half the queries target an empty time window.

f8-a9b981f-1786662100.md · laptop, local-fs store

Modeled monthly infrastructure: 10 GB corpus at 1 QPS, three-AZ HA on both sides (research topology, not the one-click install)

Search (3× Fargate)
$55.87
OpenSearch, minimum production HA
$297.36
OpenSearch, AWS-recommended HA
$447.13

Infrastructure only, from scripts/f13b_cost_model.py. Every price is an input you can override. License fees are not included.

Total cost example: catalog or internal knowledge base, 10 GB at 1 QPS

Modeled

Search, Team edition · single node

Team license
$99.00
AWS infrastructure, estimated (one-click install)
≈ $21
Per month
≈ $120

Amazon OpenSearch Service · 3-node HA

Minimum production HA, 3× m7g.large
≈ $297
AWS-recommended HA, plus dedicated masters
≈ $447
Per month
≈ $297–$447

Single node versus HA. The two sides do not have the same availability. Estimates, not bills. The Search side is the one-click install at its defaults, priced from us-east-1 on-demand list prices (checked 2026-09-29): one t4g.small instance (≈ $12.26), 36 GB of gp3 storage (≈ $2.88), one public IPv4 address (≈ $3.65), two Secrets Manager secrets ($0.80), 10 GB of S3 plus requests (≈ $0.75) and logs (≈ $0.50). The OpenSearch side is modeled from f13b-modeled-economics.md. Excludes taxes, data transfer, an optional load balancer and embedding compute.

Caveats

  • The AWS benchmarks ran on a three-task Fargate research topology across three Availability Zones, not on the single-instance one-click install. A single instance is durable but has no redundancy and no SLA: search is unavailable while it is replaced. We have not published a validated monthly figure for the one-click install.
  • The head-to-head used a 20,000-document corpus. Large-corpus cold-cache latency was not measured live on either system. Latencies include roughly 20–40 ms of internet round trip from the test client.
  • Savings are modeled from AWS list prices (us-east-1, fetched 2026-08-21) and measured usage rates. Search is not cheaper than a single dev-class t3.small.search node in most modeled cells; that node costs about $26/month in compute, less than a Team license alone. Under adversarial assumptions (10× S3 GETs, 2× compute), the modeled savings fall to 40.6–80.3%.
  • The pruning and cold/warm-cache figures were measured on a laptop against a local-filesystem object store with 8,000 documents. Real S3 cold reads are slower.
  • No figure except the total cost example includes Search license fees.

05Security & data ownership

Your account, your bucket, your keys.

We sell you software, not a service that holds your data. Avant never has access to your AWS account.

Data ownership

  • Data stays in your S3 bucket, with Block Public Access, SSE-S3 encryption, versioning and TLS-only access in the one-click stack.
  • Revocation or expiry never deletes data. It stops the software, not your access to the bucket.
  • Deleting the stack retains the bucket. Uninstalling cannot remove your data.
  • Two outbound calls to Avant: the release download at install or upgrade (checksum-verified), and a revocation-list fetch every 6 hours that reveals your license ID and public IP. No documents, queries or credentials are ever sent. How the license check works.

Access control

  • Authentication is on in the AWS install. On any S3-backed deployment, the server refuses to start unauthenticated unless explicitly overridden.
  • API keys, HTTP Basic (Argon2id) and SigV4, with roles built from five actions over index patterns and a last-administrator guard.
  • No SSH. Instance access is through SSM Session Manager, and the instance role is scoped to your data bucket.
  • HTTPS through an optional load balancer using your ACM certificate. The server also supports SSE-KMS encryption and a JSON audit log; the one-click stack does not configure them (it uses SSE-S3).

06What it’s not (yet)

We would rather you know now.

Search suits cold and low-to-medium QPS workloads, such as logs and archives, catalogs, internal document search and retrieval for LLM apps, when you want the data in your own account. It is not a full OpenSearch replacement.

  • Not full OpenSearch. Each request targets exactly one index. There is no scroll, _cat, _mget, highlighting, gzip or ?q= URI search.
  • Limited aggregations. Only min, max, sum, avg, value_count and terms, with no sub-aggregations, date_histogram or scripting.
  • Strict mappings. There is no dynamic mapping and no arrays or nested fields. The analyzer is a simple lowercase chain, so relevance can differ from OpenSearch.
  • Exact vector search only. It scans up to 100,000 filtered documents. There is no ANN index and no knn query. Embeddings come from your own vectors or an Ollama model on the same host.
  • A single instance, no SLA. The one-click install has no high availability. It is not meant for high-QPS, latency-critical hot search.
  • Snapshots are not backups. They live in the same bucket. Rely on S3 versioning or your own backup for disaster recovery.
  • No multi-tenancy or SSO. There is no document- or field-level security and no OIDC/SAML. Cross-region DR is not enabled in this edition.
  • Text-only import. Convert PDF, Office and media files to text before importing.

07Pricing

A flat price per installation. Start with a free pilot.

No charge per GB, per query or per node. Every edition runs the same software; editions differ in installations, index limits, grace periods and support.

Pilot

Free

30 days, extendable to 60

Installations
1 evaluation installation
Indexes
Up to 10
Offline grace
7 days
Read-only after expiry
7 days
Support
Email, best effort
Request a pilot

Business

$299/month

or $2,990/year, 2 months free

Installations
3 production + 3 non-production; extra production $79/month each
Indexes
Unlimited
Offline grace
30 days
Read-only after expiry
14 days
Support
Priority email, same business day*; quarterly upgrade review
Get Business

Enterprise

Contact us

Annual or multi-year term

Installations
Custom
Indexes
Unlimited
Offline grace
Custom, up to 90 days for restricted-egress sites
Read-only after expiry
Custom, up to 30 days
Support
Named contact; invoicing and purchase orders; custom terms
Contact sales

Design partners The first 5 paying customers get 50% off their first year in exchange for regular feedback calls and agreeing to be a reference. Mention it when you get in touch.

  • Every edition includes everything. Lexical, semantic and hybrid search and the full OpenSearch-compatible API subset. Nothing is held back for higher tiers.
  • Prices are in US dollars and exclude taxes and your AWS bill. You pay AWS directly for the instance, S3 and any load balancer.
  • No uptime SLA in any edition today. The one-click install is a single node. Support times are response targets, not service-level commitments.
  • One license per installation. Index limits and grace periods are enforced by your signed license key. Installation counts are part of your order. See the license terms and grace periods by edition.

08FAQ

Questions we get

Is it a drop-in replacement for OpenSearch?

For a documented subset, yes. Official clients connect because the server identifies itself as OpenSearch 3.5.0 on the wire, and opensearch-py is tested end to end. Many OpenSearch features are unsupported, and each one returns an explicit error. Check the compatibility matrix against your queries before you plan a migration.

What happens if my license expires or is revoked?

Expiry starts a read-only grace period whose length depends on your edition (see the next question). After that the search and write APIs return 403. Revocation takes effect at the server's next revocation-list check, within about 6 hours. Health endpoints and GET /_license (with an administrator or monitor API key) keep working. Your bucket and everything in it is untouched.

After any end of license, for any reason, you can ask us within 30 days for a free export-only license valid for up to 30 days, so you can read your documents out (terms §7.6). See Licensing.

How long are the grace periods?

It depends on your edition. The exact periods are written into your signed license key.

Grace periods by edition
EditionOffline graceRead-only after expiry
Pilot7 days7 days
Team14 days7 days
Business30 days14 days
EnterpriseCustom, up to 90 daysCustom, up to 30 days

Offline grace is how long the server keeps full service when it cannot reach our revocation list, counted from the last successful check. After that it turns read-only until a check succeeds. Read-only after expiry is how long search keeps working, with writes refused, once your term ends.

Is it highly available?

No. The one-click install is a single node with no uptime SLA in any edition. It is durable: a write is acknowledged only once it is in your S3 bucket, so losing the instance loses no acknowledged data. But search is down while a failed instance is replaced. If you need an always-on, multi-node cluster, Search is not the right fit today.

What does Avant see about my installation?

Every 6 hours the server downloads a signed revocation list from this site. Our CDN logs record that request, which includes your license ID and your server’s public IP address. The server never sends your documents, queries, index names or credentials to us, and we have no access to your AWS account.

Can I get my data out if I stop using Search?

The bucket is yours, so you can always copy, back up or delete its objects with any S3 tool. Those objects are in the engine’s own segment format, though. To move documents into another search system, export them through the API (point-in-time + search_after) while your license is active or read-only. If you need more time, ask within 30 days after your license ends and we will issue a free export-only license valid for up to 30 days.

What will the AWS infrastructure cost?

AWS bills you directly for one EC2 instance (default t4g.small), its encrypted cache volume, an Elastic IP, S3 storage and requests, and the optional load balancer. We have not yet published a validated monthly figure for the one-click install. The modeled figures above are for a different, three-AZ topology; the total cost example uses them as a stand-in and says so.

Can I try it without an AWS account?

Yes. The local pilot runs on macOS or Linux against a local data directory, makes no AWS calls, and needs no license.

Does it answer questions, like a RAG system?

No. Search does the retrieval: keyword, semantic and hybrid, with citations to the source chunks. You pass those results to the language model of your choice. The engine does not depend on any LLM.

Try it on your data, in your own account.

Pilot licenses are free for 30–60 days. Tell us about your data and query volume, and we will tell you honestly whether Search is a good fit.