← Volver al catálogo

Amazon OpenSearch Service

En una frase: Búsqueda de texto completo y análisis de logs con índices, paneles y búsqueda vectorial
Categoría: Análisis (Analytics)

Qué es

Amazon OpenSearch Service ejecuta OpenSearch (la bifurcación de código abierto de Elasticsearch) y versiones antiguas de Elasticsearch, junto con OpenSearch Dashboards para visualizar. Sirve para tres cosas: búsqueda de texto completo con relevancia, análisis casi en tiempo real de registros y eventos, y búsqueda vectorial para aplicaciones de IA (inteligencia artificial) generativa (RAG). Puedes usar dominios (clústeres que dimensionas) u OpenSearch Serverless (colecciones que escalan solas).

Conceptos clave

  • Dominio: clúster gestionado con nodos de datos, nodos maestros dedicados (para estabilidad) y, opcionalmente, varias zonas de disponibilidad.
  • Índices y shards: los documentos JSON (JavaScript Object Notation: formato de datos en texto) se guardan en índices divididos en shards primarios y réplicas repartidos entre nodos.
  • Niveles de almacenamiento: hot (discos de los nodos, rápido), UltraWarm (datos de solo lectura respaldados en S3 (Simple Storage Service), mucho más barato) y cold (desacoplado del cómputo, se adjunta cuando hay que consultarlo). Las políticas ISM (Index State Management: políticas que mueven índices entre niveles) mueven los índices entre niveles según su antigüedad.
  • Multi-AZ con espera (standby): tres zonas, una de ellas en espera, para conmutar sin pérdida de capacidad.
  • OpenSearch Serverless: colecciones de tipo búsqueda, series temporales o búsqueda vectorial; la capacidad se mide en OCU (OpenSearch Compute Unit: unidad de capacidad de OpenSearch Serverless) y escala sola. La generación NextGen puede bajar a cero OCU cuando no hay actividad.
  • Búsqueda vectorial (k-NN): guarda embeddings y encuentra los vecinos más cercanos; es uno de los almacenes de vectores de Bedrock Knowledge Bases.
  • Ingesta: OpenSearch Ingestion (canalizaciones gestionadas), Amazon Data Firehose, integraciones zero-ETL con DynamoDB y S3, o suscripciones de CloudWatch Logs.
  • Seguridad detallada (fine-grained access control): permisos por índice, documento y campo, con usuarios internos, IAM (Identity and Access Management) o SAML (Security Assertion Markup Language: estándar de inicio de sesión federado).

Casos de uso típicos

  • Buscador de un comercio electrónico con relevancia, facetas y autocompletado.
  • Análisis centralizado de registros de aplicaciones y de seguridad con paneles.
  • Observabilidad: trazas, métricas y registros en un mismo sitio.
  • Almacén de vectores para RAG y búsqueda semántica.
  • Búsqueda de texto sobre datos de DynamoDB sin montar ETL (Extract, Transform, Load: extraer, transformar y cargar datos).

Cuándo NO usarlo

  • Como base de datos principal y transaccional: RDS (Relational Database Service), Aurora o DynamoDB.
  • Consultas SQL (Structured Query Language: lenguaje de consultas de bases de datos relacionales) puntuales sobre registros en S3 sin mantener un clúster: Athena.
  • Almacén de datos analítico con SQL y JOIN complejos: Redshift.
  • Búsqueda empresarial en documentos con conectores y respuestas listas sin gestionar índices: Kendra.

Comparativa con servicios parecidos

NecesidadServicio adecuado
Texto completo, relevancia y paneles en tiempo casi realOpenSearch Service
SQL sin servidor sobre ficheros en S3Athena
Almacén de datos para BI (Business Intelligence: análisis de datos para el negocio) con SQLRedshift
Búsqueda empresarial gestionada con conectoresKendra
Registros y consultas sin otro servicioCloudWatch Logs Insights

Modelo de precios

En los dominios se paga por hora de cada nodo según su tipo (con instancias reservadas), el almacenamiento EBS (Elastic Block Store), UltraWarm y cold por GB, y la transferencia de datos. En Serverless se pagan las OCU de indexación y de búsqueda por hora y el almacenamiento en S3 por GB. OpenSearch Ingestion cobra por unidad de canalización.

Seguridad y alta disponibilidad

  • Dominio dentro de una VPC (Virtual Private Cloud) (acceso privado) o público con políticas de acceso.
  • Cifrado en reposo con KMS (Key Management Service), cifrado entre nodos y HTTPS (HTTP Secure: HTTP cifrado con TLS) obligatorio.
  • Fine-grained access control y autenticación con IAM, Cognito o SAML para Dashboards.
  • Varias zonas con réplicas o Multi-AZ con espera; instantáneas automáticas en S3.
  • Serverless es de alta disponibilidad por defecto.

Trampas de examen

  • "Búsqueda de texto completo" o "búsqueda con relevancia": OpenSearch.
  • "Paneles casi en tiempo real sobre registros": OpenSearch con Dashboards (ingesta con Firehose u OpenSearch Ingestion).
  • "Consultas SQL ocasionales sobre registros en S3": Athena, no un clúster.
  • "Guardar meses de registros poco consultados de forma barata": UltraWarm o cold.
  • "Almacén de vectores para RAG": OpenSearch Serverless (búsqueda vectorial).
  • "Buscar en los datos de DynamoDB": integración zero-ETL con OpenSearch.

Preguntas de práctica

Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.

Fuentes