Chapter 45 · Amazon Opensearch Service
Subchapter 45.9
references/assessment-shape-sizing-only.mdMarkdown9 KBView on GitHub
SIZING_ONLYConcrete instance class + node count + storage formula. Not a migration plan, not a full assessment, not a 9-section report. The user wants to know and in as few words as possible.
Use this recipe when the user asks one of:
r5.4xlarge on self-managed — what’s the AOS equivalent?”r7g.large.search do I need for 80 GB indexed?”<workload>?”The hallmark: there is a workload to size, but no migration question, no schema paste, no ‘should I use OpenSearch’ framing. The user already chose AOS — they want a baseline today.
| Signal | Example |
|---|---|
| Capacity ask without migration verbs | “size for”, “provision for”, “what should I run” |
| Specific scalar inputs | data volume in GB/TB, doc count, QPS, vector count + dim |
| Source cluster spec they want mapped | “we run 6 × r5.2xlarge today” |
No schema.xml, no ES mapping, no “translate this query”, no traffic-and-readiness mix | — |
| Vector-search collection sizing without ingestion-pipeline questions | “50M × 768 vectors” |
If the user pastes an _cat/indices, traffic numbers, AND asks for a migration plan → that is FULL_ASSESSMENT, not SIZING_ONLY. If they ask “Managed vs Serverless” → COMPARATIVE_DECISION. If they ask “should I even use OpenSearch for 200 MB of Postgres rows” → ANTI_PATTERN_PUSHBACK.
Produce exactly these four blocks. No headings beyond what is shown — keep the response tight.
Detected shape: SIZING_ONLY — baseline for
<source_size><workload_type>on Amazon OpenSearch Service.
Lead with a single concrete recommendation:
Run 3 ×
r7g.large.searchdata nodes + 3 ×m7g.large.searchdedicated cluster managers across 3 AZs, 1 replica, EBS gp3 sized to<storage_number> GiB per data node.
Then 3-5 bullets with numeric justification — instance choice rationale, replica setting, cluster-manager sizing rationale, storage rounding, AZ count.
ALWAYS show the formula and substitute numbers, even when inputs are estimated:
min_storage = source × (1 + replicas) × 1.45
= 80 GiB × (1 + 1) × 1.45
= 232 GiB total cluster storage
≈ 78 GiB per data node (3 nodes), round to 100 GiB gp3If source data is unknown, present the tiered band instead (see below) — never invent a single number.
References:
bp-instances(opens in a new tab) ·bp-sharding(opens in a new tab) · https://calculator.aws (opens in a new tab).
That’s it. No other sections.
When the user names their existing self-managed/EC2 cluster, match the source profile instead of falling back to a greenfield baseline:
r5.2xlarge self-managed → recommend 6 × r7g.2xlarge.search (Graviton equivalent), not “3 × r7g.large is our default.”m5.xlarge self-managed → recommend 4 × m7g.xlarge.search.Only fall back to “3 × r7g.large.search“ greenfield baseline when the source size is <100 GB AND the user provided no source cluster.
When source size is not specified, do NOT guess. Present three bands and ask the user to confirm:
| Band | Source data | Suggested baseline | Notes |
|---|---|---|---|
| Small | <100 GiB | 3 × r7g.large.search data + 3 × m7g.large.search cluster manager, 1 replica, gp3 100 GiB/node | Smallest prod-credible footprint |
| Medium | 100–500 GiB | 3 × r7g.xlarge.search data + 3 × m7g.large.search cluster manager, 1 replica, gp3 sized via formula | Most common SMB workload |
| Large | >500 GiB | 6+ × r7g.2xlarge.search data + 3 × m7g.large.search cluster manager, OR1 if write-heavy logs | Consider OR1/UltraWarm tiering |
Always close the tiered version with: “Confirm source size and I will collapse to one recommendation.”
Do NOT produce any of the following in a SIZING_ONLY answer:
If the user asks for any of the above, route them: “That’s outside SIZING_ONLY — for migration path see FULL_ASSESSMENT, for cost open https://calculator.aws (opens in a new tab).”
User asks: “We have 80 GB of product-search data on a self-managed Elasticsearch 7.10 cluster running 4 × r5.xlarge. What should we run on AOS?”
Response:
Detected shape: SIZING_ONLY — baseline for 80 GiB product-search workload on Amazon OpenSearch Service, sized to match an existing 4 × r5.xlarge source.
Run 4 × r7g.xlarge.search data nodes + 3 × m7g.large.search dedicated cluster managers across 3 AZs, 1 replica, EBS gp3 at 80 GiB per data node.
r5.xlarge already proves the working set fits that RAM-to-data ratio; mapping to Graviton (r7g.xlarge.search) preserves the profile and gains ~20% price/perf.m7g.large.search × 3 covers up to 30 nodes / 15K shards on OS 2.17+ — well above this footprint.min_storage = source × (1 + replicas) × 1.45
= 80 GiB × (1 + 1) × 1.45
= 232 GiB cluster total
≈ 58 GiB per data node (4 nodes); round to 80 GiB gp3References: bp-instances (opens in a new tab) · bp-sharding (opens in a new tab) · https://calculator.aws (opens in a new tab).
Tick every box before sending. If any box is unticked, fix the response — don’t ship it.
m7g.large.search × 3 (or larger per the cluster-manager-sizing table in sizing.md).r7g/r8g family). r6g only with explicit user justification._reindex.remote, Migration Assistant for Amazon OpenSearch Service.