Développement15 juin 2026· via DEV Community

Proxy RDS : le sauveur discret des bases AWS t3.micro

Proxy RDS : le sauveur discret des bases AWS t3.micro

Image : DEV Community

Publicité

Quand votre backend FastAPI ralentit non pas à cause du CPU ou de la mémoire, mais parce qu’une minuscule instance t3.micro de base de données épuise ses créneaux de connexion, la solution ne réside pas dans plus d’instances, mais dans une meilleure gestion des connexions.

Le goulot d’étranglement méconnu des petites instances RDS

Une instance PostgreSQL t3.micro ne supporte qu’environ 87 connexions simultanées, et chaque connexion compte : gestionnaires web, tâches en arrière-plan, migrations, voire outils en ligne de commande. La crise éclate vraiment quand quatre tâches cron se déclenchent simultanément au top de l’heure, chacune tentant d’ouvrir une connexion alors que le trafic API atteint son pic. Avec une taille de pool par défaut de 3/5, le backend ne peut tout simplement pas absorber la charge, déclenchant des erreurs de type « Limite de QueuePool atteinte » et des timeouts.

Optimiser le pool au-delà des performances

La solution n’a pas consisté à augmenter simplement la taille du pool, mais à recalibrer la gestion des connexions. En définissant pool_size=8 et max_overflow=12 par processus, l’équipe a gagné 20 connexions par travailleur. Mais avec deux travailleurs Uvicorn, des tâches en arrière-plan exécutées en interne et un déploiement progressif doublant temporairement la charge, le plafond restait dangereusement proche de la limite de l’instance t3.micro. L’ajout de pool_pre_ping=True et pool_recycle=1800 a permis d’éliminer les sockets obsolètes et de recycler les connexions, mais la contrainte fondamentale persistait : le nombre de connexions, et non la puissance de calcul, dictait l’évolutivité.

Le proxy RDS comme disjoncteur

C’est là qu’intervient le proxy RDS. En agissant comme intermédiaire entre l’application et la base de données, il multiplexe les requêtes sur un nombre réduit de connexions persistantes, isolant le backend des pics soudains. Pour une instance t3.micro, cela signifie moins de connexions inactives obstruant le pipeline et plus de marge pour les charges de travail réelles. L’écueil ? La nature asynchrone d’asyncpg peut contourner le proxy si la configuration n’est pas soignée. S’assurer que toutes les connexions passent par le proxy – et non directement vers RDS – est crucial pour éviter des échecs silencieux.

En définitive, la leçon est claire : sur les petites instances RDS, les limites de connexions déterminent l’évolutivité réelle. Les ignorer conduit au chaos des files d’attente ; les gérer de manière proactive transforme une infrastructure fragile en un système stable.


Source : DEV Community. Synthèse éditoriale assistée par IA — TechnoExpress.

Lire la source originale sur DEV Community →

← Retour à l'accueil

Publicité