Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Techniques d'optimisation des coûts pour Amazon OpenSearch Service
Voici quelques-unes des techniques les plus couramment utilisées pour optimiser les coûts lors de l'utilisation d'Amazon OpenSearch Service, qu'il s'agisse de clusters gérés ou de systèmes sans serveur. Chaque charge de travail étant unique, évaluez ces stratégies par rapport à vos modèles d'utilisation spécifiques et validez-les dans un environnement de test avant de les appliquer à la production.
Rubriques
Optimisation des coûts pour les clusters gérés par Amazon OpenSearch Service
Source dérivée — Ignorer le stockage du champ _source
La source dérivée est une fonctionnalité d'optimisation du stockage qui élimine la surcharge liée au stockage du _source champ :
-
OpenSearch stocke chaque document ingéré deux fois : une fois dans le
_sourcechamp (document brut) et une fois sous forme de champs indexés pour la recherche. -
Le
_sourcechamp à lui seul peut consommer un espace de stockage important, souvent de 30 à 50 % du stockage total de l'index. -
Avec la source dérivée, vous ignorez le stockage
_sourceet vous le reconstruisez dynamiquement à partir de champs indexés lorsque cela est nécessaire (pendant les opérations de recherche, de get, de mget, de réindexation ou de mise à jour). -
Il s'agit d'une option optionnelle, activée lors de la création de l'index à l'aide des paramètres d'index composites.
-
Disponible dans toutes les régions où la OpenSearch version 3.1 ou ultérieure est prise en charge.
Idéal pour : les charges de travail analytiques et de journalisation pour lesquelles vous n'avez pas besoin de récupérer fréquemment le document brut d'origine, mais où vous devez tout de même effectuer des recherches et agréger des champs.
Pour plus d'informations, consultez la documentation open source
OR1 / OR2 / OM2 instances — familles OpenSearch d'instances optimisées
OR1 et les plus récents OR2 et les OM2 instances utilisent Amazon S3 pour le stockage de répliques via la réplication de segments :
-
OR2: débit d'indexation jusqu'à 26 % supérieur à celui des instances R7g OR1, 70 % supérieur à celui des instances R7g.
-
OM2: débit d'indexation jusqu'à 15 % supérieur à celui des instances OR1 m7G, 66 % de plus.
-
Les deux utilisent la même architecture : EBS local pour le stockage principal et S3 pour la durabilité.
-
Élimine les coûts de stockage des répliques : les répliques sont stockées dans S3 (durabilité de 11 minutes) au lieu de volumes EBS onéreux.
-
Jusqu'à 30 % d'amélioration du rapport prix/performances par rapport aux instances de génération précédente.
-
Compatible avec Shallow Snapshot v2, c'est-à-dire des instantanés quasi instantanés, sans frais supplémentaires I/O .
Idéal pour : les charges de travail d'analyse opérationnelle et d'analyse des journaux à forte intensité d'indexation.
Pour plus d'informations, consultez l'annonce OR2 et les OM2 nouveautés
Cumulations d'indices — Données de séries chronologiques historiques agrégées
Les cumuls d'index résument et compressent les anciennes séries chronologiques en intervalles de temps plus grossiers, réduisant ainsi considérablement le volume de stockage :
-
Données relatives à l'IoT et aux capteurs : conservez les données par seconde dans un espace de stockage à chaud pour les périodes récentes ; convertissez-les en résumés horaires ou quotidiens pour les données plus anciennes.
-
Mesures du système : conservez les mesures détaillées des 30 derniers jours ; agrégez les anciennes données dans des résumés horaires ou quotidiens.
-
Données du journal : conservez tous les détails de la fenêtre de dépannage active (par exemple, 1 semaine) ; conservez les modèles d'erreur résumés pour les périodes plus anciennes.
-
Associez-le aux politiques ISM pour automatiser la migration cumulative et hiérarchisée dans le cadre d'une politique de cycle de vie unique.
-
Des économies plus importantes en agrégeant les secondes en heures plutôt que les secondes en minutes.
Pour plus d'informations, consultez le billet de blog Index Rollups
Gestion de l'état des index — Automatisez le cycle de vie complet des données
Les politiques ISM automatisent le mouvement des index via les niveaux de stockage et les actions relatives au cycle de vie :
-
Migrez automatiquement les index : de chaud UltraWarm à froid pour supprimer, en fonction de l'âge, de la taille ou du nombre de documents.
-
Déclenchez des cumuls avant les transitions de niveaux afin de réduire le volume de données.
-
Définissez des politiques de report (par exemple, lorsqu'un index atteint 50 Go ou date de 30 jours) pour contrôler la croissance de l'indice.
-
Automatisez la fusion forcée sur les index en lecture seule pour récupérer de l'espace sur les documents supprimés.
-
Combinez avec des cumuls pour réaliser des économies maximales sur les grands ensembles de données de séries chronologiques.
Instances réservées : engagez-vous pour bénéficier de remises prévisibles
Pour des charges de travail analytiques stables et prévisibles, les instances réservées offrent des remises importantes par rapport aux tarifs à la demande :
-
Modalités d'engagement d'un an ou de 3 ans sans options de paiement initial, initial partiel ou initial complet.
-
Idéal pour les nœuds de données de niveau élevé et les nœuds maîtres dédiés qui s'exécutent en continu.
-
Utilisez le calculateur de AWS prix pour estimer les économies avant de vous engager.
-
Les instances réservées sont un discount de facturation appliqué aux instances à la demande. Aucune modification de l'infrastructure n'est nécessaire.
Types et nombre d'instances à la bonne taille
Les principaux conseils du OpenSearch Well-Architected Lens et les meilleures pratiques en matière de dimensionnement correct :
-
Utilisez toujours la dernière génération d'instances (par exemple, les instances Graviton3 offrent des performances jusqu'à 25 % supérieures à celles des instances basées sur Graviton2).
-
Utilisez des volumes EBS gp3 au lieu de gp2 pour de meilleures performances à moindre coût, sans frais supplémentaires.
-
Faites correspondre le type d'instance à la charge de travail : mémoire optimisée pour les recherches intensives, optimisation pour le calcul pour les fortes indexations.
-
Évaluez les nœuds de gestion de cluster dédiés : nécessaires uniquement pour 3 nœuds de données ou plus ; évitez de surdimensionner la taille des nœuds principaux.
-
Surveillez CloudWatch les indicateurs pour détecter le surprovisionnement : le maintien du processeur en dessous de 40 %, la JVM en dessous de 50 % et le stockage en dessous de 50 % sont des signes de gaspillage.
-
Plages optimales : processeur 60 à 80 %, JVM 65 à 85 %, stockage 70 à 85 % pour les charges de travail soutenues.
Pour plus d'informations, consultez le billet de blog sur les meilleures pratiques en matière de dimensionnement
Optimisation des partitions : évitez le sursharding
Le sursharding est un facteur de coût caché : trop de petites partitions gaspillent le processeur, la mémoire et la JVM :
-
Tailles de partition recommandées : 10 à 50 GiB par partition en fonction de la charge de travail.
-
Pas plus de 25 partitions par GiB de mémoire Java, pas plus de 1 000 partitions par nœud de données.
-
Utilisez les politiques de roulement ISM pour contrôler la croissance de l'indice et éviter la prolifération illimitée des partitions.
-
Réduisez le nombre de répliques lorsque la durabilité le permet (OR1/les OR2 instances éliminent complètement le besoin de répliques).
-
Utilisez la fusion forcée sur les index en lecture seule pour réduire le nombre de segments et récupérer de l'espace de stockage.
Pour plus d'informations, voir De combien de partitions ai-je besoin
Zero-ETL/Requête directe avec Amazon S3
Pour les données qui sont très rarement demandées mais qui doivent rester accessibles, Direct Query (Zero-ETL avec S3) permet d'interroger les données S3 directement depuis OpenSearch S3 sans les ingérer :
-
Aucun coût d'ingestion : les données restent dans S3.
-
Aucun coût de stockage haut de gamme pour les données d'archivage.
-
Pay-per-query modèle de calcul.
-
Supporte les OpenSearch tableaux de bord pour la visualisation.
-
Une latence de quelques secondes ou minutes est acceptable, mais pas pour les cas d'utilisation en temps réel.
Échantillonnage et compression lors de l'ingestion
Réduisez les coûts avant même que les données n'atteignent OpenSearch :
-
Échantillonnage : ingérez uniquement un sous-ensemble représentatif de flux de journaux à volume élevé (par exemple, 10 % des journaux de débogage).
-
Compression d'index : activez le meilleur codec de compression pour réduire l'encombrement du stockage.
-
Filtrage des champs : supprimez les champs à cardinalité élevée et à faible valeur avant l'indexation (par exemple, les traces de pile brutes pour les anciens journaux).
-
Politiques de conservation : définissez des fenêtres de conservation maximales conformes aux exigences de conformité. Ne stockez jamais les données indéfiniment.
Évitez les coûts de support prolongés : restez au courant des versions du moteur
Amazon OpenSearch Service facture un forfait par heure d'instance normalisée pour les versions du moteur dans le cadre du Support étendu :
-
Le fait de continuer à utiliser des versions plus anciennes et non prises en charge entraîne des frais supplémentaires en plus des coûts d'instance.
-
Effectuez une mise à niveau vers les versions actuellement prises en charge pour éviter les frais de support étendu.
Étiquettes et CloudWatch surveillance de la répartition des coûts
La gouvernance proactive des coûts permet de prévenir le gaspillage :
-
Appliquez des balises de répartition des coûts aux OpenSearch domaines pour un suivi détaillé des coûts par équipe ou par charge de travail.
-
Définissez des CloudWatch alarmes relatives à l'utilisation du stockage, à la pression de la machine virtuelle Java et au processeur afin de détecter rapidement le surprovisionnement.
-
Utilisez AWS Cost Explorer pour identifier les domaines dont le taux d'utilisation est constamment faible.
-
Évaluez Auto-Tune : ajuste automatiquement la taille du segment de mémoire JVM et d'autres paramètres pour améliorer les performances et réduire le gaspillage de ressources.
Optimisation des coûts pour Amazon OpenSearch Service Serverless
Recherche vectorielle optimisée sur disque (collections de vecteurs)
La recherche vectorielle optimisée sur disque est l'une des techniques de réduction des coûts les plus puissantes pour les charges de travail vectorielles. Il exécute la recherche vectorielle à une fraction du coût du mode en mémoire en ne conservant que les vecteurs compressés dans la RAM et en stockant des vecteurs de haute précision sur disque.
Fonctionnement :
-
En mode standard (
in_memory), le graphe HNSW complet est chargé dans la RAM, ce qui devient prohibitif à grande échelle. -
En
on_diskmode, seuls les vecteurs compressés (quantifiés) sont conservés en mémoire pour la génération des candidats ; les vecteurs de précision maximale sont extraits du disque uniquement pour la phase de réévaluation finale (recherche en deux phases). -
Cela réduit considérablement les besoins en RAM tout en maintenant une qualité de recherche élevée.
-
on_diskLe mode par défaut utilise une quantification binaire 32 fois, ce qui réduit les besoins en mémoire de 97 % par rapport au mode en mémoire. -
Supporte les niveaux de compression : 2x (FP16), 4x (octet), 8x, 16x, 32x (binaire).
-
Latence P90 comprise entre 100 et 200 ms : adaptée aux charges de travail ne nécessitant pas de temps de réponse à un chiffre en millisecondes.
Points de référence en matière d'économies :
| Jeu de données | Rappeler @100 | Latence P90 | Réduction des coûts |
|---|---|---|---|
| Cohérence TREC-RAG | 0,94 | 104 ms | 83 % |
| Tabos-1M | 0,96 | 7 ms | 67 % |
| Marco-1M | 0.99 | 7 ms | 67 % |
Idéal pour : les pipelines RAG, la recherche sémantique, la récupération de documents et toute charge de travail vectorielle pour laquelle une latence P90 de 100 à 200 ms est acceptable et où la réduction des coûts est une priorité.
Note
Pour appliquer cette modification aux données indexées existantes, vous devez les réindexer. Vous pouvez utiliser un outil de pipeline externe, par exemple pour réindexer les données dans un nouvel index.
Pour plus d'informations, consultez le billet de blog sur la recherche vectorielle optimisée pour le disque, le billet de blog
Optimisation automatique des vecteurs (collections de vecteurs)
L'optimisation automatique évalue automatiquement les configurations d'index vectoriel et recommande le meilleur compromis entre qualité de recherche, latence et coût de mémoire, sans avoir besoin d'expertise en matière de vecteurs :
-
Fournit des recommandations d'optimisation en moins d'une heure.
-
Intégré aux pipelines d'ingestion de vecteurs.
-
Peut être combiné à une indexation accélérée par GPU pour des bases de données vectorielles à l'échelle d'un milliard.
Pour plus d'informations, consultez le billet de blog Auto-Optimize
Indexation vectorielle accélérée par GPU (collections de vecteurs)
L'accélération du GPU transfère l'indexation vectorielle HNSW vers le mode sans serveur GPUs, ce qui réduit considérablement le temps et le coût OCU liés à la création de grands index vectoriels :
-
Temps de création d'index 6,4 à 13,8 fois plus rapides par rapport à l'indexation basée uniquement sur le processeur.
-
Jusqu'à 75 % de réduction du coût de l'OCU d'indexation pour les charges de travail vectorielles intensives en écriture.
-
GPUs sont attachés dynamiquement : vous ne payez que OCUs lorsque l'accélération du GPU est active.
-
Permet de créer des bases de données vectorielles à l'échelle d'un milliard en moins d'une heure.
-
Chargé séparément sous forme d'accélération vectorielle OCUs.
Idéal pour : l'ingestion initiale de vecteurs à grande échelle ou les scénarios de réentraînement fréquent des modèles dans lesquels la reconstruction des index est coûteuse.
Pour plus d'informations, consultez le billet de blog consacré à l'accélération du GPU
Définissez les limites maximales d'OCU (tous les types de collection)
Amazon OpenSearch Service Serverless évolue automatiquement en OCUs fonction de la demande. Sans plafond, les coûts peuvent augmenter de façon inattendue. Définissez une limite maximale d'OCU au niveau du compte ou par groupe de collecte afin d'éviter une escalade galopante. Le système s'adapte à cette limite pendant les pics de charge, mais ne la dépassera pas.
Valeurs autorisées :
-
Niveau du compte : toute valeur inférieure à 1 700 OCUs (non limitée aux multiples de 16).
-
Groupes de collecte : 1, 2, 4, 8, 16 et multiples de 16 jusqu'à 1 696 OCUs.
Surveillez CloudWatch les métriques (OCUUtilization) pour ajuster correctement votre paramètre OCU maximal au fil du temps.
Note
Si l'utilisation atteint le plafond maximal d'OCU, les performances peuvent se dégrader de manière significative même si les coûts sont maîtrisés. Atteindre le plafond ne résout pas la cause sous-jacente du pic d'OCU. Pour les collections de vecteurs, la cause première réside généralement dans les vecteurs en mémoire, auxquels il convient de remédier directement en optimisant l'indexation des vecteurs, en réduisant la taille de l'index ou en ajustant les compromis entre rappel et précision.
Astuce
Commencez par un OCU maximal prudent et augmentez uniquement lorsque l'utilisation CloudWatch est soutenue et proche du plafond. Si vous atteignez régulièrement le plafond, étudiez la cause première, en particulier l'utilisation de vecteurs en mémoire pour les collections de vecteurs, plutôt que de simplement augmenter la limite.
Pour de plus amples informations, veuillez consulter Gestion des limites de capacité pour Amazon OpenSearch Serverless.
Optimisation de la période de conservation (collections de séries chronologiques)
Les politiques de cycle de vie des données suppriment automatiquement les données des collections de séries chronologiques après une période de conservation spécifiée, empêchant ainsi une croissance illimitée du stockage. Seules les collections de séries chronologiques prennent en charge les politiques de cycle de vie des données, contrairement aux collections de recherche et de vecteurs.
Le nombre d'OCU pour les collections de séries chronologiques dépend directement de la quantité de données récentes qui doivent être conservées dans le stockage local. Les collections de séries chronologiques ne conservent que la partie la plus récente des données dans le stockage OCU local ; les données les plus anciennes sont transférées vers S3, et le nombre de OCUs données varie en conséquence :
OCUs required = max (minimum OCUs, OCUs nécessaire pour conserver les données pendant votre période de conservation)
Configuration des politiques de cycle de vie des données :
-
Définissez des périodes de rétention de 24 heures à 3 650 jours par index ou modèle d'index.
-
Amazon OpenSearch Service Serverless supprime automatiquement les données dans la mesure du possible (généralement dans les 48 heures ou 10 % de la période de conservation).
-
Les règles peuvent être appliquées au niveau de la collection, du modèle d'index ou au niveau de l'index individuel ; les règles plus spécifiques ont priorité.
Exemple de dimensionnement :
-
1 TiB/day ingestion avec une rétention de 30 jours = environ 1 TiB de données chaudes = OCUs 20 pour l'indexation et 20 pour la recherche. OCUs
-
Réduction à 7 jours de rétention = environ 233 GiB de données chaudes = environ OCUs 4 pour l'indexation et 4 pour la recherche. OCUs
Une durée de conservation plus courte signifie moins de données sensibles dans le stockage local, moins de données OCUs nécessaires et une facture informatique moindre. Alignez les périodes de conservation sur les exigences commerciales et de conformité réelles. Par défaut, ne conservez pas les données indéfiniment.
Pour de plus amples informations, veuillez consulter Utilisation des politiques de cycle de vie des données avec Amazon OpenSearch Serverless.
Évitez de stocker des données inutiles (tous les types de collecte)
La réduction du volume de données ingérées réduit directement les coûts de calcul (OCUs) et de stockage :
-
Filtrer les champs lors de l'ingestion : utilisez des pipelines pour supprimer les champs de faible valeur avant qu'ils n'atteignent la collection.
-
Évitez d'ingérer des données dupliquées ou redondantes : dédupliquez au niveau du pipeline.
-
Utilisez des mappages d'index appropriés : désactivez l'indexation sur les champs stockés mais jamais recherchés ()
"index": false. -
Pour les collections de recherche : évitez de stocker de gros blobs binaires ou du texte brut qui augmente l'espace de stockage sans valeur de recherche.
Groupes de collecte pour les charges de travail multi-locataires (tous les types de collections)
Les groupes de collections permettent à plusieurs collections dotées de clés KMS différentes de partager les ressources OCU au sein d'une même limite de sécurité, réduisant ainsi considérablement les coûts des architectures à locataires multiples. Applicable aux clients utilisant plusieurs clés KMS par locataire ou par collection :
-
Auparavant, chaque clé KMS unique devait être dédiée, ce qui OCUs rendait l'isolation par locataire d'un coût prohibitif.
-
Avec les groupes de collecte, les locataires dotés de clés de chiffrement distinctes peuvent partager la capacité de l'OCU.
-
Des économies de coûts allant jusqu'à 90 % pour un grand nombre de petites charges de travail pour les locataires.
-
Supporte à la fois le minimum OCUs (base de référence garantie, pas de démarrages à froid) et le maximum OCUs (plafonnement des coûts).
-
Les collections avec différents types d'accès au réseau (public et VPC) peuvent coexister au sein d'un même groupe.
-
CloudWatch les métriques fournissent une visibilité par groupe sur la consommation de ressources et la latence.
Idéal pour : les fournisseurs de SaaS, les plateformes multi-locataires ou toute autre charge de travail comportant de nombreuses petites collections nécessitant chacune sa propre clé KMS.
Pour plus d'informations, consultez le billet de blog sur les groupes de collections