Clément Schanen

AnalytiqueService régional

OpenSearch Service

Permet d’indexer de grands volumes de données pour les rechercher et les analyser

Présentation

  • Moteur de recherche et d’analyse issu d’Elasticsearch
  • Entièrement managé
  • Données stockées sous forme de documents JSON puis indexées
  • OpenSearch Dashboards permet d’explorer et de visualiser les données

Cas d’usage

  • Recherche textuelle dans un site ou une application
  • Analyse de logs et observabilité
  • Tableaux de bord en quasi temps réel
  • Recherche vectorielle, pour la recherche sémantique ou les applications d’IA générative

Concepts clés

  • Index : équivalent d’une table qui regroupe les documents
  • Mapping : permet de fixer le type de chaque champ à l’indexation
  • Shard : partie d’un index répartie sur des nœuds, chaque shard primaire peut avoir des répliques

Modes de déploiement

Cluster géré (domaine) Serverless
Capacité nœuds à dimensionner ajustée automatiquement
Facturation à l’heure utilisation à l’OCU (OpenSearch Compute Unit) consommée
Réglages complets limités

Ingestion

  • OpenSearch Ingestion : pipelines managés
  • Data Firehose pour une ingestion depuis Kinesis
  • Subscription CloudWatch Logs
  • Fonction Lambda

Sécurité

  • Accès dans un VPC ou par un point de terminaison public
  • Contrôle d’accès fin : par index, par document, par champ
  • Chiffrement au repos avec KMS et entre les nœuds

Tarification

  • Cluster géré : facturation à l’heure d’utilisation de l’instance et en fonction du stockage
  • Serverless : en fonction de l’OCU (OpenSearch Compute Unit, l’unité de calcul) avec un minimum facturé même au repos

Limites à connaître

  • OpenSearch n’est pas une base de données principale : il n’y a pas de transaction, ni de garantie d’écriture comparable à une base relationnelle
  • Un cluster géré demande du réglage : taille des shards, mémoire des nœuds
  • Changer le type d’un champ impose de réindexer