AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a unified framework for interacting with Amazon OpenSearch Service (AOS) and OpenSearch Serverless (AOSS). It covers the full lifecycle of OpenSearch operations, including migration from legacy systems like Solr or Elasticsearch, infrastructure provisioning, advanced search implementation (including vector and RAG), and observability through log and trace analytics. It also features an Agentic AI Assistant for natural language data exploration and incident investigation, ensuring users can navigate complex cluster management and data analysis tasks without manual query crafting.
What it does
- Guides migration workflows from Solr, Elasticsearch, or self-managed OpenSearch to AOS/AOSS.
- Assists with provisioning, lifecycle management, and monitoring of domains and collections.
- Facilitates implementation of vector, semantic, and hybrid search, including RAG with Bedrock.
- Supports log and trace analytics using PPL, OpenTelemetry, and anomaly detection.
- Provides an Agentic AI Assistant for natural language querying and automated incident root cause analysis.
- Enforces operational best practices for sharding, storage tiering, and security configurations.
When to use it
- When planning a migration from legacy search engines to Amazon OpenSearch Service.
- When setting up or optimizing search capabilities, including vector search and RAG.
- When troubleshooting cluster health, performance, or shard allocation issues.
- When performing log or trace analysis to investigate system incidents.
- When you need to generate optimized PPL or DSL queries using natural language.
Advantages
- Centralizes complex operational knowledge across six distinct OpenSearch capabilities.
- Reduces manual query complexity by leveraging the Agentic AI Assistant.
- Provides clear, actionable guidance on production failure modes and migration blockers.
- Standardizes interactions through consistent CLI and data-plane patterns.
- Promotes architectural best practices for scaling and cost-effective storage tiering.
Usage examples
- “How do I migrate my existing Solr index to Amazon OpenSearch Service?”
- The agent identifies the migration capability, explains that Solr to OpenSearch is a refactor migration, and guides you through using the Migration Assistant for data backfill.
- “Why is my cluster status yellow and how can I fix it?”
- The agent uses the AI Assistant capability to analyze cluster health, check shard allocation, and provide specific commands or steps to resolve unassigned shards.
- “Help me set up a RAG pipeline using Bedrock and my OpenSearch domain.”
- The agent routes to the search capability, providing instructions on configuring Bedrock connectors and vector index mappings for semantic retrieval.
- “Find the root cause of the 503 errors in my application logs from the last hour.”
- The agent utilizes the AI Assistant to query logs, perform time-series analysis, and correlate findings to identify the likely root cause of the errors.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/aws/amazon-opensearch-service/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip amazon-opensearch-service.zip -d .agents/skills
Documentation by AWS
Amazon OpenSearch Service — the unified skill
This skill answers anything about Amazon OpenSearch Service or Serverless across six capabilities. Step 0 below routes the question to ONE capability and points at that capability's entry-point reference. Everything else — when to dispatch, sub-references, capability-specific facts, cross-capability links — lives in the entry-point reference for that capability.
AWS MCP server is recommended, not required. Capability references show standard AWS CLI commands as the primary syntax (e.g.,
aws opensearch describe-domain,aws opensearchserverless create-collection). Where the AWS MCP server is available, itscall_awstool offers a streamlined alternative — but every operation in this skill MUST work via the AWS CLI alone. Data-plane HTTP calls against AOS / AOSS useawscurlfor SigV4-signed requests; this works in both contexts.
Step 0: detect the capability — first thing you do
Pick one of the six capabilities below. State the detected capability in your first sentence (e.g., "Detected capability: SEARCH — semantic search setup with Bedrock embeddings."). Then load the entry-point reference; that file describes when to dispatch, indexes the rest of the capability's files, and routes you to the next step.
| Capability | Entry-point reference |
|---|---|
| migration — Solr / Elasticsearch / self-managed OpenSearch into AOS or AOSS. Schema/query translation, sizing, cutover. | references/assessment-workflow.md |
| provisioning — Provisioning and managing AOS domains and AOSS collections. Lifecycle, upgrades, storage tiers, FGAC, monitoring. | references/provisioning-reference.md |
| search — Vector / semantic / hybrid / sparse / dense / RAG retrieval. Bedrock connectors, FAISS HNSW vs Lucene. | references/search-semantic-search-guide.md |
| log-analytics — Log search, observability, PPL, OSI ingestion, anomaly detection, OpenSearch Dashboards. Splunk/Datadog/ELK alternatives. | references/log-analytics-guide.md |
| trace-analytics — Distributed traces with OpenTelemetry. Span queries, service maps, Data Prepper. | references/trace-analytics-trace-queries.md |
| ai-assistant — Agentic AI Assistant: auto-discovers indices, generates optimized PPL/DSL queries, summarizes results, and investigates incidents end-to-end. No manual query crafting needed. | references/ai-assistant.md |
If a prompt spans capabilities (e.g., "migrate from Solr AND set up RAG on the new domain"), pick the dominant capability for the response and close with a one-line handoff to the other capability's entry-point ref.
Universal rules (apply to ALL capabilities)
These rules apply to every response, regardless of capability. Capability-specific rules (sizing math, shape detection, Migration Assistant for Amazon OpenSearch Service capability matrix, k-NN engine selection) live in the entry-point references, not here.
Report header (every multi-section response). Begin every multi-section response with a single fenced metadata block:
> Generated: <ISO 8601 timestamp> | Skill: amazon-opensearch-service v<N>. Get the time by calling thecurrent_timetool (returns ISO 8601 in UTC). Read the skill version from this file's frontmatterversion:field. For one-line answers (terse FOCUSED_OPERATIONAL replies, anti-pattern refusals) the header is optional; for any multi-section deliverable it is REQUIRED. Place it immediately after the report title and before the first##heading.No dollar estimates (HARD CONSTRAINT). Never produce
$X/month,~$1,500, or any dollar figure. Route every cost question to https://calculator.aws and stop. If a sub-reference contains dollar figures, treat them as informational context only and do NOT pass them through to the user.No credential leakage (HARD CONSTRAINT). Never include master usernames, KMS key ARNs, VPC endpoint URLs, instance IPs, or account IDs in generated output.
Pick one for every A-vs-B decision. Name a primary recommendation in one line with a one-sentence reason. A "go with B if..." caveat is allowed AFTER the primary; never lead with conditional-only guidance.
Source restatement. The first 2–3 sentences must restate the source (engine + version + scale) when known, or restate the customer's question in concrete terms. The very first text the user sees must NOT be tool narration, meta-commentary, the report title, or simply restating the question verbatim.
No marketing tone. Do NOT use "seamless", "robust", "best-in-class", "production-hardened", "enterprise-grade", "world-class", "cleanly", "elegant". Do NOT stack 3+ vague hedges ("typically", "generally", "usually", "in most cases") in a single recommendation — be specific about when it does and does not apply.
Cross-capability handoff. When a user prompt spans capabilities (e.g., "migrate from Solr AND set up RAG on the new domain"), pick the dominant capability for the response, then close with a one-line handoff: "For <other capability>, see
references/<other-capability>-<entry>.md."
Cross-cutting references (used across multiple capabilities)
These references are not capability-prefixed because they apply across capabilities. Capability entry-point references load them when relevant; SKILL.md never loads them directly.
references/sizing.md— sizing math, instance family details, OR1 trade-offs, watermarks, JVM heap rules.references/vector-knn.md— k-NN engines, memory math, RAG ingestion patterns, ELSER alternatives.references/observability.md— log analytics patterns, ISM, UltraWarm/Cold tiering, Splunk/Datadog migration playbooks.references/security.md— FGAC, encryption, VPC patterns, audit logs, compliance posture.references/personas.md— communication style per persona.references/assessment-gotchas.md— production gotcha catalog (cite by number in Migration specifics or Risks/blockers tables; each gotcha carries aCategory:tag that determines its lane).references/assessment-knowledge-retrieval.md— topic → tool → URL recipe for batched verification.
Assets (assets/): report templates for FULL_ASSESSMENT renderings (Solr-source, ES-source, executive summary).
What this skill does NOT do
Estimate dollar costs. Pricing changes monthly and account-specific (RI, Savings Plan, EDP) discount math is outside this skill's reliable scope. Use https://calculator.aws.
Move data. Use Migration Assistant for Amazon OpenSearch Service (Historical Data Migration for backfill, Live Traffic Migration for live cutover).
Build embedding models. Use Amazon Bedrock or SageMaker.
Replace Splunk SPL or Datadog APM 1:1. Some queries / detectors / dashboards need rewriting.
Tune relevance for a specific catalog. Use OpenSearch Benchmark
big5workload + your own judgment list.
Guardrail — where this skill's own files live (MCP vs local install)
This skill can be loaded two ways, and they resolve the skill's own bundled files from different places. Determine how the skill was loaded before reading a reference or running a script:
Loaded through the AWS MCP server's
retrieve_skilltool: The skill is not installed on the local filesystem. You MUST fetch each reference or script viaretrieve_skillwith thefileparameter (e.g.file="references/architecture.md"orfile="scripts/deploy.py"), and run the script from the returned content. Do NOTfile_readthese paths locally — they do not exist on disk.Installed locally (e.g.
.kiro/skills/your-skill/or~/.claude/skills/your-skill/): Read and run files from the local skill directory using relative paths.
This distinction applies only to the skill's own packaged files. User data and
session artifacts are always read from and written to the user's working
directory. Never fetch or write customer data through retrieve_skill.
Files
- ATTRIBUTION.mdAdded by AutoGineer930 B
- LICENSELicence file added by AutoGineer9.9 KiB
- NOTICELicence file added by AutoGineer67 B
- SKILL.md9.2 KiB
- assets/elasticsearch-gap-register.md5.1 KiB
- assets/elasticsearch-index-template-skeleton.md4.2 KiB
- assets/elasticsearch-report-template.md7.8 KiB
- assets/executive-summary-template.md3.0 KiB
- assets/report-template.md12.9 KiB
- assets/solr-gap-register.md3.8 KiB
- assets/solr-index-template-skeleton.md3.7 KiB
- assets/solr-report-template.md5.9 KiB
- assets/tech-deepdive-template.md6.2 KiB
- references/ai-assistant.md18.0 KiB
- references/assessment-gotchas.md17.1 KiB
- references/assessment-knowledge-retrieval.md9.3 KiB
- references/assessment-shape-anti-pattern-pushback.md10.4 KiB
- references/assessment-shape-comparative-decision.md12.9 KiB
- references/assessment-shape-focused-operational.md9.9 KiB
- references/assessment-shape-full-assessment.md20.7 KiB
- references/assessment-shape-overview.md12.1 KiB
- references/assessment-shape-schema-conversion.md8.9 KiB
- references/assessment-shape-sizing-only.md9.4 KiB
- references/assessment-shape-translation.md12.3 KiB
- references/assessment-workflow.md48.4 KiB
- references/compatibility-rubric.md5.9 KiB
- references/log-analytics-guide.md18.0 KiB
- references/log-analytics-osi-pipelines.md8.6 KiB
- references/log-analytics-troubleshooting.md1.6 KiB
- references/observability-ppl-reference.md15.1 KiB
- references/observability.md14.5 KiB
- references/personas.md10.4 KiB
- references/provisioning-agentic-setup.md4.8 KiB
- references/provisioning-domain-deploy-search.md2.2 KiB
- references/provisioning-domain-provision.md3.4 KiB
- references/provisioning-monitoring.md3.4 KiB
- references/provisioning-reference.md6.8 KiB
- references/provisioning-serverless-agentic-setup.md14.9 KiB
- references/provisioning-serverless-deploy-search.md6.7 KiB
- references/provisioning-serverless-deprovision.md4.0 KiB
- references/provisioning-serverless-provision.md8.8 KiB
- references/provisioning-storage-tiers.md2.1 KiB
- references/provisioning-troubleshooting.md8.0 KiB
- references/provisioning-upgrades.md5.4 KiB
- references/readiness-rubric.md3.4 KiB
- references/search-bedrock-connectors.md3.8 KiB
- references/search-dense-vector-models.md5.5 KiB
- references/search-document-processing-guide.md7.7 KiB
- references/search-evaluation-guide.md5.3 KiB
- references/search-index-config.md2.4 KiB
- references/search-recipes.md12.9 KiB
- references/search-semantic-search-guide.md18.2 KiB
- references/search-sparse-vector-models.md4.9 KiB
- references/search-troubleshooting.md1.9 KiB
- references/security.md9.3 KiB
- references/sizing.md12.2 KiB
- references/source-elasticsearch.md6.7 KiB
- references/source-opensearch.md4.8 KiB
- references/trace-analytics-trace-ingestion.md3.3 KiB
- references/trace-analytics-trace-queries.md13.9 KiB
- references/trace-analytics-troubleshooting.md1.6 KiB
- references/vector-knn.md12.9 KiB
references/assessment-shape-focused-operational.md
Case shape — FOCUSED_OPERATIONAL
A targeted "what command do I run?" answer for a small, well-bounded migration where the customer has already decided to move and just wants the runbook. Output is a decision rule + concrete steps + one central gotcha, nothing more. No assessment, no readiness, no risk register.
When to dispatch here
Use FOCUSED_OPERATIONAL when the customer's question is bounded by a clear operational threshold and the answer is a sequence of commands, not a strategy. The agent should pick this shape — over FULL_ASSESSMENT or TRANSLATION_TASK — when ALL three are true:
Size is small or stated as "tiny" — under ~100 GB total or "a few indexes" or "one index"
Decision criteria is explicit in the question — "cheapest", "quickest", "simplest", "minimum-downtime"
Source/target pair is obvious — version is given or trivially inferable, target is clearly Amazon OpenSearch Service Managed (not Serverless deliberation)
If the customer is debating Managed vs Serverless, asking about cost trade-offs, or has 500+ GB / multi-cluster scope — that is FULL_ASSESSMENT, not this shape.
Detection signals
Keywords that trigger this shape:
"cheapest path" / "cheapest way" / "minimum cost"
"quickest migration" / "fastest way" / "in a weekend" / "in 2 hours"
"simplest" / "easiest" / "just want to move it"
"small index" / "<100 GB" / "tiny dataset" / "one index"
"what command do I run" / "give me the runbook"
Artifacts that trigger this shape:
Single index size mentioned, under 100 GB
Single ES/OS source version (e.g. "ES 7.17") + clear target ("AOS")
A concrete maintenance window stated ("2 hour window", "Saturday night")
No mention of multiple environments, regions, or compliance scope
Anti-signals (route elsewhere instead):
"Should we migrate?" → FULL_ASSESSMENT
"How do I translate this query?" → TRANSLATION_TASK
"What's wrong with this approach?" → ANTI_PATTERN_PUSHBACK
Pasted
schema.xml→ SCHEMA_CONVERSION
Required output template
Produce these sections, in this order, and nothing else:
1. Decision rule (one sentence)
State the single threshold from the skill that drives the chosen path. Format:
Rule:
<size threshold> <source/version constraint>→<chosen path>
Examples:
Rule:
<100 GB and ES ≥ 7.11→_reindex from remote (PRIMARY)— seereferences/assessment-gotchas.md#2.Rule:
<100 GB and ES ≤ 7.10→S3 snapshot + restoreis viable, but_reindex from remoteis still simpler.Rule:
<100 GB and Solr any version→document-level export + _bulk— Solr has no snapshot path to OpenSearch ever.
2. Runbook steps (numbered, copy-pasteable)
4–8 numbered steps. Each step is one action with a concrete command or click-path. Pre-create destination index, configure allowlist, run, validate. Example structure:
1. Pre-create destination index with target mappings/settings
2. Add source endpoint to reindex.remote.allowlist on the AOS domain
3. POST _reindex with remote.host pointing at source
4. Poll _tasks for the reindex task ID until completion
5. Validate doc count: GET <dest>/_count vs source count
6. (Optional) Update aliases / cut over reads3. One central gotcha (one short paragraph)
The single most likely failure mode for this exact path. Cite the gotcha number from references/assessment-gotchas.md. Examples:
ES 7.11+ snapshot prohibition (gotcha #2)
Solr is document-level only (gotcha #1)
Lucene 8→10 wall if also crossing OS 3.0 (gotcha #3)
4. References footer (one line)
A single line pointing to deeper material. Format:
Deeper: see
references/assessment-workflow.md§ Path scoring;references/assessment-gotchas.md#2 for the snapshot block.
NOT REQUIRED — explicitly OMIT
This shape must not include any of these. If you find yourself writing them, you have picked the wrong shape — escalate to FULL_ASSESSMENT.
Timeline & Resourcing — REMOVED FROM THE ENTIRE SUITE. No "engineer-weeks", no "Week 1 / Week 2", no resourcing estimates anywhere. Stop if you start typing this.
Executive summary — there is no exec audience for a runbook
Source fingerprint JSON — the size + version are already in the rule
Target shape selection (Managed vs Serverless vs Classic) — already implied by the decision rule
Sizing tables — the customer is moving a small dataset; default a single
r7g.large.search× 2 or whatever they haveReadiness scoring (7-dim, GREEN/YELLOW/RED) — irrelevant at this scope
Risk register / compatibility scan beyond the one gotcha
Citations section — the one-line References footer replaces it
Math derivations — only the threshold rule, no shard arithmetic, no IOPS, no heap math
Customer-specific trade-off discussion — they already chose; don't re-litigate
The 9 sections of FULL_ASSESSMENT are NOT used here. This shape produces 4 sections (Rule, Runbook, Gotcha, References), full stop.
Worked exemplar — 50 GB ES 7.17, 2-hour window
Customer: "I have a 50 GB index on ES 7.17 (self-managed EC2). Need to move it to Amazon OpenSearch Service in us-east-1 with a 2-hour maintenance window this Saturday. Cheapest/quickest path?"
Response:
Rule: <100 GB and ES ≥ 7.11 → _reindex from remote is the primary path. Snapshot/restore is not available — see references/assessment-gotchas.md #2.
Runbook:
Pre-create the destination index on the target domain with mappings and settings copied from source. The remote
_reindexdoes NOT carry mappings — only_source. Pull source mappings viaGET <src>/<index>/_mappingand PUT them on the destination.Add the source endpoint to the domain's
reindex.remote.allowlistvia Console → Domain → Cluster settings (or theUpdateDomainConfigAPI). Format:host:port(e.g.10.0.5.20:9200). Apply — wait for the blue/green to finish (~15 min).Run the reindex asynchronously. Auth — prefer SigV4 when the source endpoint is IAM-capable: sign the
_reindexPOST withawscurl(or a SigV4 proxy) so no long-lived static credentials traverse the request body. If the source requires basic auth (legacy self-managed cluster), retrieve username/password from AWS Secrets Manager at runtime (aws secretsmanager get-secret-value --secret-id <reindex-source-creds>) and inject them as ephemeral inputs — do NOT hard-code credentials in scripts, IaC, or runbooks.POST _reindex?wait_for_completion=false&slices=auto { "source": { "remote": { "host": "https://10.0.5.20:9200" // SigV4 (preferred): omit username/password; sign the POST itself. // Basic-auth fallback (only when source is not IAM-capable): pull from Secrets Manager, inject here. // "username": "${SECRET_USERNAME}", "password": "${SECRET_PASSWORD}" }, "index": "products", "size": 1000 }, "dest": {"index": "products"} }Capture the returned
taskid.Poll progress:
GET _tasks/<task_id>untilcompleted: true. For 50 GB at typical throughput, expect 20–60 minutes — well within the 2-hour window.Validate doc counts:
GET <src>/products/_countvsGET <dest>/products/_count. They must match. Spot-check a few_ids.Cut over reads by repointing the application or aliasing.
Central gotcha — ES 7.11+ snapshot prohibition (gotcha #2). See references/assessment-gotchas.md #2 for the failure mode and reasoning. The _reindex from remote path is the supported workaround at this size. If the dataset were larger (>100 GB) you would graduate to Migration Assistant for Amazon OpenSearch Service Historical Data Migration instead — but at 50 GB, _reindex is simpler.
Deeper: see references/assessment-workflow.md § Path scoring; references/assessment-gotchas.md #2 for the snapshot block.
Pre-emit checklist (shape-specific — tick before sending)
[ ] Decision rule is one line with an explicit threshold (e.g.
<100 GB,ES ≥ 7.11,Solr any)[ ] Runbook is 4–8 numbered steps, each with a concrete command or click-path
[ ] Pre-create destination is step 1 or 2 (never assume mappings carry over on
_reindex from remote)[ ] Allowlist / network config is an explicit step (most common runbook omission)
[ ] Validation step exists (doc count, spot check, or
_cat/indices)[ ] Exactly ONE gotcha cited, by number from
references/assessment-gotchas.md[ ] References footer is ONE line pointing to deeper material
[ ] No "Timeline" section, no "Week 1", no engineer-weeks. (REMOVED FROM SUITE.)
[ ] No exec summary, no readiness, no risk register, no sizing table, no fingerprint JSON
[ ] No sentence longer than ~30 words — operational tone, not consultative
[ ] No customer trade-off re-litigation — they chose, you execute
[ ] Total length under ~500 words — if longer, you've drifted into FULL_ASSESSMENT territory
[ ] First sentence states the rule, not a restatement of the customer's question
[ ] If Solr source: path is document-level export +
_bulk(gotcha #1), never snapshot[ ] If crossing OS 3.0 (target is 3.x from any 1.x or 2.x source): central gotcha section MUST include BOTH (a) the Lucene segment wall — phrase it as "Lucene 10 cannot read Lucene 8 segments — segment format is forward-only, so every pre-2.x index must be reindexed before the cluster reaches 3.x" — AND (b) at least one named OS 3.x breaking change beyond the Lucene wall: JDK 21 minimum runtime, Security Manager → Java agent migration for plugins, NMSLIB engine removal (k-NN must reindex into FAISS first), or renamed k-NN settings. One sentence each is sufficient. Without both items the response will be marked incomplete on any 1.x→3.x or 2.x→3.x crossing.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs an MCP server
Security
What our scanner noticed· Low risk
- Instructions that use the network
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- AWS
- Publisher
- AWS (Official)
- Source
- aws/agent-toolkit-for-aws · plugins/aws-data-analytics/skills/amazon-opensearch-service · commit 0a218f8
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- NOTICE (added by AutoGineer from NOTICE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Also distributed in
- aws/agent-toolkit-for-aws
AutoGineer is not affiliated with or endorsed by AWS or AWS.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download amazon-opensearch-service.zip