All skills
aws avatar

/amazon-opensearch-service

@04f39cf

Guides migration, provisioning, search, log-analytics, trace-analytics, and Agentic AI Assistant workflows for Amazon OpenSearch Service and Serverless across six capabilities — migration (Solr/ES/self-managed into AOS/AOSS, schema/query translation, sizing, cutover); provisioning (domain + AOSS lifecycle, upgrades, FGAC, monitoring); search (vector / semantic / hybrid / RAG with Bedrock); log-analytics (PPL, OSI, anomaly detection, Dashboards); trace-analytics (OTel spans, service maps, Data Prepper); ai-assistant (natural language data exploration, incident investigation, root cause analysis). Triggers on OpenSearch, AOS, AOSS, Elasticsearch, Solr, vector/k-NN/semantic/hybrid search, RAG, log analytics, PPL, trace analytics, ISM, FAISS, HNSW, Migration Assistant, UltraWarm, OR1, query my data, analyze logs, investigate errors, root cause analysis.

Use this Skill: https://skilld.dev/gh/aws/agent-toolkit-for-aws/amazon-opensearch-service

This session only. Nothing lands on disk.

assetselasticsearch-index-template-skeleton.md

≈1.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Index Template Skeleton — Elasticsearch / OpenSearch source

Use this when the source is Elasticsearch or OpenSearch. Most ES/OS mappings carry over 1:1; this skeleton is the audit target for the handful of constructs that need action (see the ES field/mapping → OpenSearch table in source-elasticsearch.md). For Solr sources use solr-index-template-skeleton.md instead.

Migration Assistant for Amazon OpenSearch Service does this for you. Historical Data Migration's metadata-migration phase translates the source mappings + index templates into OpenSearch-compatible form (stripping _type, converting dense_vector→knn_vector, flattened→flat_object) and reindexes documents. This skeleton is for auditing Migration Assistant for Amazon OpenSearch Service's output and for the rare override — NOT a manual step in the migration plan.

{
  "index_patterns": ["<index-name>-*"],
  "template": {
    "settings": {
      "number_of_shards": "<from Step 5 sizing>",
      "number_of_replicas": 1,
      "refresh_interval": "30s",
      "analysis": {
        "analyzer": {
          "<custom_analyzer>": {
            "type": "custom",
            "tokenizer": "<tokenizer>",
            "filter": ["lowercase", "<filter>"]
          }
        }
      }
    },
    "mappings": {
      "properties": {
        "<keyword_field>": { "type": "keyword" },
        "<text_field>": {
          "type": "text",
          "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } }
        },
        "<int_field>": { "type": "integer" },
        "<date_field>": { "type": "date", "format": "strict_date_optional_time||epoch_millis" },
        "<geo_field>": { "type": "geo_point" },
        "<vector_field>": {
          "type": "knn_vector",
          "dimension": "<dim>",
          "method": { "name": "hnsw", "engine": "faiss", "space_type": "l2" }
        }
      }
    }
  }
}

Fill-in checklist

  • index_patterns matches the target index / alias name.
  • number_of_shards / number_of_replicas come from Step 5 (Estimate Sizing); refresh_interval defaults to 30s for prod per sizing.md, not 1s.
  • _type removed. Multi-type (ES 6.x) or _doc-placeholder (ES 7.x) mappings are flattened — types do not exist in OpenSearch (nugget #9).
  • fielddata: true stripped from text fields and replaced with a .keyword subfield + doc_values (nugget #8) or the node OOMs on first aggregation.
  • dense_vector → knn_vector with an explicit method/engine chosen per the k-NN engine table in vector-knn.md; recall validated against source. [verify] the current default engine for the target version.
  • flattened → flat_object.
  • Runtime fields are pre-computed at ingest (no runtime mapping equivalent); reindex required.
  • _source: {enabled: false} indexes are migrated via Migration Assistant for Amazon OpenSearch Service Historical Data Migration only (nugget #22), and _source is re-enabled on the target.
  • Field aliases (alias type) carry over unchanged.
  • Painless scripts re-tested; inline scripts noted as a Serverless NextGen blocker if that target is in play.
  • Custom analyzers replicated under analysis; filter order preserved (lowercase before synonym_graph/stop).
  • Domain-level security verified before deployment: encryption at rest with a customer-managed KMS key (EncryptionAtRestOptions); node-to-node encryption (NodeToNodeEncryptionOptions); HTTPS enforced (EnforceHTTPS: true, TLSSecurityPolicy: Policy-Min-TLS-1-2-2019-07); fine-grained access control with IAM/SAML/OIDC; access policy scoped by principal and source ARN/account. You MUST NOT use 0.0.0.0/0.
  • If using a custom domain endpoint, an ACM-managed certificate ARN is configured (CustomEndpoint.CertificateArn). You MUST NOT use a self-managed certificate.

What goes where in the final report

You MUST embed the filled-in template in section 2. Schema / Mapping of the report. You MUST cite the source _mapping field name for each non-trivial mapping decision in the table.

Source: SKILL.md on GitHub

No alerts28d3 checks · Risk SAFE
  • Gen Agent Trust Hub28d

    This skill is a highly structured and security-conscious guide for managing Amazon OpenSearch Service and Serverless. It provides comprehensive instructions for migrations, provisioning, and analytics while strictly adhering to AWS security best practices, such as using SigV4 signing, IAM least-privilege, and AWS Secrets Manager for credential handling.

  • Socket28d

    No alerts

  • Snyk28d

    Risk: LOW · No issues

Signed by skilld at 04f39cf. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 2 months ago
metadata
{
  "version": "2"
}

README badge

README badge for aws/agent-toolkit-for-aws/amazon-opensearch-service