[{"data":1,"prerenderedAt":3086},["ShallowReactive",2],{"docs-page-fr-ca-\u002Ffr-ca\u002Fdocs\u002Fservices\u002Felasticache":3,"docs-navigation-fr-ca":2989,"docs-surround-fr-ca-\u002Ffr-ca\u002Fdocs\u002Fservices\u002Felasticache":3081},{"id":4,"title":5,"body":6,"claimDependencies":2971,"description":2975,"extension":2976,"locale":2977,"meta":2978,"missingMedia":2979,"navigation":939,"owner":2980,"path":2981,"reviewStatus":2982,"seo":2983,"staleLinks":2984,"stem":2985,"technicalRisk":2986,"translationKey":2987,"__hash__":2988},"docs_fr_ca\u002Ffr-ca\u002Fdocs\u002F5.services\u002F4.elasticache.md","Optimisation ElastiCache",{"type":7,"value":8,"toc":2923},"minimark",[9,13,18,21,50,54,59,66,71,76,87,92,98,103,135,141,145,148,153,159,163,181,186,200,204,207,211,217,228,234,245,251,259,263,269,277,283,291,296,301,305,311,325,331,336,340,343,493,497,501,504,510,515,590,595,641,646,666,671,682,688,696,700,703,708,725,730,744,749,763,768,785,790,804,808,811,815,820,826,830,834,840,844,848,854,858,862,868,871,875,881,885,889,895,899,902,907,1286,1291,1519,1524,1704,1708,1712,1715,1781,1785,1790,1807,1812,1829,1833,1838,1849,1854,1871,1876,1890,1894,1898,1903,1917,1922,1933,1937,1941,1952,1956,1970,1974,1978,1989,1993,2007,2011,2015,2026,2030,2044,2048,2052,2066,2070,2084,2089,2093,2097,2102,2105,2119,2122,2133,2138,2141,2155,2160,2163,2180,2184,2189,2192,2203,2208,2228,2233,2235,2246,2250,2269,2274,2280,2282,2293,2297,2313,2318,2320,2331,2335,2353,2357,2361,2364,2378,2382,2385,2399,2403,2417,2421,2425,2430,2441,2446,2460,2464,2469,2477,2481,2492,2496,2501,2515,2520,2531,2535,2538,2610,2619,2623,2626,2631,2846,2852,2856,2859,2891,2894,2899,2919],[10,11,12],"p",{},"Jetscale propose une optimisation des couts basee sur l'IA pour Amazon ElastiCache, incluant les clusters Redis et Memcached. Nos agents specialises analysent vos charges de travail de mise en cache pour identifier les opportunites de dimensionnement optimal, les migrations de types de noeuds et les ameliorations de configuration.",[14,15,17],"h2",{"id":16},"apercu","Apercu",[10,19,20],{},"Jetscale optimise les ressources ElastiCache en analysant :",[22,23,24,32,38,44],"ul",{},[25,26,27,31],"li",{},[28,29,30],"strong",{},"L'utilisation des noeuds"," : CPU, memoire, reseau et modeles de connexion",[25,33,34,37],{},[28,35,36],{},"Les performances du cache"," : Taux de reussite, modeles d'eviction, utilisation du swap",[25,39,40,43],{},[28,41,42],{},"L'analyse des couts"," : Depenses actuelles vs configuration optimale",[25,45,46,49],{},[28,47,48],{},"La haute disponibilite"," : Configurations Multi-AZ et topologie de replication",[14,51,53],{"id":52},"types-elasticache-supportes","Types ElastiCache supportes",[55,56,58],"h3",{"id":57},"clusters-redis","Clusters Redis",[10,60,61,62,65],{},"Redis est notre ",[28,63,64],{},"cible d'optimisation principale"," pour la mise en cache riche en fonctionnalites avec persistance et replication.",[10,67,68],{},[28,69,70],{},"Modes de cluster :",[10,72,73],{},[28,74,75],{},"Redis Cluster Mode Disabled :",[77,78,83],"pre",{"className":79,"code":81,"language":82},[80],"language-text","ElastiCacheReplicationGroup (Cible d'optimisation)\n├── CacheNode (Primary) - Facturable\n├── CacheNode (Replica) - Facturable\n└── CacheNode (Replica) - Facturable\n","text",[84,85,81],"code",{"__ignoreMap":86},"",[10,88,89],{},[28,90,91],{},"Redis Cluster Mode Enabled :",[77,93,96],{"className":94,"code":95,"language":82},[80],"ElastiCacheReplicationGroup (Cible d'optimisation)\n├── NodeGroup (Shard 1)\n│   ├── CacheNode (Primary) - Facturable\n│   └── CacheNode (Replica) - Facturable\n├── NodeGroup (Shard 2)\n│   ├── CacheNode (Primary) - Facturable\n│   └── CacheNode (Replica) - Facturable\n",[84,97,95],{"__ignoreMap":86},[10,99,100],{},[28,101,102],{},"Ce que nous optimisons :",[22,104,105,111,117,123,129],{},[25,106,107,110],{},[28,108,109],{},"Dimensionnement du type de noeud"," : Correspondance avec la charge de travail reelle en memoire et CPU (tous les noeuds du cluster utilisent le meme type)",[25,112,113,116],{},[28,114,115],{},"Migration Graviton"," : Passage aux instances basees sur ARM (r7g, m7g, r6g, m6g) pour 10-40% d'economies",[25,118,119,122],{},[28,120,121],{},"Mises a niveau de version du moteur"," : Recommandation des dernieres versions Redis pour les performances et les fonctionnalites",[25,124,125,128],{},[28,126,127],{},"Configuration Multi-AZ"," : Desactivation de Multi-AZ pour ~50% d'economies lorsque la haute disponibilite n'est pas critique",[25,130,131,134],{},[28,132,133],{},"Recommandations de noeuds reserves"," : Jusqu'a 55% d'economies avec un engagement sur 1 an ou 3 ans",[10,136,137,140],{},[28,138,139],{},"Important :"," Tous les noeuds d'un cluster Redis doivent utiliser le meme type de noeud. Jetscale dimensionne pour le noeud avec la plus haute utilisation de ressources afin d'assurer des performances adequates sur tous les membres du cluster.",[55,142,144],{"id":143},"clusters-memcached","Clusters Memcached",[10,146,147],{},"Les clusters Memcached traditionnels sont optimises comme une collection de noeuds independants.",[10,149,150],{},[28,151,152],{},"Architecture du cluster :",[77,154,157],{"className":155,"code":156,"language":82},[80],"ElastiCacheCluster (Cible d'optimisation)\n├── CacheNode - Facturable\n├── CacheNode - Facturable\n└── CacheNode - Facturable\n",[84,158,156],{"__ignoreMap":86},[10,160,161],{},[28,162,102],{},[22,164,165,170,175],{},[25,166,167,169],{},[28,168,109],{}," : Correspondance de la memoire et du CPU a la charge de travail",[25,171,172,174],{},[28,173,115],{}," : Passage aux instances basees sur ARM (m7g, m6g) pour 10-40% d'economies",[25,176,177,180],{},[28,178,179],{},"Optimisation du nombre de noeuds"," : Ajustement du nombre de noeuds selon l'utilisation reelle",[10,182,183],{},[28,184,185],{},"Differences cles par rapport a Redis :",[22,187,188,191,194,197],{},[25,189,190],{},"Pas de replication (chaque noeud est independant)",[25,192,193],{},"Pas de persistance (purement en memoire)",[25,195,196],{},"Modele de mise a l'echelle plus simple (ajouter\u002Fsupprimer des noeuds)",[25,198,199],{},"Generalement moins couteux que Redis",[14,201,203],{"id":202},"types-de-noeuds-elasticache","Types de noeuds ElastiCache",[10,205,206],{},"Jetscale considere tous les types de noeuds AWS ElastiCache lors de l'optimisation :",[55,208,210],{"id":209},"optimises-pour-la-memoire-famille-r","Optimises pour la memoire (Famille R)",[10,212,213,216],{},[28,214,215],{},"R7g (Graviton3)"," - Derniere generation, basee sur ARM",[22,218,219,222,225],{},[25,220,221],{},"Meilleur rapport prix\u002Fperformances",[25,223,224],{},"40% de meilleures performances\u002Fprix que R6g",[25,226,227],{},"Utilisation pour : Redis avec besoins memoire eleves, mise en cache a faible latence",[10,229,230,233],{},[28,231,232],{},"R6g (Graviton2)"," - Generation ARM precedente",[22,235,236,239,242],{},[25,237,238],{},"20% d'economies vs R5",[25,240,241],{},"Excellentes performances",[25,243,244],{},"Utilisation pour : Redis necessitant une grande empreinte memoire",[10,246,247,250],{},[28,248,249],{},"R5"," - Basee sur Intel",[22,252,253,256],{},[25,254,255],{},"Option heritee (migrer vers R6g\u002FR7g pour economiser)",[25,257,258],{},"Utilisation pour : Exigences specifiques x86 (rare)",[55,260,262],{"id":261},"usage-general-famille-m","Usage general (Famille M)",[10,264,265,268],{},[28,266,267],{},"M7g (Graviton3)"," - Derniere generation, equilibree",[22,270,271,274],{},[25,272,273],{},"Meilleure pour les charges de travail avec besoins equilibres en CPU et memoire",[25,275,276],{},"40% de meilleures performances\u002Fprix que M6g",[10,278,279,282],{},[28,280,281],{},"M6g (Graviton2)"," - Basee sur ARM",[22,284,285,288],{},[25,286,287],{},"20% d'economies vs M5",[25,289,290],{},"Utilisation pour : Charges de travail Redis\u002FMemcached equilibrees",[10,292,293,250],{},[28,294,295],{},"M5",[22,297,298],{},[25,299,300],{},"Option heritee (migrer vers M6g\u002FM7g)",[55,302,304],{"id":303},"burstable-famille-t","Burstable (Famille T)",[10,306,307,310],{},[28,308,309],{},"T4g (Graviton2)"," - Burstable a faible cout",[22,312,313,316,319,322],{},[25,314,315],{},"Utilisation pour : Developpement, tests, petits caches",[25,317,318],{},"CPU de base avec credits de burst",[25,320,321],{},"Option la moins couteuse",[25,323,324],{},"Attention : Surveiller le solde de credits CPU",[10,326,327,330],{},[28,328,329],{},"T3"," - Burstable basee sur Intel",[22,332,333],{},[25,334,335],{},"Option heritee (migrer vers T4g)",[55,337,339],{"id":338},"dimensionnement-des-noeuds","Dimensionnement des noeuds",[10,341,342],{},"Chaque type de noeud existe en plusieurs tailles :",[344,345,346,365],"table",{},[347,348,349],"thead",{},[350,351,352,356,359,362],"tr",{},[353,354,355],"th",{},"Taille",[353,357,358],{},"Exemple (R7g)",[353,360,361],{},"vCPUs",[353,363,364],{},"Memoire",[366,367,368,383,396,409,423,437,451,465,479],"tbody",{},[350,369,370,374,377,380],{},[371,372,373],"td",{},"small",[371,375,376],{},"cache.r7g.small",[371,378,379],{},"1",[371,381,382],{},"1.5 GB",[350,384,385,388,391,393],{},[371,386,387],{},"medium",[371,389,390],{},"cache.r7g.medium",[371,392,379],{},[371,394,395],{},"3.1 GB",[350,397,398,401,404,406],{},[371,399,400],{},"large",[371,402,403],{},"cache.r7g.large",[371,405,379],{},[371,407,408],{},"6.4 GB",[350,410,411,414,417,420],{},[371,412,413],{},"xlarge",[371,415,416],{},"cache.r7g.xlarge",[371,418,419],{},"2",[371,421,422],{},"13.1 GB",[350,424,425,428,431,434],{},[371,426,427],{},"2xlarge",[371,429,430],{},"cache.r7g.2xlarge",[371,432,433],{},"4",[371,435,436],{},"26.3 GB",[350,438,439,442,445,448],{},[371,440,441],{},"4xlarge",[371,443,444],{},"cache.r7g.4xlarge",[371,446,447],{},"8",[371,449,450],{},"52.8 GB",[350,452,453,456,459,462],{},[371,454,455],{},"8xlarge",[371,457,458],{},"cache.r7g.8xlarge",[371,460,461],{},"16",[371,463,464],{},"105.8 GB",[350,466,467,470,473,476],{},[371,468,469],{},"12xlarge",[371,471,472],{},"cache.r7g.12xlarge",[371,474,475],{},"24",[371,477,478],{},"159.0 GB",[350,480,481,484,487,490],{},[371,482,483],{},"16xlarge",[371,485,486],{},"cache.r7g.16xlarge",[371,488,489],{},"32",[371,491,492],{},"212.2 GB",[14,494,496],{"id":495},"comment-jetscale-optimise-elasticache","Comment Jetscale optimise ElastiCache",[55,498,500],{"id":499},"_1-collecte-de-donnees","1. Collecte de donnees",[10,502,503],{},"Jetscale analyse plusieurs sources de donnees :",[10,505,506,509],{},[28,507,508],{},"Metriques CloudWatch"," (fenetre glissante de 14 jours) :",[10,511,512],{},[28,513,514],{},"Metriques Redis :",[22,516,517,523,529,535,541,551,560,566,572,578,584],{},[25,518,519,522],{},[84,520,521],{},"CPUUtilization"," - Utilisation CPU du noeud",[25,524,525,528],{},[84,526,527],{},"DatabaseMemoryUsagePercentage"," - Memoire utilisee pour les donnees",[25,530,531,534],{},[84,532,533],{},"BytesUsedForCache"," - Taille reelle des donnees du cache",[25,536,537,540],{},[84,538,539],{},"FreeableMemory"," - Memoire disponible",[25,542,543,546,547,550],{},[84,544,545],{},"NetworkBytesIn"," \u002F ",[84,548,549],{},"NetworkBytesOut"," - Debit reseau",[25,552,553,546,556,559],{},[84,554,555],{},"CacheHits",[84,557,558],{},"CacheMisses"," - Efficacite du cache",[25,561,562,565],{},[84,563,564],{},"CurrConnections"," - Connexions actives",[25,567,568,571],{},[84,569,570],{},"SwapUsage"," - Indicateur de pression memoire (devrait etre zero)",[25,573,574,577],{},[84,575,576],{},"EngineCPUUtilization"," - CPU du processus Redis (metrique cle)",[25,579,580,583],{},[84,581,582],{},"Evictions"," - Elements evinces en raison de la pression memoire",[25,585,586,589],{},[84,587,588],{},"ReplicationLag"," - Temps de decalage des replicas",[10,591,592],{},[28,593,594],{},"Metriques Memcached :",[22,596,597,601,607,611,617,621,625,633],{},[25,598,599,522],{},[84,600,521],{},[25,602,603,606],{},[84,604,605],{},"BytesUsedForCacheItems"," - Memoire utilisee pour les elements",[25,608,609,540],{},[84,610,539],{},[25,612,613,546,615,550],{},[84,614,545],{},[84,616,549],{},[25,618,619,565],{},[84,620,564],{},[25,622,623,583],{},[84,624,582],{},[25,626,627,546,630,559],{},[84,628,629],{},"GetHits",[84,631,632],{},"GetMisses",[25,634,635,546,638],{},[84,636,637],{},"BytesReadIntoMemcached",[84,639,640],{},"BytesWrittenOutFromMemcached",[10,642,643],{},[28,644,645],{},"Donnees de l'API ElastiCache :",[22,647,648,651,654,657,660,663],{},[25,649,650],{},"Type de noeud et version du moteur",[25,652,653],{},"Nombre de noeuds\u002Fshards",[25,655,656],{},"Statut Multi-AZ",[25,658,659],{},"Configuration de basculement automatique",[25,661,662],{},"Configuration du groupe de parametres",[25,664,665],{},"Parametres de fenetre de maintenance",[10,667,668],{},[28,669,670],{},"Donnees Cost Explorer :",[22,672,673,676,679],{},[25,674,675],{},"Depenses mensuelles actuelles par cluster",[25,677,678],{},"Tendances historiques des couts",[25,680,681],{},"Utilisation des noeuds reserves",[10,683,684,687],{},[28,685,686],{},"AWS Compute Optimizer"," (si active) :",[22,689,690,693],{},[25,691,692],{},"Recommandations de dimensionnement generees par AWS",[25,694,695],{},"Evaluations des risques de performance",[55,697,699],{"id":698},"_2-analyse","2. Analyse",[10,701,702],{},"Nos agents IA effectuent une analyse approfondie :",[10,704,705],{},[28,706,707],{},"Utilisation de la memoire :",[22,709,710,713,716,719,722],{},[25,711,712],{},"Utilisation memoire maximale vs moyenne",[25,714,715],{},"Modeles d'eviction (indique une pression memoire)",[25,717,718],{},"Utilisation du swap (indicateur critique - devrait etre zero)",[25,720,721],{},"Modeles de fragmentation memoire",[25,723,724],{},"Calcul de la marge pour une reduction en toute securite",[10,726,727],{},[28,728,729],{},"Utilisation du CPU :",[22,731,732,735,738,741],{},[25,733,734],{},"CPU moteur vs CPU total (Redis)",[25,736,737],{},"Utilisation CPU maximale vs moyenne",[25,739,740],{},"Solde de credits CPU (instances famille T)",[25,742,743],{},"Modeles horaires",[10,745,746],{},[28,747,748],{},"Performances du cache :",[22,750,751,754,757,760],{},[25,752,753],{},"Taux de reussite du cache (cible : >95% pour un cache sain)",[25,755,756],{},"Taux d'eviction (indique une memoire insuffisante)",[25,758,759],{},"Modeles de connexion",[25,761,762],{},"Points de saturation reseau",[10,764,765],{},[28,766,767],{},"Modelisation des couts :",[22,769,770,773,776,779,782],{},[25,771,772],{},"Repartition actuelle des couts (calcul, transfert de donnees)",[25,774,775],{},"Cout projete pour des configurations alternatives",[25,777,778],{},"Opportunites de noeuds reserves",[25,780,781],{},"Analyse de la prime Multi-AZ",[25,783,784],{},"Economies de migration Graviton",[10,786,787],{},[28,788,789],{},"Evaluation des risques :",[22,791,792,795,798,801],{},[25,793,794],{},"Calcul de la marge (20% de tampon au-dessus du pic recommande)",[25,796,797],{},"Probabilite de degradation des performances",[25,799,800],{},"Evaluation de l'impact sur la disponibilite",[25,802,803],{},"Impact sur la capacite de basculement",[55,805,807],{"id":806},"_3-recommandations","3. Recommandations",[10,809,810],{},"Jetscale genere des recommandations specifiques et actionnables :",[812,813,109],"h4",{"id":814},"dimensionnement-du-type-de-noeud",[10,816,817],{},[28,818,819],{},"Exemple de recommandation :",[77,821,824],{"className":822,"code":823,"language":82},[80],"Ressource : production-redis-cache\nActuel : 2x cache.r5.xlarge (13.1 GB RAM chacun, 4 vCPUs)\nRecommande : 2x cache.r5.large (6.4 GB RAM chacun, 2 vCPUs)\n\nImpact sur les couts :\n- Actuel : $500\u002Fmois\n- Projete : $250\u002Fmois\n- Economies : $250\u002Fmois (50%), $3,000\u002Fan\n\nAnalyse des performances :\n- Utilisation memoire maximale : 40% (5.2 GB par noeud)\n- Utilisation memoire moyenne : 30% (3.9 GB par noeud)\n- CPU maximal : 25%\n- Taux de reussite du cache : 97.5%\n- Aucune eviction detectee\n- Le type recommande fournit 23% de marge au-dessus du pic\n\nRisque : Faible - Marge adequate maintenue, aucune pression memoire\n",[84,825,823],{"__ignoreMap":86},[812,827,829],{"id":828},"migration-graviton-redis","Migration Graviton (Redis)",[10,831,832],{},[28,833,819],{},[77,835,838],{"className":836,"code":837,"language":82},[80],"Ressource : api-cache-cluster\nActuel : 3x cache.r5.large (base Intel)\nRecommande : 3x cache.r6g.large (base Graviton2)\n\nImpact sur les couts :\n- Actuel : $375\u002Fmois (3 noeuds @ $125\u002Fmois chacun)\n- Projete : $300\u002Fmois (3 noeuds @ $100\u002Fmois chacun)\n- Economies : $75\u002Fmois (20%), $900\u002Fan\n\nAnalyse des performances :\n- Meme memoire : 6.4 GB par noeud\n- Memes vCPUs : 2 par noeud\n- Graviton2 offre des performances equivalentes ou meilleures\n- Redis 6.2+ entierement compatible avec ARM64\n- Aucun changement d'application requis\n\nRisque : Tres faible - Performances Graviton prouvees avec Redis\nNote : Necessite la version du moteur 5.0.6+ pour le support Graviton\n",[84,839,837],{"__ignoreMap":86},[812,841,843],{"id":842},"optimisation-multi-az","Optimisation Multi-AZ",[10,845,846],{},[28,847,819],{},[77,849,852],{"className":850,"code":851,"language":82},[80],"Ressource : staging-memcached-cluster\nActuel : 4x cache.m5.large avec Multi-AZ active\nRecommande : 4x cache.m5.large avec Multi-AZ desactive\n\nImpact sur les couts :\n- Actuel : $480\u002Fmois (prime Multi-AZ incluse)\n- Projete : $240\u002Fmois (Single-AZ)\n- Economies : $240\u002Fmois (50%), $2,880\u002Fan\n\nAnalyse de disponibilite :\n- Environnement : Staging\u002FNon-Production\n- Actuel : Multi-AZ (basculement automatique)\n- Projete : Single-AZ (recuperation manuelle)\n- Acceptable pour la charge de travail de staging\n- RPO\u002FRTO : Tolerable pour la non-production\n\nRisque : Faible - Environnement hors production\nNote : Multi-AZ fournit un basculement automatique en quelques minutes\n",[84,853,851],{"__ignoreMap":86},[812,855,857],{"id":856},"mise-a-niveau-de-version-du-moteur","Mise a niveau de version du moteur",[10,859,860],{},[28,861,819],{},[77,863,866],{"className":864,"code":865,"language":82},[80],"Ressource : legacy-redis-cache\nActuel : 3x cache.r5.large, Redis 5.0.6\nRecommande : 3x cache.r5.large, Redis 7.0\n\nImpact sur les couts :\n- Actuel : $375\u002Fmois\n- Projete : $375\u002Fmois (meme cout)\n- Economies : $0\u002Fmois (ameliorations des performances et de la securite)\n\nAvantages :\n- Fonctionnalites Redis 7.0 : Functions, ameliorations ACL, ameliorations Redis Streams\n- Meilleure efficacite memoire (reduction de 5-10% de la surcharge memoire)\n- Performances de replication ameliorees\n- Correctifs de securite et corrections de bugs\n- Meme cout, meilleures performances\n\nRisque : Faible - Compatible en retour, tester d'abord en staging\nNote : Consulter la documentation des changements incompatibles Redis 7.0\n",[84,867,865],{"__ignoreMap":86},[812,869,133],{"id":870},"recommandations-de-noeuds-reserves",[10,872,873],{},[28,874,819],{},[77,876,879],{"className":877,"code":878,"language":82},[80],"Ressource : production-redis-primary\nActuel : 2x cache.r6g.xlarge, tarification On-Demand\nRecommande : 2x cache.r6g.xlarge, Reserve 1 an (No Upfront)\n\nImpact sur les couts :\n- Actuel : $600\u002Fmois (On-Demand)\n- Projete : $420\u002Fmois (Reserve)\n- Economies : $180\u002Fmois (30%), $2,160\u002Fan\n\nAnalyse :\n- Age du cluster : 18 mois (charge de travail stable prouvee)\n- Utilisation : Cache de production 24\u002F7\n- Terme reserve : 1 an No Upfront\n- Seuil de rentabilite : Immediat (economies mensuelles)\n- Engagement : Possibilite de vendre les reservations inutilisees sur le marche\n\nRisque : Tres faible - Charge de travail stable de longue duree\nNote : Reserve 3 ans offre 55% d'economies ($270\u002Fmois, $390\u002Fmois d'economies)\n",[84,880,878],{"__ignoreMap":86},[812,882,884],{"id":883},"optimisation-du-nombre-de-noeuds-memcached","Optimisation du nombre de noeuds Memcached",[10,886,887],{},[28,888,819],{},[77,890,893],{"className":891,"code":892,"language":82},[80],"Ressource : session-cache-memcached\nActuel : 6x cache.m5.large (16 GB capacite totale)\nRecommande : 4x cache.m5.large (16 GB capacite totale en utilisant des noeuds plus grands)\nAlternative : 4x cache.m6g.xlarge (meme memoire totale, Graviton2)\n\nImpact sur les couts (Alternative) :\n- Actuel : $720\u002Fmois (6 noeuds @ $120\u002Fmois)\n- Projete : $640\u002Fmois (4 noeuds @ $160\u002Fmois)\n- Economies : $80\u002Fmois (11%), $960\u002Fan\n\nAnalyse des performances :\n- Memoire totale necessaire : 12 GB (pic)\n- Distribution actuelle : 2 GB par noeud en moyenne\n- Recommande : 3 GB par noeud en moyenne\n- Moins de noeuds = complexite operationnelle reduite\n- Meilleures performances reseau par noeud\n\nRisque : Faible - Meme capacite totale, meilleure efficacite\nNote : Tester le pooling de connexions avec moins de noeuds\n",[84,894,892],{"__ignoreMap":86},[55,896,898],{"id":897},"_4-generation-terraform","4. Generation Terraform",[10,900,901],{},"Pour chaque recommandation, Jetscale genere du code Terraform pret pour la production :",[10,903,904],{},[28,905,906],{},"Exemple : Dimensionnement Redis",[77,908,912],{"className":909,"code":910,"language":911,"meta":86,"style":86},"language-hcl shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Optimisation ElastiCache Redis\n# Genere par Jetscale le 2024-01-15\n# ID de recommandation : rec_elasticache_001\n\nresource \"aws_elasticache_replication_group\" \"production_redis\" {\n  replication_group_id       = \"production-redis-cache\"\n  replication_group_description = \"Production Redis cache\"\n\n  # Precedent : cache.r5.xlarge ($500\u002Fmois)\n  # Optimise : cache.r5.large ($250\u002Fmois)\n  # Reduction de cout : 50% ($250\u002Fmois, $3,000\u002Fan)\n  #\n  # Justification :\n  # - Utilisation memoire maximale : 40% (5.2 GB par noeud)\n  # - Utilisation memoire moyenne : 30% (3.9 GB par noeud)\n  # - CPU maximal : 25%\n  # - Taux de reussite du cache : 97.5%\n  # - Le nouveau type de noeud fournit 23% de marge au-dessus du pic\n  # - Aucune eviction ou utilisation de swap detectee\n  node_type = \"cache.r5.large\"\n\n  engine         = \"redis\"\n  engine_version = \"7.0\"\n\n  # Configuration du cluster\n  num_cache_clusters         = 2\n  automatic_failover_enabled = true\n  multi_az_enabled          = true\n\n  # Configuration reseau\n  subnet_group_name  = var.subnet_group_name\n  security_group_ids = var.security_group_ids\n\n  # Maintenance et sauvegarde\n  maintenance_window         = \"sun:05:00-sun:06:00\"\n  snapshot_window           = \"03:00-04:00\"\n  snapshot_retention_limit  = 5\n\n  # Groupe de parametres pour la configuration\n  parameter_group_name = var.parameter_group_name\n\n  # Chiffrement\n  at_rest_encryption_enabled = true\n  transit_encryption_enabled = true\n  auth_token_enabled        = true\n\n  # Journalisation\n  log_delivery_configuration {\n    destination      = var.cloudwatch_log_group\n    destination_type = \"cloudwatch-logs\"\n    log_format       = \"json\"\n    log_type         = \"slow-log\"\n  }\n\n  tags = merge(\n    var.tags,\n    {\n      \"jetscale:optimized\"      = \"true\"\n      \"jetscale:recommendation\" = \"rec_elasticache_001\"\n      \"jetscale:previous_type\"  = \"cache.r5.xlarge\"\n    }\n  )\n}\n","hcl",[84,913,914,922,928,934,941,947,953,959,964,970,976,982,988,994,1000,1006,1012,1018,1024,1030,1036,1041,1047,1053,1058,1064,1070,1076,1082,1087,1093,1099,1105,1110,1116,1122,1128,1134,1139,1145,1151,1156,1162,1168,1174,1180,1185,1191,1197,1203,1209,1215,1221,1227,1232,1238,1244,1250,1256,1262,1268,1274,1280],{"__ignoreMap":86},[915,916,919],"span",{"class":917,"line":918},"line",1,[915,920,921],{},"# Optimisation ElastiCache Redis\n",[915,923,925],{"class":917,"line":924},2,[915,926,927],{},"# Genere par Jetscale le 2024-01-15\n",[915,929,931],{"class":917,"line":930},3,[915,932,933],{},"# ID de recommandation : rec_elasticache_001\n",[915,935,937],{"class":917,"line":936},4,[915,938,940],{"emptyLinePlaceholder":939},true,"\n",[915,942,944],{"class":917,"line":943},5,[915,945,946],{},"resource \"aws_elasticache_replication_group\" \"production_redis\" {\n",[915,948,950],{"class":917,"line":949},6,[915,951,952],{},"  replication_group_id       = \"production-redis-cache\"\n",[915,954,956],{"class":917,"line":955},7,[915,957,958],{},"  replication_group_description = \"Production Redis cache\"\n",[915,960,962],{"class":917,"line":961},8,[915,963,940],{"emptyLinePlaceholder":939},[915,965,967],{"class":917,"line":966},9,[915,968,969],{},"  # Precedent : cache.r5.xlarge ($500\u002Fmois)\n",[915,971,973],{"class":917,"line":972},10,[915,974,975],{},"  # Optimise : cache.r5.large ($250\u002Fmois)\n",[915,977,979],{"class":917,"line":978},11,[915,980,981],{},"  # Reduction de cout : 50% ($250\u002Fmois, $3,000\u002Fan)\n",[915,983,985],{"class":917,"line":984},12,[915,986,987],{},"  #\n",[915,989,991],{"class":917,"line":990},13,[915,992,993],{},"  # Justification :\n",[915,995,997],{"class":917,"line":996},14,[915,998,999],{},"  # - Utilisation memoire maximale : 40% (5.2 GB par noeud)\n",[915,1001,1003],{"class":917,"line":1002},15,[915,1004,1005],{},"  # - Utilisation memoire moyenne : 30% (3.9 GB par noeud)\n",[915,1007,1009],{"class":917,"line":1008},16,[915,1010,1011],{},"  # - CPU maximal : 25%\n",[915,1013,1015],{"class":917,"line":1014},17,[915,1016,1017],{},"  # - Taux de reussite du cache : 97.5%\n",[915,1019,1021],{"class":917,"line":1020},18,[915,1022,1023],{},"  # - Le nouveau type de noeud fournit 23% de marge au-dessus du pic\n",[915,1025,1027],{"class":917,"line":1026},19,[915,1028,1029],{},"  # - Aucune eviction ou utilisation de swap detectee\n",[915,1031,1033],{"class":917,"line":1032},20,[915,1034,1035],{},"  node_type = \"cache.r5.large\"\n",[915,1037,1039],{"class":917,"line":1038},21,[915,1040,940],{"emptyLinePlaceholder":939},[915,1042,1044],{"class":917,"line":1043},22,[915,1045,1046],{},"  engine         = \"redis\"\n",[915,1048,1050],{"class":917,"line":1049},23,[915,1051,1052],{},"  engine_version = \"7.0\"\n",[915,1054,1056],{"class":917,"line":1055},24,[915,1057,940],{"emptyLinePlaceholder":939},[915,1059,1061],{"class":917,"line":1060},25,[915,1062,1063],{},"  # Configuration du cluster\n",[915,1065,1067],{"class":917,"line":1066},26,[915,1068,1069],{},"  num_cache_clusters         = 2\n",[915,1071,1073],{"class":917,"line":1072},27,[915,1074,1075],{},"  automatic_failover_enabled = true\n",[915,1077,1079],{"class":917,"line":1078},28,[915,1080,1081],{},"  multi_az_enabled          = true\n",[915,1083,1085],{"class":917,"line":1084},29,[915,1086,940],{"emptyLinePlaceholder":939},[915,1088,1090],{"class":917,"line":1089},30,[915,1091,1092],{},"  # Configuration reseau\n",[915,1094,1096],{"class":917,"line":1095},31,[915,1097,1098],{},"  subnet_group_name  = var.subnet_group_name\n",[915,1100,1102],{"class":917,"line":1101},32,[915,1103,1104],{},"  security_group_ids = var.security_group_ids\n",[915,1106,1108],{"class":917,"line":1107},33,[915,1109,940],{"emptyLinePlaceholder":939},[915,1111,1113],{"class":917,"line":1112},34,[915,1114,1115],{},"  # Maintenance et sauvegarde\n",[915,1117,1119],{"class":917,"line":1118},35,[915,1120,1121],{},"  maintenance_window         = \"sun:05:00-sun:06:00\"\n",[915,1123,1125],{"class":917,"line":1124},36,[915,1126,1127],{},"  snapshot_window           = \"03:00-04:00\"\n",[915,1129,1131],{"class":917,"line":1130},37,[915,1132,1133],{},"  snapshot_retention_limit  = 5\n",[915,1135,1137],{"class":917,"line":1136},38,[915,1138,940],{"emptyLinePlaceholder":939},[915,1140,1142],{"class":917,"line":1141},39,[915,1143,1144],{},"  # Groupe de parametres pour la configuration\n",[915,1146,1148],{"class":917,"line":1147},40,[915,1149,1150],{},"  parameter_group_name = var.parameter_group_name\n",[915,1152,1154],{"class":917,"line":1153},41,[915,1155,940],{"emptyLinePlaceholder":939},[915,1157,1159],{"class":917,"line":1158},42,[915,1160,1161],{},"  # Chiffrement\n",[915,1163,1165],{"class":917,"line":1164},43,[915,1166,1167],{},"  at_rest_encryption_enabled = true\n",[915,1169,1171],{"class":917,"line":1170},44,[915,1172,1173],{},"  transit_encryption_enabled = true\n",[915,1175,1177],{"class":917,"line":1176},45,[915,1178,1179],{},"  auth_token_enabled        = true\n",[915,1181,1183],{"class":917,"line":1182},46,[915,1184,940],{"emptyLinePlaceholder":939},[915,1186,1188],{"class":917,"line":1187},47,[915,1189,1190],{},"  # Journalisation\n",[915,1192,1194],{"class":917,"line":1193},48,[915,1195,1196],{},"  log_delivery_configuration {\n",[915,1198,1200],{"class":917,"line":1199},49,[915,1201,1202],{},"    destination      = var.cloudwatch_log_group\n",[915,1204,1206],{"class":917,"line":1205},50,[915,1207,1208],{},"    destination_type = \"cloudwatch-logs\"\n",[915,1210,1212],{"class":917,"line":1211},51,[915,1213,1214],{},"    log_format       = \"json\"\n",[915,1216,1218],{"class":917,"line":1217},52,[915,1219,1220],{},"    log_type         = \"slow-log\"\n",[915,1222,1224],{"class":917,"line":1223},53,[915,1225,1226],{},"  }\n",[915,1228,1230],{"class":917,"line":1229},54,[915,1231,940],{"emptyLinePlaceholder":939},[915,1233,1235],{"class":917,"line":1234},55,[915,1236,1237],{},"  tags = merge(\n",[915,1239,1241],{"class":917,"line":1240},56,[915,1242,1243],{},"    var.tags,\n",[915,1245,1247],{"class":917,"line":1246},57,[915,1248,1249],{},"    {\n",[915,1251,1253],{"class":917,"line":1252},58,[915,1254,1255],{},"      \"jetscale:optimized\"      = \"true\"\n",[915,1257,1259],{"class":917,"line":1258},59,[915,1260,1261],{},"      \"jetscale:recommendation\" = \"rec_elasticache_001\"\n",[915,1263,1265],{"class":917,"line":1264},60,[915,1266,1267],{},"      \"jetscale:previous_type\"  = \"cache.r5.xlarge\"\n",[915,1269,1271],{"class":917,"line":1270},61,[915,1272,1273],{},"    }\n",[915,1275,1277],{"class":917,"line":1276},62,[915,1278,1279],{},"  )\n",[915,1281,1283],{"class":917,"line":1282},63,[915,1284,1285],{},"}\n",[10,1287,1288],{},[28,1289,1290],{},"Exemple : Migration Graviton",[77,1292,1294],{"className":909,"code":1293,"language":911,"meta":86,"style":86},"# Migration ElastiCache Graviton\n# Genere par Jetscale le 2024-01-15\n\nresource \"aws_elasticache_replication_group\" \"api_cache_graviton\" {\n  replication_group_id       = \"api-cache-cluster\"\n  replication_group_description = \"API response cache - Graviton2\"\n\n  # Precedent : cache.r5.large (Intel, $125\u002Fmois par noeud)\n  # Optimise : cache.r6g.large (Graviton2, $100\u002Fmois par noeud)\n  # Reduction de cout : 20% ($75\u002Fmois total, $900\u002Fan)\n  #\n  # Performances :\n  # - Meme memoire : 6.4 GB RAM\n  # - Memes vCPUs : 2 par noeud\n  # - Graviton2 offre des performances equivalentes ou meilleures\n  # - 20% d'economies sans compromis de performance\n  #\n  # Exigences :\n  # - Moteur Redis 5.0.6+ pour le support Graviton\n  # - Aucun changement d'application requis\n  node_type = \"cache.r6g.large\"\n\n  engine         = \"redis\"\n  engine_version = \"7.0\"\n\n  num_cache_clusters         = 3\n  automatic_failover_enabled = true\n  multi_az_enabled          = true\n\n  subnet_group_name  = var.subnet_group_name\n  security_group_ids = var.security_group_ids\n\n  maintenance_window        = \"sun:05:00-sun:06:00\"\n  snapshot_window          = \"03:00-04:00\"\n  snapshot_retention_limit = 7\n\n  parameter_group_name = var.parameter_group_name\n\n  at_rest_encryption_enabled = true\n  transit_encryption_enabled = true\n\n  tags = merge(\n    var.tags,\n    {\n      \"jetscale:optimized\"    = \"true\"\n      \"jetscale:architecture\" = \"arm64\"\n      \"jetscale:processor\"    = \"graviton2\"\n    }\n  )\n}\n",[84,1295,1296,1301,1305,1309,1314,1319,1324,1328,1333,1338,1343,1347,1352,1357,1362,1367,1372,1376,1381,1386,1391,1396,1400,1404,1408,1412,1417,1421,1425,1429,1433,1437,1441,1446,1451,1456,1460,1464,1468,1472,1476,1480,1484,1488,1492,1497,1502,1507,1511,1515],{"__ignoreMap":86},[915,1297,1298],{"class":917,"line":918},[915,1299,1300],{},"# Migration ElastiCache Graviton\n",[915,1302,1303],{"class":917,"line":924},[915,1304,927],{},[915,1306,1307],{"class":917,"line":930},[915,1308,940],{"emptyLinePlaceholder":939},[915,1310,1311],{"class":917,"line":936},[915,1312,1313],{},"resource \"aws_elasticache_replication_group\" \"api_cache_graviton\" {\n",[915,1315,1316],{"class":917,"line":943},[915,1317,1318],{},"  replication_group_id       = \"api-cache-cluster\"\n",[915,1320,1321],{"class":917,"line":949},[915,1322,1323],{},"  replication_group_description = \"API response cache - Graviton2\"\n",[915,1325,1326],{"class":917,"line":955},[915,1327,940],{"emptyLinePlaceholder":939},[915,1329,1330],{"class":917,"line":961},[915,1331,1332],{},"  # Precedent : cache.r5.large (Intel, $125\u002Fmois par noeud)\n",[915,1334,1335],{"class":917,"line":966},[915,1336,1337],{},"  # Optimise : cache.r6g.large (Graviton2, $100\u002Fmois par noeud)\n",[915,1339,1340],{"class":917,"line":972},[915,1341,1342],{},"  # Reduction de cout : 20% ($75\u002Fmois total, $900\u002Fan)\n",[915,1344,1345],{"class":917,"line":978},[915,1346,987],{},[915,1348,1349],{"class":917,"line":984},[915,1350,1351],{},"  # Performances :\n",[915,1353,1354],{"class":917,"line":990},[915,1355,1356],{},"  # - Meme memoire : 6.4 GB RAM\n",[915,1358,1359],{"class":917,"line":996},[915,1360,1361],{},"  # - Memes vCPUs : 2 par noeud\n",[915,1363,1364],{"class":917,"line":1002},[915,1365,1366],{},"  # - Graviton2 offre des performances equivalentes ou meilleures\n",[915,1368,1369],{"class":917,"line":1008},[915,1370,1371],{},"  # - 20% d'economies sans compromis de performance\n",[915,1373,1374],{"class":917,"line":1014},[915,1375,987],{},[915,1377,1378],{"class":917,"line":1020},[915,1379,1380],{},"  # Exigences :\n",[915,1382,1383],{"class":917,"line":1026},[915,1384,1385],{},"  # - Moteur Redis 5.0.6+ pour le support Graviton\n",[915,1387,1388],{"class":917,"line":1032},[915,1389,1390],{},"  # - Aucun changement d'application requis\n",[915,1392,1393],{"class":917,"line":1038},[915,1394,1395],{},"  node_type = \"cache.r6g.large\"\n",[915,1397,1398],{"class":917,"line":1043},[915,1399,940],{"emptyLinePlaceholder":939},[915,1401,1402],{"class":917,"line":1049},[915,1403,1046],{},[915,1405,1406],{"class":917,"line":1055},[915,1407,1052],{},[915,1409,1410],{"class":917,"line":1060},[915,1411,940],{"emptyLinePlaceholder":939},[915,1413,1414],{"class":917,"line":1066},[915,1415,1416],{},"  num_cache_clusters         = 3\n",[915,1418,1419],{"class":917,"line":1072},[915,1420,1075],{},[915,1422,1423],{"class":917,"line":1078},[915,1424,1081],{},[915,1426,1427],{"class":917,"line":1084},[915,1428,940],{"emptyLinePlaceholder":939},[915,1430,1431],{"class":917,"line":1089},[915,1432,1098],{},[915,1434,1435],{"class":917,"line":1095},[915,1436,1104],{},[915,1438,1439],{"class":917,"line":1101},[915,1440,940],{"emptyLinePlaceholder":939},[915,1442,1443],{"class":917,"line":1107},[915,1444,1445],{},"  maintenance_window        = \"sun:05:00-sun:06:00\"\n",[915,1447,1448],{"class":917,"line":1112},[915,1449,1450],{},"  snapshot_window          = \"03:00-04:00\"\n",[915,1452,1453],{"class":917,"line":1118},[915,1454,1455],{},"  snapshot_retention_limit = 7\n",[915,1457,1458],{"class":917,"line":1124},[915,1459,940],{"emptyLinePlaceholder":939},[915,1461,1462],{"class":917,"line":1130},[915,1463,1150],{},[915,1465,1466],{"class":917,"line":1136},[915,1467,940],{"emptyLinePlaceholder":939},[915,1469,1470],{"class":917,"line":1141},[915,1471,1167],{},[915,1473,1474],{"class":917,"line":1147},[915,1475,1173],{},[915,1477,1478],{"class":917,"line":1153},[915,1479,940],{"emptyLinePlaceholder":939},[915,1481,1482],{"class":917,"line":1158},[915,1483,1237],{},[915,1485,1486],{"class":917,"line":1164},[915,1487,1243],{},[915,1489,1490],{"class":917,"line":1170},[915,1491,1249],{},[915,1493,1494],{"class":917,"line":1176},[915,1495,1496],{},"      \"jetscale:optimized\"    = \"true\"\n",[915,1498,1499],{"class":917,"line":1182},[915,1500,1501],{},"      \"jetscale:architecture\" = \"arm64\"\n",[915,1503,1504],{"class":917,"line":1187},[915,1505,1506],{},"      \"jetscale:processor\"    = \"graviton2\"\n",[915,1508,1509],{"class":917,"line":1193},[915,1510,1273],{},[915,1512,1513],{"class":917,"line":1199},[915,1514,1279],{},[915,1516,1517],{"class":917,"line":1205},[915,1518,1285],{},[10,1520,1521],{},[28,1522,1523],{},"Exemple : Optimisation Memcached",[77,1525,1527],{"className":909,"code":1526,"language":911,"meta":86,"style":86},"# Optimisation ElastiCache Memcached\n# Genere par Jetscale le 2024-01-15\n\nresource \"aws_elasticache_cluster\" \"session_cache\" {\n  cluster_id = \"session-cache-memcached\"\n\n  # Precedent : 6x cache.m5.large ($720\u002Fmois)\n  # Optimise : 4x cache.m6g.xlarge ($640\u002Fmois)\n  # Reduction de cout : 11% ($80\u002Fmois, $960\u002Fan)\n  #\n  # Analyse :\n  # - Memoire totale necessaire : 12 GB pic\n  # - Moins de noeuds reduisent la complexite operationnelle\n  # - Graviton2 fournit 20% d'economies par noeud\n  # - Meilleures performances reseau par noeud\n  node_type = \"cache.m6g.xlarge\"\n\n  engine         = \"memcached\"\n  engine_version = \"1.6.17\"\n\n  num_cache_nodes = 4\n  az_mode        = \"cross-az\"\n\n  subnet_group_name  = var.subnet_group_name\n  security_group_ids = var.security_group_ids\n\n  maintenance_window = \"sun:05:00-sun:06:00\"\n\n  parameter_group_name = var.parameter_group_name\n\n  tags = merge(\n    var.tags,\n    {\n      \"jetscale:optimized\"      = \"true\"\n      \"jetscale:previous_nodes\" = \"6\"\n      \"jetscale:previous_type\"  = \"cache.m5.large\"\n    }\n  )\n}\n",[84,1528,1529,1534,1538,1542,1547,1552,1556,1561,1566,1571,1575,1580,1585,1590,1595,1600,1605,1609,1614,1619,1623,1628,1633,1637,1641,1645,1649,1654,1658,1662,1666,1670,1674,1678,1682,1687,1692,1696,1700],{"__ignoreMap":86},[915,1530,1531],{"class":917,"line":918},[915,1532,1533],{},"# Optimisation ElastiCache Memcached\n",[915,1535,1536],{"class":917,"line":924},[915,1537,927],{},[915,1539,1540],{"class":917,"line":930},[915,1541,940],{"emptyLinePlaceholder":939},[915,1543,1544],{"class":917,"line":936},[915,1545,1546],{},"resource \"aws_elasticache_cluster\" \"session_cache\" {\n",[915,1548,1549],{"class":917,"line":943},[915,1550,1551],{},"  cluster_id = \"session-cache-memcached\"\n",[915,1553,1554],{"class":917,"line":949},[915,1555,940],{"emptyLinePlaceholder":939},[915,1557,1558],{"class":917,"line":955},[915,1559,1560],{},"  # Precedent : 6x cache.m5.large ($720\u002Fmois)\n",[915,1562,1563],{"class":917,"line":961},[915,1564,1565],{},"  # Optimise : 4x cache.m6g.xlarge ($640\u002Fmois)\n",[915,1567,1568],{"class":917,"line":966},[915,1569,1570],{},"  # Reduction de cout : 11% ($80\u002Fmois, $960\u002Fan)\n",[915,1572,1573],{"class":917,"line":972},[915,1574,987],{},[915,1576,1577],{"class":917,"line":978},[915,1578,1579],{},"  # Analyse :\n",[915,1581,1582],{"class":917,"line":984},[915,1583,1584],{},"  # - Memoire totale necessaire : 12 GB pic\n",[915,1586,1587],{"class":917,"line":990},[915,1588,1589],{},"  # - Moins de noeuds reduisent la complexite operationnelle\n",[915,1591,1592],{"class":917,"line":996},[915,1593,1594],{},"  # - Graviton2 fournit 20% d'economies par noeud\n",[915,1596,1597],{"class":917,"line":1002},[915,1598,1599],{},"  # - Meilleures performances reseau par noeud\n",[915,1601,1602],{"class":917,"line":1008},[915,1603,1604],{},"  node_type = \"cache.m6g.xlarge\"\n",[915,1606,1607],{"class":917,"line":1014},[915,1608,940],{"emptyLinePlaceholder":939},[915,1610,1611],{"class":917,"line":1020},[915,1612,1613],{},"  engine         = \"memcached\"\n",[915,1615,1616],{"class":917,"line":1026},[915,1617,1618],{},"  engine_version = \"1.6.17\"\n",[915,1620,1621],{"class":917,"line":1032},[915,1622,940],{"emptyLinePlaceholder":939},[915,1624,1625],{"class":917,"line":1038},[915,1626,1627],{},"  num_cache_nodes = 4\n",[915,1629,1630],{"class":917,"line":1043},[915,1631,1632],{},"  az_mode        = \"cross-az\"\n",[915,1634,1635],{"class":917,"line":1049},[915,1636,940],{"emptyLinePlaceholder":939},[915,1638,1639],{"class":917,"line":1055},[915,1640,1098],{},[915,1642,1643],{"class":917,"line":1060},[915,1644,1104],{},[915,1646,1647],{"class":917,"line":1066},[915,1648,940],{"emptyLinePlaceholder":939},[915,1650,1651],{"class":917,"line":1072},[915,1652,1653],{},"  maintenance_window = \"sun:05:00-sun:06:00\"\n",[915,1655,1656],{"class":917,"line":1078},[915,1657,940],{"emptyLinePlaceholder":939},[915,1659,1660],{"class":917,"line":1084},[915,1661,1150],{},[915,1663,1664],{"class":917,"line":1089},[915,1665,940],{"emptyLinePlaceholder":939},[915,1667,1668],{"class":917,"line":1095},[915,1669,1237],{},[915,1671,1672],{"class":917,"line":1101},[915,1673,1243],{},[915,1675,1676],{"class":917,"line":1107},[915,1677,1249],{},[915,1679,1680],{"class":917,"line":1112},[915,1681,1255],{},[915,1683,1684],{"class":917,"line":1118},[915,1685,1686],{},"      \"jetscale:previous_nodes\" = \"6\"\n",[915,1688,1689],{"class":917,"line":1124},[915,1690,1691],{},"      \"jetscale:previous_type\"  = \"cache.m5.large\"\n",[915,1693,1694],{"class":917,"line":1130},[915,1695,1273],{},[915,1697,1698],{"class":917,"line":1136},[915,1699,1279],{},[915,1701,1702],{"class":917,"line":1141},[915,1703,1285],{},[14,1705,1707],{"id":1706},"bonnes-pratiques","Bonnes pratiques",[55,1709,1711],{"id":1710},"surveillance-apres-les-changements","Surveillance apres les changements",[10,1713,1714],{},"Apres avoir applique les recommandations Jetscale :",[1716,1717,1718,1741,1764],"ol",{},[25,1719,1720,1723,1724],{},[28,1721,1722],{},"Premieres 24 heures"," : Surveiller etroitement les metriques cles",[22,1725,1726,1729,1732,1735,1738],{},[25,1727,1728],{},"Utilisation memoire et taux d'eviction",[25,1730,1731],{},"Utilisation CPU (surtout EngineCPU pour Redis)",[25,1733,1734],{},"Taux de reussite du cache (devrait rester stable)",[25,1736,1737],{},"SwapUsage (devrait etre zero)",[25,1739,1740],{},"Nombre de connexions et latence",[25,1742,1743,1746,1747],{},[28,1744,1745],{},"Semaine 1"," : Valider les performances",[22,1748,1749,1752,1755,1758,1761],{},[25,1750,1751],{},"Temps de reponse des applications",[25,1753,1754],{},"Taux d'echec du cache (ne devrait pas augmenter)",[25,1756,1757],{},"Aucune eviction sous charge normale",[25,1759,1760],{},"Debit reseau dans les limites",[25,1762,1763],{},"Decalage de replication (replicas Redis)",[25,1765,1766,1769,1770],{},[28,1767,1768],{},"Semaines 2-4"," : Confirmer les economies",[22,1771,1772,1775,1778],{},[25,1773,1774],{},"Verifier que la facturation AWS reflete les economies attendues",[25,1776,1777],{},"Aucun frais de transfert de donnees inattendu",[25,1779,1780],{},"Verifier les recommandations de noeuds reserves",[55,1782,1784],{"id":1783},"strategie-de-test","Strategie de test",[10,1786,1787],{},[28,1788,1789],{},"Tests pre-production :",[1716,1791,1792,1795,1798,1801,1804],{},[25,1793,1794],{},"Appliquer les changements d'abord sur l'environnement dev\u002Fstaging",[25,1796,1797],{},"Executer des tests de charge simulant le trafic de pointe",[25,1799,1800],{},"Surveiller pendant 48-72 heures sous charge realiste",[25,1802,1803],{},"Valider les metriques de performance du cache",[25,1805,1806],{},"Tester les scenarios de basculement (Redis Multi-AZ)",[10,1808,1809],{},[28,1810,1811],{},"Deploiement en production :",[1716,1813,1814,1817,1820,1823,1826],{},[25,1815,1816],{},"Planifier les changements pendant les fenetres de maintenance",[25,1818,1819],{},"Utiliser des deploiements blue\u002Fgreen pour un temps d'arret nul (creer un nouveau cluster, basculer le trafic)",[25,1821,1822],{},"Avoir un plan de retour en arriere pret",[25,1824,1825],{},"Surveiller activement pendant et apres le changement",[25,1827,1828],{},"Conserver l'ancien cluster en cours d'execution pendant 24 heures avant sa terminaison",[55,1830,1832],{"id":1831},"noeuds-reserves-et-optimisation-des-couts","Noeuds reserves et optimisation des couts",[10,1834,1835],{},[28,1836,1837],{},"Quand acheter des noeuds reserves :",[22,1839,1840,1843,1846],{},[25,1841,1842],{},"Caches stables et de longue duree (>1 an de duree de vie prevue)",[25,1844,1845],{},"Apres dimensionnement optimal (ne pas reserver des noeuds surdimensionnes)",[25,1847,1848],{},"Quand les economies d'engagement > cout d'opportunite",[10,1850,1851],{},[28,1852,1853],{},"Recommandations Jetscale :",[22,1855,1856,1859,1862,1865,1868],{},[25,1857,1858],{},"Nous analysons l'utilisation des noeuds reserves et suggerons des achats optimaux",[25,1860,1861],{},"Considerer 1 an plutot que 3 ans pour la flexibilite",[25,1863,1864],{},"L'option No Upfront fournit des economies mensuelles sans cout initial",[25,1866,1867],{},"Partial Upfront offre des economies legerement meilleures",[25,1869,1870],{},"All Upfront offre des economies maximales (55% pour Redis 3 ans)",[10,1872,1873],{},[28,1874,1875],{},"Economies sur noeuds reserves :",[22,1877,1878,1881,1884,1887],{},[25,1879,1880],{},"1 an No Upfront : ~30% d'economies",[25,1882,1883],{},"1 an All Upfront : ~35% d'economies",[25,1885,1886],{},"3 ans No Upfront : ~50% d'economies",[25,1888,1889],{},"3 ans All Upfront : ~55% d'economies",[14,1891,1893],{"id":1892},"modeles-doptimisation-courants","Modeles d'optimisation courants",[55,1895,1897],{"id":1896},"modele-1-cluster-redis-surapprovisionne","Modele 1 : Cluster Redis surapprovisionne",[10,1899,1900],{},[28,1901,1902],{},"Symptomes :",[22,1904,1905,1908,1911,1914],{},[25,1906,1907],{},"Utilisation memoire \u003C 50% constamment",[25,1909,1910],{},"Utilisation CPU \u003C 30%",[25,1912,1913],{},"Aucune eviction",[25,1915,1916],{},"Taux de reussite du cache >95%",[10,1918,1919],{},[28,1920,1921],{},"Recommandation Jetscale :",[22,1923,1924,1927,1930],{},[25,1925,1926],{},"Reduire le type de noeud de 1-2 tailles",[25,1928,1929],{},"Economies typiques : 50-66%",[25,1931,1932],{},"Risque : Faible (maintenir 20%+ de marge)",[55,1934,1936],{"id":1935},"modele-2-opportunites-graviton-manquees","Modele 2 : Opportunites Graviton manquees",[10,1938,1939],{},[28,1940,1902],{},[22,1942,1943,1946,1949],{},[25,1944,1945],{},"Utilisation d'instances basees sur Intel (r5, m5, r6i)",[25,1947,1948],{},"Redis 5.0.6+ ou Memcached 1.5.16+",[25,1950,1951],{},"Aucune dependance specifique ARM",[10,1953,1954],{},[28,1955,1921],{},[22,1957,1958,1961,1964,1967],{},[25,1959,1960],{},"Migrer vers les instances Graviton (r5 → r6g, m5 → m6g, ou dernieres r7g\u002Fm7g)",[25,1962,1963],{},"Economies typiques : 20-40% avec performances identiques ou meilleures",[25,1965,1966],{},"Exigences : Verifier la compatibilite de version du moteur",[25,1968,1969],{},"Meilleur pour : Tous les deploiements Redis et Memcached modernes",[55,1971,1973],{"id":1972},"modele-3-multi-az-hors-production","Modele 3 : Multi-AZ hors production",[10,1975,1976],{},[28,1977,1902],{},[22,1979,1980,1983,1986],{},[25,1981,1982],{},"Caches dev\u002Fstaging\u002Ftest avec Multi-AZ active",[25,1984,1985],{},"Haute disponibilite non requise pour la non-production",[25,1987,1988],{},"Tolerance d'arret acceptable",[10,1990,1991],{},[28,1992,1921],{},[22,1994,1995,1998,2001,2004],{},[25,1996,1997],{},"Desactiver Multi-AZ et le basculement automatique",[25,1999,2000],{},"Economies typiques : 50% sur les couts de noeuds",[25,2002,2003],{},"Compromis : Recuperation manuelle vs basculement automatique",[25,2005,2006],{},"Meilleur pour : Environnements de developpement, staging, tests",[55,2008,2010],{"id":2009},"modele-4-versions-de-moteur-heritees","Modele 4 : Versions de moteur heritees",[10,2012,2013],{},[28,2014,1902],{},[22,2016,2017,2020,2023],{},[25,2018,2019],{},"Execution de Redis 5.x ou plus ancien",[25,2021,2022],{},"Execution de Memcached 1.5.x ou plus ancien",[25,2024,2025],{},"Ameliorations de performances et fonctionnalites manquees",[10,2027,2028],{},[28,2029,1921],{},[22,2031,2032,2035,2038,2041],{},[25,2033,2034],{},"Mise a niveau vers la derniere version du moteur (Redis 7.x, Memcached 1.6.x)",[25,2036,2037],{},"Economies typiques : Amelioration de l'efficacite memoire de 5-10%",[25,2039,2040],{},"Avantages supplementaires : Correctifs de securite, nouvelles fonctionnalites, meilleures performances",[25,2042,2043],{},"Risque : Faible a moyen (tester pour les changements incompatibles)",[55,2045,2047],{"id":2046},"modele-5-taux-deviction-eleve","Modele 5 : Taux d'eviction eleve",[10,2049,2050],{},[28,2051,1902],{},[22,2053,2054,2057,2060,2063],{},[25,2055,2056],{},"Evictions > 0 constamment",[25,2058,2059],{},"Utilisation memoire a 100%",[25,2061,2062],{},"Taux de reussite du cache en baisse",[25,2064,2065],{},"SwapUsage > 0 (indicateur critique)",[10,2067,2068],{},[28,2069,1921],{},[22,2071,2072,2075,2078,2081],{},[25,2073,2074],{},"Augmenter vers un type de noeud plus grand (plus de memoire)",[25,2076,2077],{},"Alternative : Ajouter plus de noeuds (Memcached) ou de shards (Redis Cluster Mode)",[25,2079,2080],{},"Augmentation de cout typique : 50-100% MAIS necessaire pour les performances",[25,2082,2083],{},"Risque : Eleve si non traite (thrashing du cache, performances mediocres)",[10,2085,2086,2088],{},[28,2087,139],{}," C'est un cas ou Jetscale recommande de depenser PLUS pour ameliorer les performances et prevenir les defaillances du cache.",[14,2090,2092],{"id":2091},"depannage","Depannage",[55,2094,2096],{"id":2095},"preoccupations-sur-les-recommandations","Preoccupations sur les recommandations",[10,2098,2099],{},[28,2100,2101],{},"Q : La reduction de taille impactera-t-elle les taux de reussite du cache ?",[10,2103,2104],{},"R : Jetscale maintient 20%+ de marge au-dessus de l'utilisation memoire maximale. Nous analysons :",[22,2106,2107,2110,2113,2116],{},[25,2108,2109],{},"Utilisation memoire au 99e percentile sur 14 jours",[25,2111,2112],{},"Modeles d'eviction",[25,2114,2115],{},"Ratios reussites\u002Fechecs du cache",[25,2117,2118],{},"SwapUsage (indicateur critique de pression memoire)",[10,2120,2121],{},"Les recommandations ne procedent que si :",[22,2123,2124,2127,2130],{},[25,2125,2126],{},"Aucune eviction detectee pendant la periode de reference",[25,2128,2129],{},"SwapUsage est zero",[25,2131,2132],{},"Le risque de performance est faible ou tres faible",[10,2134,2135],{},[28,2136,2137],{},"Q : Qu'en est-il des pics de trafic soudains ?",[10,2139,2140],{},"R : Notre analyse inclut :",[22,2142,2143,2146,2149,2152],{},[25,2144,2145],{},"Metriques P99 (99e percentile), pas seulement des moyennes",[25,2147,2148],{},"Tampon de 20% au-dessus du pic pour les pics inattendus",[25,2150,2151],{},"Modeles de pics historiques",[25,2153,2154],{},"Marge pour la croissance",[10,2156,2157],{},[28,2158,2159],{},"Q : Comment tester la migration Graviton ?",[10,2161,2162],{},"R : Approche recommandee :",[1716,2164,2165,2168,2171,2174,2177],{},[25,2166,2167],{},"Creer un nouveau cluster base sur Graviton en staging",[25,2169,2170],{},"Configurer l'application pour utiliser les deux clusters (test A\u002FB)",[25,2172,2173],{},"Comparer les metriques de performance pendant 48-72 heures",[25,2175,2176],{},"Basculement complet vers le cluster Graviton une fois valide",[25,2178,2179],{},"Appliquer a la production apres le succes du staging",[55,2181,2183],{"id":2182},"problemes-de-performance-apres-optimisation","Problemes de performance apres optimisation",[10,2185,2186],{},[28,2187,2188],{},"Symptome : Taux d'echec du cache augmente",[10,2190,2191],{},"Causes possibles :",[22,2193,2194,2197,2200],{},[25,2195,2196],{},"Memoire insuffisante (reduction trop agressive)",[25,2198,2199],{},"Evictions en cours",[25,2201,2202],{},"Problemes de distribution des cles (Redis Cluster Mode)",[10,2204,2205],{},[28,2206,2207],{},"Resolution :",[1716,2209,2210,2216,2222,2225],{},[25,2211,2212,2213,2215],{},"Verifier la metrique ",[84,2214,582],{}," (devrait etre zero)",[25,2217,2218,2219,2221],{},"Verifier ",[84,2220,527],{}," (devrait etre \u003C80%)",[25,2223,2224],{},"Augmenter la taille du noeud si pression memoire detectee",[25,2226,2227],{},"Revoir les politiques d'expiration des cles",[10,2229,2230],{},[28,2231,2232],{},"Symptome : Utilisation CPU elevee",[10,2234,2191],{},[22,2236,2237,2240,2243],{},[25,2238,2239],{},"CPU insuffisant pour le traitement des commandes",[25,2241,2242],{},"Modeles d'acces au cache inefficaces",[25,2244,2245],{},"Operations sur de grandes cles",[10,2247,2248],{},[28,2249,2207],{},[1716,2251,2252,2260,2263,2266],{},[25,2253,2218,2254,2256,2257,2259],{},[84,2255,576],{}," (Redis) ou ",[84,2258,521],{}," (Memcached)",[25,2261,2262],{},"Consulter le journal lent pour les operations couteuses",[25,2264,2265],{},"Augmenter la taille du noeud si CPU constamment >70%",[25,2267,2268],{},"Optimiser les modeles d'acces au cache de l'application",[10,2270,2271],{},[28,2272,2273],{},"Symptome : SwapUsage > 0",[10,2275,2276,2279],{},[28,2277,2278],{},"PROBLEME CRITIQUE"," - Pression memoire detectee",[10,2281,2191],{},[22,2283,2284,2287,2290],{},[25,2285,2286],{},"Type de noeud avec memoire insuffisante",[25,2288,2289],{},"Fuite memoire dans l'application",[25,2291,2292],{},"Tailles de cles plus grandes que prevu",[10,2294,2295],{},[28,2296,2207],{},[1716,2298,2299,2302,2307,2310],{},[25,2300,2301],{},"Augmenter immediatement la taille du noeud (la pression memoire cause une grave degradation des performances)",[25,2303,2304,2305],{},"Examiner les tendances de croissance de ",[84,2306,533],{},[25,2308,2309],{},"Verifier les fuites memoire",[25,2311,2312],{},"Implementer des politiques d'eviction de cles si approprie",[10,2314,2315],{},[28,2316,2317],{},"Symptome : Decalage de replication en augmentation (Redis)",[10,2319,2191],{},[22,2321,2322,2325,2328],{},[25,2323,2324],{},"Volume d'ecriture eleve",[25,2326,2327],{},"Saturation reseau",[25,2329,2330],{},"Replicas sous-dimensionnes",[10,2332,2333],{},[28,2334,2207],{},[1716,2336,2337,2341,2347,2350],{},[25,2338,2212,2339],{},[84,2340,588],{},[25,2342,2343,2344,2346],{},"Verifier le debit reseau (",[84,2345,549],{}," du primaire)",[25,2348,2349],{},"Augmenter la taille du noeud si les replicas ne peuvent pas suivre",[25,2351,2352],{},"Considerer Redis Cluster Mode pour la distribution des ecritures",[14,2354,2356],{"id":2355},"considerations-de-securite","Considerations de securite",[55,2358,2360],{"id":2359},"chiffrement","Chiffrement",[10,2362,2363],{},"Les recommandations Jetscale preservent les parametres de chiffrement existants :",[22,2365,2366,2369,2372,2375],{},[25,2367,2368],{},"Etat de chiffrement au repos maintenu",[25,2370,2371],{},"Etat de chiffrement en transit (TLS) maintenu",[25,2373,2374],{},"Jetons d'authentification preserves (Redis)",[25,2376,2377],{},"Aucun changement aux cles KMS",[55,2379,2381],{"id":2380},"securite-reseau","Securite reseau",[10,2383,2384],{},"Configuration preservee :",[22,2386,2387,2390,2393,2396],{},[25,2388,2389],{},"Associations VPC et groupe de sous-reseaux",[25,2391,2392],{},"Regles de groupe de securite inchangees",[25,2394,2395],{},"Isolation de sous-reseau prive maintenue",[25,2397,2398],{},"Aucun changement de point de terminaison public",[55,2400,2402],{"id":2401},"controle-dacces","Controle d'acces",[22,2404,2405,2408,2411,2414],{},[25,2406,2407],{},"Redis AUTH preserve",[25,2409,2410],{},"Associations de groupes de parametres maintenues",[25,2412,2413],{},"Parametres d'authentification IAM inchanges",[25,2415,2416],{},"Exigences de conformite respectees",[14,2418,2420],{"id":2419},"compatibilite-des-moteurs","Compatibilite des moteurs",[55,2422,2424],{"id":2423},"support-graviton-pour-redis","Support Graviton pour Redis",[10,2426,2427],{},[28,2428,2429],{},"Versions minimales pour Graviton :",[22,2431,2432,2435,2438],{},[25,2433,2434],{},"Redis 5.0.6+ : Supporte r6g, m6g (Graviton2)",[25,2436,2437],{},"Redis 6.2+ : Recommande pour Graviton2",[25,2439,2440],{},"Redis 7.0+ : Support complet Graviton3 (r7g, m7g)",[10,2442,2443],{},[28,2444,2445],{},"Compatibilite des fonctionnalites :",[22,2447,2448,2451,2454,2457],{},[25,2449,2450],{},"Toutes les fonctionnalites Redis supportees sur Graviton",[25,2452,2453],{},"Memes capacites de clustering",[25,2455,2456],{},"Memes replication et persistance",[25,2458,2459],{},"Aucun changement de code d'application requis",[55,2461,2463],{"id":2462},"support-graviton-pour-memcached","Support Graviton pour Memcached",[10,2465,2466],{},[28,2467,2468],{},"Versions minimales :",[22,2470,2471,2474],{},[25,2472,2473],{},"Memcached 1.5.16+ : Supporte m6g (Graviton2)",[25,2475,2476],{},"Memcached 1.6.6+ : Recommande pour Graviton2",[10,2478,2479],{},[28,2480,2445],{},[22,2482,2483,2486,2489],{},[25,2484,2485],{},"Toutes les fonctionnalites Memcached supportees",[25,2487,2488],{},"Meme protocole et commandes",[25,2490,2491],{},"Aucun changement d'application requis",[14,2493,2495],{"id":2494},"limitations","Limitations",[10,2497,2498],{},[28,2499,2500],{},"Actuellement non supporte :",[22,2502,2503,2506,2509,2512],{},[25,2504,2505],{},"Optimisation Global Datastore (Redis)",[25,2507,2508],{},"Optimisation des couts de sauvegarde et restauration",[25,2510,2511],{},"Recommandations de tiering de donnees (Redis)",[25,2513,2514],{},"Deploiements Outpost",[10,2516,2517],{},[28,2518,2519],{},"Limitations du Cluster Mode Enabled :",[22,2521,2522,2525,2528],{},[25,2523,2524],{},"Impossible de changer le nombre de shards sans migration de donnees",[25,2526,2527],{},"Le resharding est complexe et doit etre planifie separement",[25,2529,2530],{},"Jetscale optimise les types de noeuds mais pas la topologie des shards",[14,2532,2534],{"id":2533},"integration-api","Integration API",[10,2536,2537],{},"Jetscale fournit un acces API pour l'optimisation programmatique :",[77,2539,2543],{"className":2540,"code":2541,"language":2542,"meta":86,"style":86},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Lister les recommandations ElastiCache\nGET \u002Fapi\u002Fv1\u002Frecommendations?resource_type=elasticache\n\n# Obtenir les details d'une recommandation specifique\nGET \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\n\n# Approuver une recommandation (genere Terraform)\nPOST \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\u002Fapprove\n\n# Recuperer le Terraform genere\nGET \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\u002Fterraform\n","bash",[84,2544,2545,2551,2561,2565,2570,2577,2581,2586,2594,2598,2603],{"__ignoreMap":86},[915,2546,2547],{"class":917,"line":918},[915,2548,2550],{"class":2549},"sHwdD","# Lister les recommandations ElastiCache\n",[915,2552,2553,2557],{"class":917,"line":924},[915,2554,2556],{"class":2555},"sBMFI","GET",[915,2558,2560],{"class":2559},"sfazB"," \u002Fapi\u002Fv1\u002Frecommendations?resource_type=elasticache\n",[915,2562,2563],{"class":917,"line":930},[915,2564,940],{"emptyLinePlaceholder":939},[915,2566,2567],{"class":917,"line":936},[915,2568,2569],{"class":2549},"# Obtenir les details d'une recommandation specifique\n",[915,2571,2572,2574],{"class":917,"line":943},[915,2573,2556],{"class":2555},[915,2575,2576],{"class":2559}," \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\n",[915,2578,2579],{"class":917,"line":949},[915,2580,940],{"emptyLinePlaceholder":939},[915,2582,2583],{"class":917,"line":955},[915,2584,2585],{"class":2549},"# Approuver une recommandation (genere Terraform)\n",[915,2587,2588,2591],{"class":917,"line":961},[915,2589,2590],{"class":2555},"POST",[915,2592,2593],{"class":2559}," \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\u002Fapprove\n",[915,2595,2596],{"class":917,"line":966},[915,2597,940],{"emptyLinePlaceholder":939},[915,2599,2600],{"class":917,"line":972},[915,2601,2602],{"class":2549},"# Recuperer le Terraform genere\n",[915,2604,2605,2607],{"class":917,"line":978},[915,2606,2556],{"class":2555},[915,2608,2609],{"class":2559}," \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\u002Fterraform\n",[10,2611,2612,2613,2618],{},"Consultez notre ",[2614,2615,2617],"a",{"href":2616},"\u002Ffr-ca\u002Fdocs\u002Fapi-reference","Documentation API"," pour une reference complete.",[14,2620,2622],{"id":2621},"permissions-iam-requises","Permissions IAM requises",[10,2624,2625],{},"Jetscale necessite les permissions IAM suivantes pour l'optimisation ElastiCache :",[10,2627,2628],{},[28,2629,2630],{},"Permissions de lecture (pour l'analyse) :",[77,2632,2636],{"className":2633,"code":2634,"language":2635,"meta":86,"style":86},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": [\n        \"elasticache:DescribeCacheClusters\",\n        \"elasticache:DescribeReplicationGroups\",\n        \"elasticache:DescribeCacheParameters\",\n        \"elasticache:DescribeCacheEngineVersions\",\n        \"elasticache:ListTagsForResource\",\n        \"cloudwatch:GetMetricStatistics\",\n        \"cloudwatch:GetMetricData\",\n        \"ce:GetCostAndUsage\"\n      ],\n      \"Resource\": \"*\"\n    }\n  ]\n}\n","json",[84,2637,2638,2644,2670,2684,2688,2709,2722,2734,2745,2756,2767,2778,2789,2800,2810,2815,2833,2837,2842],{"__ignoreMap":86},[915,2639,2640],{"class":917,"line":918},[915,2641,2643],{"class":2642},"sMK4o","{\n",[915,2645,2646,2649,2653,2656,2659,2662,2665,2667],{"class":917,"line":924},[915,2647,2648],{"class":2642},"  \"",[915,2650,2652],{"class":2651},"spNyl","Version",[915,2654,2655],{"class":2642},"\"",[915,2657,2658],{"class":2642},":",[915,2660,2661],{"class":2642}," \"",[915,2663,2664],{"class":2559},"2012-10-17",[915,2666,2655],{"class":2642},[915,2668,2669],{"class":2642},",\n",[915,2671,2672,2674,2677,2679,2681],{"class":917,"line":930},[915,2673,2648],{"class":2642},[915,2675,2676],{"class":2651},"Statement",[915,2678,2655],{"class":2642},[915,2680,2658],{"class":2642},[915,2682,2683],{"class":2642}," [\n",[915,2685,2686],{"class":917,"line":936},[915,2687,1249],{"class":2642},[915,2689,2690,2693,2696,2698,2700,2702,2705,2707],{"class":917,"line":943},[915,2691,2692],{"class":2642},"      \"",[915,2694,2695],{"class":2555},"Effect",[915,2697,2655],{"class":2642},[915,2699,2658],{"class":2642},[915,2701,2661],{"class":2642},[915,2703,2704],{"class":2559},"Allow",[915,2706,2655],{"class":2642},[915,2708,2669],{"class":2642},[915,2710,2711,2713,2716,2718,2720],{"class":917,"line":949},[915,2712,2692],{"class":2642},[915,2714,2715],{"class":2555},"Action",[915,2717,2655],{"class":2642},[915,2719,2658],{"class":2642},[915,2721,2683],{"class":2642},[915,2723,2724,2727,2730,2732],{"class":917,"line":955},[915,2725,2726],{"class":2642},"        \"",[915,2728,2729],{"class":2559},"elasticache:DescribeCacheClusters",[915,2731,2655],{"class":2642},[915,2733,2669],{"class":2642},[915,2735,2736,2738,2741,2743],{"class":917,"line":961},[915,2737,2726],{"class":2642},[915,2739,2740],{"class":2559},"elasticache:DescribeReplicationGroups",[915,2742,2655],{"class":2642},[915,2744,2669],{"class":2642},[915,2746,2747,2749,2752,2754],{"class":917,"line":966},[915,2748,2726],{"class":2642},[915,2750,2751],{"class":2559},"elasticache:DescribeCacheParameters",[915,2753,2655],{"class":2642},[915,2755,2669],{"class":2642},[915,2757,2758,2760,2763,2765],{"class":917,"line":972},[915,2759,2726],{"class":2642},[915,2761,2762],{"class":2559},"elasticache:DescribeCacheEngineVersions",[915,2764,2655],{"class":2642},[915,2766,2669],{"class":2642},[915,2768,2769,2771,2774,2776],{"class":917,"line":978},[915,2770,2726],{"class":2642},[915,2772,2773],{"class":2559},"elasticache:ListTagsForResource",[915,2775,2655],{"class":2642},[915,2777,2669],{"class":2642},[915,2779,2780,2782,2785,2787],{"class":917,"line":984},[915,2781,2726],{"class":2642},[915,2783,2784],{"class":2559},"cloudwatch:GetMetricStatistics",[915,2786,2655],{"class":2642},[915,2788,2669],{"class":2642},[915,2790,2791,2793,2796,2798],{"class":917,"line":990},[915,2792,2726],{"class":2642},[915,2794,2795],{"class":2559},"cloudwatch:GetMetricData",[915,2797,2655],{"class":2642},[915,2799,2669],{"class":2642},[915,2801,2802,2804,2807],{"class":917,"line":996},[915,2803,2726],{"class":2642},[915,2805,2806],{"class":2559},"ce:GetCostAndUsage",[915,2808,2809],{"class":2642},"\"\n",[915,2811,2812],{"class":917,"line":1002},[915,2813,2814],{"class":2642},"      ],\n",[915,2816,2817,2819,2822,2824,2826,2828,2831],{"class":917,"line":1008},[915,2818,2692],{"class":2642},[915,2820,2821],{"class":2555},"Resource",[915,2823,2655],{"class":2642},[915,2825,2658],{"class":2642},[915,2827,2661],{"class":2642},[915,2829,2830],{"class":2559},"*",[915,2832,2809],{"class":2642},[915,2834,2835],{"class":917,"line":1014},[915,2836,1273],{"class":2642},[915,2838,2839],{"class":917,"line":1020},[915,2840,2841],{"class":2642},"  ]\n",[915,2843,2844],{"class":917,"line":1026},[915,2845,1285],{"class":2642},[10,2847,2848,2851],{},[28,2849,2850],{},"Note :"," Jetscale ne necessite pas de permissions d'ecriture. Tous les changements sont implementes via le code Terraform genere que vous examinez et appliquez a travers vos processus de deploiement existants.",[14,2853,2855],{"id":2854},"support","Support",[10,2857,2858],{},"Besoin d'aide avec l'optimisation ElastiCache ?",[22,2860,2861,2871,2880],{},[25,2862,2863,2866,2867],{},[28,2864,2865],{},"Email"," : ",[2614,2868,2870],{"href":2869},"mailto:support@jetscale.ai","support@jetscale.ai",[25,2872,2873,2866,2876],{},[28,2874,2875],{},"Documentation",[2614,2877,2879],{"href":2878},"\u002Ffr-ca\u002Fdocs\u002Ffaq","FAQ",[25,2881,2882,2866,2885],{},[28,2883,2884],{},"GitHub Issues",[2614,2886,2890],{"href":2887,"rel":2888},"https:\u002F\u002Fgithub.com\u002FJetscale-ai\u002Fjetscale-docs\u002Fissues",[2889],"nofollow","Signaler un probleme",[2892,2893],"hr",{},[10,2895,2896],{},[28,2897,2898],{},"Documentation connexe :",[22,2900,2901,2907,2913],{},[25,2902,2903],{},[2614,2904,2906],{"href":2905},"\u002Ffr-ca\u002Fdocs\u002Fservices\u002Frds","Optimisation RDS",[25,2908,2909],{},[2614,2910,2912],{"href":2911},"\u002Ffr-ca\u002Fdocs\u002Fservices\u002Fec2","Optimisation EC2",[25,2914,2915],{},[2614,2916,2918],{"href":2917},"\u002Ffr-ca\u002Fdocs\u002Fservices\u002Febs","Optimisation EBS",[2920,2921,2922],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":86,"searchDepth":924,"depth":924,"links":2924},[2925,2926,2930,2936,2942,2947,2954,2958,2963,2967,2968,2969,2970],{"id":16,"depth":924,"text":17},{"id":52,"depth":924,"text":53,"children":2927},[2928,2929],{"id":57,"depth":930,"text":58},{"id":143,"depth":930,"text":144},{"id":202,"depth":924,"text":203,"children":2931},[2932,2933,2934,2935],{"id":209,"depth":930,"text":210},{"id":261,"depth":930,"text":262},{"id":303,"depth":930,"text":304},{"id":338,"depth":930,"text":339},{"id":495,"depth":924,"text":496,"children":2937},[2938,2939,2940,2941],{"id":499,"depth":930,"text":500},{"id":698,"depth":930,"text":699},{"id":806,"depth":930,"text":807},{"id":897,"depth":930,"text":898},{"id":1706,"depth":924,"text":1707,"children":2943},[2944,2945,2946],{"id":1710,"depth":930,"text":1711},{"id":1783,"depth":930,"text":1784},{"id":1831,"depth":930,"text":1832},{"id":1892,"depth":924,"text":1893,"children":2948},[2949,2950,2951,2952,2953],{"id":1896,"depth":930,"text":1897},{"id":1935,"depth":930,"text":1936},{"id":1972,"depth":930,"text":1973},{"id":2009,"depth":930,"text":2010},{"id":2046,"depth":930,"text":2047},{"id":2091,"depth":924,"text":2092,"children":2955},[2956,2957],{"id":2095,"depth":930,"text":2096},{"id":2182,"depth":930,"text":2183},{"id":2355,"depth":924,"text":2356,"children":2959},[2960,2961,2962],{"id":2359,"depth":930,"text":2360},{"id":2380,"depth":930,"text":2381},{"id":2401,"depth":930,"text":2402},{"id":2419,"depth":924,"text":2420,"children":2964},[2965,2966],{"id":2423,"depth":930,"text":2424},{"id":2462,"depth":930,"text":2463},{"id":2494,"depth":924,"text":2495},{"id":2533,"depth":924,"text":2534},{"id":2621,"depth":924,"text":2622},{"id":2854,"depth":924,"text":2855},[2972,2973,2974],"optimization-methodology","provider-service-support","savings-methodology","Jetscale propose une optimisation des couts basee sur l'IA pour Amazon ElastiCache, incluant les clusters Redis et Memcached. Nos agents specialises analysent vos charges de...","md","fr-ca",{},[],"Cloud Optimization","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Felasticache","legacy-import",{"title":5,"description":2975},[],"fr-ca\u002Fdocs\u002F5.services\u002F4.elasticache","high","services\u002Felasticache","gijnxILDE9Ouv_zu7DKd0770LqtHVvK4ugMRXeDKEEY",[2990],{"title":2991,"path":2992,"stem":2977,"children":2993,"page":3080},"Fr Ca","\u002Ffr-ca",[2994],{"title":2995,"path":2996,"stem":2997,"children":2998},"Documentation Jetscale","\u002Ffr-ca\u002Fdocs","fr-ca\u002Fdocs\u002Findex",[2999,3000,3004,3008,3012,3016,3038,3042,3071,3075,3078],{"title":2995,"path":2996,"stem":2997},{"title":3001,"path":3002,"stem":3003},"Démarrage avec Jetscale","\u002Ffr-ca\u002Fdocs\u002Fgetting-started","fr-ca\u002Fdocs\u002F1.getting-started",{"title":3005,"path":3006,"stem":3007},"Guide de Configuration AWS","\u002Ffr-ca\u002Fdocs\u002Faws-setup","fr-ca\u002Fdocs\u002F2.aws-setup",{"title":3009,"path":3010,"stem":3011},"Guide de Configuration Azure","\u002Ffr-ca\u002Fdocs\u002Fazure-setup","fr-ca\u002Fdocs\u002F3.azure-setup",{"title":3013,"path":3014,"stem":3015},"Comment fonctionne Jetscale","\u002Ffr-ca\u002Fdocs\u002Fhow-it-works","fr-ca\u002Fdocs\u002F4.how-it-works",{"title":3017,"path":3018,"stem":3019,"children":3020},"Intégrations","\u002Ffr-ca\u002Fdocs\u002Fintegrations","fr-ca\u002Fdocs\u002F4.integrations\u002Findex",[3021,3022,3026,3030,3034],{"title":3017,"path":3018,"stem":3019},{"title":3023,"path":3024,"stem":3025},"Intégration GitHub","\u002Ffr-ca\u002Fdocs\u002Fintegrations\u002Fgithub","fr-ca\u002Fdocs\u002F4.integrations\u002F1.github",{"title":3027,"path":3028,"stem":3029},"Intégration Jira","\u002Ffr-ca\u002Fdocs\u002Fintegrations\u002Fjira","fr-ca\u002Fdocs\u002F4.integrations\u002F2.jira",{"title":3031,"path":3032,"stem":3033},"Intégration Slack","\u002Ffr-ca\u002Fdocs\u002Fintegrations\u002Fslack","fr-ca\u002Fdocs\u002F4.integrations\u002F3.slack",{"title":3035,"path":3036,"stem":3037},"Intégration Bitbucket","\u002Ffr-ca\u002Fdocs\u002Fintegrations\u002Fbitbucket","fr-ca\u002Fdocs\u002F4.integrations\u002F4.bitbucket",{"title":3039,"path":3040,"stem":3041},"Analyse Propulsée par l'IA","\u002Ffr-ca\u002Fdocs\u002Fai-analysis","fr-ca\u002Fdocs\u002F5.ai-analysis",{"title":3043,"path":3044,"stem":3045,"children":3046},"Services pris en charge","\u002Ffr-ca\u002Fdocs\u002Fservices","fr-ca\u002Fdocs\u002F5.services\u002Findex",[3047,3048,3050,3052,3056,3057,3059,3063,3067],{"title":3043,"path":3044,"stem":3045},{"title":2918,"path":2917,"stem":3049},"fr-ca\u002Fdocs\u002F5.services\u002F1.ebs",{"title":2912,"path":2911,"stem":3051},"fr-ca\u002Fdocs\u002F5.services\u002F2.ec2",{"title":3053,"path":3054,"stem":3055},"Optimisation EKS","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Feks","fr-ca\u002Fdocs\u002F5.services\u002F3.eks",{"title":5,"path":2981,"stem":2985},{"title":2906,"path":2905,"stem":3058},"fr-ca\u002Fdocs\u002F5.services\u002F5.rds",{"title":3060,"path":3061,"stem":3062},"Optimisation S3","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Fs3","fr-ca\u002Fdocs\u002F5.services\u002F6.s3",{"title":3064,"path":3065,"stem":3066},"Optimisation Azure SQL","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Fazure-sql","fr-ca\u002Fdocs\u002F5.services\u002F7.azure-sql",{"title":3068,"path":3069,"stem":3070},"Optimisation des machines virtuelles Azure","\u002Ffr-ca\u002Fdocs\u002Fservices\u002Fazure-vm","fr-ca\u002Fdocs\u002F5.services\u002F8.azure-vm",{"title":3072,"path":3073,"stem":3074},"Flux de Recommandations","\u002Ffr-ca\u002Fdocs\u002Frecommendation-workflow","fr-ca\u002Fdocs\u002F6.recommendation-workflow",{"title":3076,"path":2616,"stem":3077},"Référence API","fr-ca\u002Fdocs\u002F7.api-reference",{"title":2879,"path":2878,"stem":3079},"fr-ca\u002Fdocs\u002F8.faq",false,[3082,3084],{"title":3053,"path":3054,"stem":3055,"description":3083,"children":-1},"Jetscale fournit une optimisation des coûts pilotée par l'IA pour les clusters Amazon EKS . Nos agents spécialisés analysent l'utilisation des groupes de nœuds, les types...",{"title":2906,"path":2905,"stem":3058,"description":3085,"children":-1},"Jetscale fournit une optimisation des coûts alimentée par l'IA pour Amazon RDS , incluant les instances autonomes et les clusters Aurora. Nos agents spécialisés analysent vos...",1788219271587]