Gestion des limites de service AWS : Stratégies de prévention, de surveillance et de résolution

Apprenez à surveiller les quotas de services AWS, à demander des augmentations à l'avance et à repenser votre architecture lorsque vous atteignez des limites cloud fixes.

Naviguer dans les limites des services AWS : stratégies de prévention, de surveillance et de résolution

AWS peut évoluer rapidement, mais votre compte a toujours des quotas. Si votre déploiement ne peut soudainement plus créer de capacité EC2, attacher plus d'IP ou augmenter la concurrence Lambda, vous rencontrez peut-être un quota de service AWS plutôt qu'un bug d'application.

Traitez les quotas comme faisant partie de votre architecture. Ils varient selon le service, le compte et la région, et certains peuvent être augmentés tandis que d'autres nécessitent un changement de conception.

Comprendre les limites des services AWS

Les quotas de services AWS sont des restrictions sur les ressources ou les opérations d'un compte. Ils aident à protéger les services AWS et les comptes clients contre une utilisation excessive, mais ils peuvent également bloquer une croissance légitime si vous ne les planifiez pas.

Quotas ajustables vs quotas fixes

Il est essentiel de distinguer deux types principaux de limites de services AWS :

  • Quotas ajustables : Ceux-ci peuvent souvent être augmentés via la console Service Quotas ou un dossier de support AWS.
  • Quotas fixes : Ceux-ci ne peuvent pas être augmentés pour votre compte. Vous devez repenser votre architecture autour d'eux, diviser les charges de travail ou utiliser un modèle de service différent.

Pourquoi les limites de service sont importantes

Le dépassement d'un quota se manifeste généralement par un échec de création de ressource, des appels API limités ou une mise à l'échelle qui s'arrête plus tôt que prévu. Par exemple, un groupe Auto Scaling peut être sain mais incapable de lancer plus d'instances si le compte ne dispose pas d'assez de quota de vCPU EC2 dans cette région.

Surveillance proactive des limites des services AWS

Le meilleur moment pour trouver un problème de quota est avant une version ou un événement de trafic. AWS vous offre plusieurs moyens de voir les valeurs des quotas et, pour certains services, l'utilisation actuelle.

AWS Trusted Advisor

AWS Trusted Advisor peut signaler certains quotas de services où votre utilisation est proche de la limite. La disponibilité et les détails varient selon le plan de support et le service, utilisez-le donc comme un signal utile plutôt que comme votre seule source.

Console AWS Service Quotas

AWS Service Quotas est l'endroit principal pour voir de nombreux quotas de compte et demander des augmentations pour les quotas ajustables.

Utilisation de la console Service Quotas :

  1. Accédez à la console Service Quotas dans votre compte AWS.
  2. Vous pouvez rechercher des services spécifiques (par exemple, "EC2", "RDS", "S3").
  3. Pour de nombreux quotas, vous pouvez voir la valeur appliquée, la valeur par défaut, s'il est ajustable, et parfois l'utilisation.
  4. Pour les quotas ajustables, demandez une augmentation directement depuis la page de détail du quota.

Exemple : Pour vérifier votre limite de vCPU EC2 dans une région spécifique :

  • Allez dans Service Quotas.
  • Sélectionnez "EC2" dans la liste des services.
  • Recherchez le quota pertinent de vCPU On-Demand en cours d'exécution, comme le quota pour les familles d'instances standard.
  • La console affichera votre utilisation actuelle et la limite maximale.

Alarmes CloudWatch

Pour certains quotas, Service Quotas publie des métriques d'utilisation dans CloudWatch. Pour d'autres services, vous pouvez avoir besoin de métriques spécifiques au service ou de tâches d'inventaire personnalisées. Par exemple, Lambda a des métriques de concurrence qui peuvent vous avertir avant que la limitation n'affecte les requêtes.

Vérifications AWS CLI

Vous pouvez scriptiser les vérifications de quota dans les pipelines de déploiement :

aws service-quotas list-service-quotas --service-code ec2 --region us-east-1

Pour un déploiement en production, comparez la croissance attendue des ressources avec le quota appliqué avant que Terraform, CloudFormation ou CDK ne tente de créer des ressources.

Stratégies pour gérer les limites de service

Une fois que vous comprenez comment surveiller vos limites, vous pouvez mettre en œuvre des stratégies pour les gérer efficacement.

1. Comprendre les besoins de votre application

Avant de déployer ou de faire évoluer vos applications, analysez leurs besoins en ressources. Cela inclut :

  • Considérations de charge de pointe : Quels sont les nombres maximums attendus d'utilisateurs simultanés ou de taux de requêtes ?
  • Types de ressources : Quels services AWS spécifiques et types de ressources seront utilisés (par exemple, types d'instances EC2, tailles de bases de données RDS, concurrence Lambda) ?
  • Distribution régionale : Où vos ressources seront-elles déployées ?

Cette analyse vous aidera à anticiper les limites que vous êtes le plus susceptible de rencontrer.

2. Concevoir pour l'évolutivité et l'élasticité

Construisez vos applications avec la capacité de passer à l'échelle horizontalement (ajout de plus d'instances/unités) plutôt que de compter uniquement sur la mise à l'échelle verticale (instances/unités plus grandes). Cette approche distribue la charge et réduit le risque d'atteindre les limites sur des ressources uniques.

  • Groupes Auto Scaling : Utilisez EC2 Auto Scaling pour les changements de demande, mais vérifiez que le compte dispose d'assez de quota de vCPU pour la capacité maximale.
  • Architectures serverless : Lambda et API Gateway suppriment la gestion des serveurs, mais ils ont toujours des quotas de concurrence, de charge utile, de délai d'attente et de requêtes.

3. Optimiser l'utilisation des ressources

Examinez régulièrement vos ressources déployées pour vous assurer qu'elles sont utilisées efficacement. Arrêtez les instances inutilisées, redimensionnez vos bases de données et supprimez les volumes EBS non attachés.

  • Étiquetage : Mettez en œuvre une stratégie d'étiquetage robuste pour vos ressources. Cela facilite le suivi de la propriété, des coûts et de l'utilisation, ce qui peut aider à identifier les ressources sous-utilisées.
  • Rapports de coûts et d'utilisation : Analysez vos rapports AWS Cost and Usage pour identifier les domaines potentiels de surprovisionnement.

4. Demander des augmentations de limite de manière proactive

N'attendez pas d'atteindre une limite pour demander une augmentation. Si la croissance projetée de votre application ou un événement planifié (comme une campagne marketing ou un lancement de produit) indique que vous pourriez dépasser une limite souple, soumettez une demande à l'avance.

Comment demander une augmentation de limite :

  1. Allez dans la console AWS Service Quotas.
  2. Naviguez jusqu'au service et au quota spécifiques que vous devez augmenter.
  3. Sélectionnez le quota et cliquez sur le bouton "Demander une augmentation de quota".
  4. Fournissez des informations détaillées dans le formulaire de demande :
    • Nouvelle valeur de quota : La limite souhaitée.
    • Raison de la demande : Expliquez pourquoi vous avez besoin de l'augmentation. Soyez précis sur votre cas d'utilisation, l'utilisation prévue et le calendrier.
    • Région AWS : Spécifiez la ou les régions où l'augmentation est nécessaire.
  5. Soumettez la demande.

AWS peut approuver certaines demandes rapidement, tandis que d'autres nécessitent un examen et peuvent prendre plus de temps. Demandez des augmentations avant d'en avoir besoin, en particulier pour les lancements, les migrations et les tests de charge.

Conseils pour demander des augmentations :

  • Soyez précis : Indiquez le quota exact et le nombre exact dont vous avez besoin.
  • Justifiez votre besoin : Une explication bien motivée avec des données (utilisation projetée, utilisation actuelle) améliore considérablement les chances d'approbation.
  • Demandez à l'avance : Laissez suffisamment de temps pour l'examen et pour que votre équipe teste après l'approbation.

5. Comprendre les limites strictes

Pour les quotas fixes, architectez autour d'eux. Les options courantes incluent la distribution des charges de travail sur plusieurs comptes, l'utilisation de plusieurs régions, la mise en file d'attente du travail, le traitement par lots des appels API ou le choix d'un service mieux adapté.

Limites courantes des services AWS et comment les gérer

Examinons quelques limites de service fréquemment rencontrées et les stratégies de gestion :

Amazon EC2

  • Quotas : vCPU On-Demand en cours d'exécution par famille d'instances, adresses IP Elastic, volumes EBS, IOPS EBS, VPC, sous-réseaux, groupes de sécurité et interfaces réseau.
  • Gestion : Surveillez l'utilisation des vCPU par région, demandez des augmentations avant les événements de mise à l'échelle et supprimez les IP Elastic et les volumes inutilisés.

Amazon S3

  • Quotas : S3 a des quotas de service tels que les limites de compartiment par compte, et il a des directives documentées sur le taux de requêtes par préfixe pour les charges de travail à haut débit.
  • Gestion : Utilisez plusieurs préfixes pour des taux de requêtes très élevés, CloudFront pour le contenu public à forte lecture et les métriques S3 pour la visibilité.

Amazon RDS

  • Quotas : Les instances de base de données, les clusters, les instantanés, le stockage et les groupes de paramètres ont des quotas de compte ou de région. Les limites de connexion dépendent fortement du moteur et de la classe d'instance.
  • Gestion : Redimensionnez correctement les instances, utilisez des réplicas en lecture pour les charges de travail à forte lecture et demandez des augmentations de quota avant les migrations ou l'expansion de l'environnement.

AWS Lambda

  • Quotas : Concurrence du compte, concurrence réservée, concurrence provisionnée, taille de la charge utile, délai d'attente, mémoire et limites du package de déploiement.
  • Gestion : Surveillez la concurrence et les limitations, définissez une concurrence réservée pour les fonctions critiques et demandez des augmentations de concurrence du compte avant les pics de trafic.

Résolution des erreurs de dépassement de limite de service

Si vous rencontrez une erreur "Service Limit Exceeded" :

  1. Identifiez le service et la limite spécifiques : Le message d'erreur fournit généralement ces informations.
  2. Vérifiez votre utilisation actuelle : Utilisez la console Service Quotas ou Trusted Advisor pour confirmer votre utilisation par rapport à la limite.
  3. Déterminez s'il est ajustable ou fixe : S'il est ajustable, procédez à la demande d'augmentation.
  4. Soumettez une demande d'augmentation de limite : Suivez les étapes décrites dans la section "Demander des augmentations de limite de manière proactive". Soyez prêt à fournir des informations détaillées.
  5. S'il s'agit d'un quota fixe : Réarchitecturez votre solution. Envisagez :
    • Distribuer votre charge de travail sur plusieurs comptes AWS.
    • Utiliser différents services AWS qui pourraient ne pas avoir la même limite stricte.
    • Mettre en œuvre un système de file d'attente ou un traitement par lots pour gérer les opérations qui dépassent la limite.

À retenir

Avant chaque lancement ou migration majeur, vérifiez les quotas pour les services qui vont évoluer. Demandez des augmentations de quota ajustables tôt, ajoutez des alarmes pour les limites qui comptent et documentez le chemin de reconception pour les quotas fixes. Le travail sur les quotas est silencieux lorsqu'il est fait tôt et douloureux lorsqu'il est découvert lors d'une panne.