cost-optimization

Par wshobson · agents

Optimisez les coûts cloud sur AWS, Azure, GCP et OCI grâce au rightsizing des ressources, aux stratégies de tagging, aux instances réservées et à l'analyse des dépenses. À utiliser pour réduire les coûts cloud, analyser les coûts d'infrastructure ou mettre en place des politiques de gouvernance des coûts.

npx skills add https://github.com/wshobson/agents --skill cost-optimization

Optimisation des coûts cloud

Stratégies et modèles pour optimiser les coûts cloud sur AWS, Azure, GCP et OCI.

Objectif

Mettre en œuvre des stratégies systématiques d'optimisation des coûts pour réduire les dépenses cloud tout en maintenant les performances et la fiabilité.

Quand l'utiliser

  • Réduire les dépenses cloud
  • Adapter les ressources à la bonne taille
  • Mettre en place une gouvernance des coûts
  • Optimiser les coûts multi-cloud
  • Respecter les contraintes budgétaires

Cadre d'optimisation des coûts

1. Visibilité

  • Implémenter des tags d'allocation des coûts
  • Utiliser les outils de gestion des coûts cloud
  • Mettre en place des alertes de budget
  • Créer des tableaux de bord de coûts

2. Ajustement des ressources

  • Analyser l'utilisation des ressources
  • Réduire la taille des ressources surprovisionnées
  • Utiliser l'auto-scaling
  • Supprimer les ressources inactives

3. Modèles de tarification

  • Utiliser la capacité réservée

  • Exploiter les instances spot/préemptibles

  • Implémenter des plans d'économies

  • Utiliser les remises d'engagement

  • 4. Optimisation de l'architecture

  • Utiliser les services gérés

  • Implémenter du caching

  • Optimiser le transfert de données

  • Utiliser des politiques de cycle de vie

Optimisation des coûts AWS

Instances réservées

Économies : 30-72% vs À la demande
Durée : 1 ou 3 ans
Paiement : Intégral/Partiel/Aucun paiement initial
Flexibilité : Standard ou Convertible

Plans d'économies

Plans d'économies de calcul : 66% d'économies
Plans d'économies d'instances EC2 : 72% d'économies
S'applique à : EC2, Fargate, Lambda
Flexible sur : Familles d'instances, régions, OS

Instances Spot

Économies : Jusqu'à 90% vs À la demande
Idéal pour : Tâches batch, CI/CD, charges de travail apatrides
Risque : Avis d'interruption de 2 minutes
Stratégie : Mélanger avec À la demande pour la résilience

Optimisation des coûts S3

resource "aws_s3_bucket_lifecycle_configuration" "example" {
  bucket = aws_s3_bucket.example.id

  rule {
    id     = "transition-to-ia"
    status = "Enabled"

    transition {
      days          = 30
      storage_class = "STANDARD_IA"
    }

    transition {
      days          = 90
      storage_class = "GLACIER"
    }

    expiration {
      days = 365
    }
  }
}

Optimisation des coûts Azure

Instances de machines virtuelles réservées

  • Durée de 1 ou 3 ans
  • Économies jusqu'à 72%
  • Dimensionnement flexible
  • Échangeables

Azure Hybrid Benefit

  • Utiliser les licences Windows Server existantes
  • Économies jusqu'à 80% avec RI
  • Disponible pour Windows Server et SQL Server

Recommandations Azure Advisor

  • Ajuster la taille des machines virtuelles
  • Supprimer les ressources inutilisées
  • Utiliser la capacité réservée
  • Optimiser le stockage

Optimisation des coûts GCP

Remises d'engagement

  • Engagement de 1 ou 3 ans
  • Économies jusqu'à 57%
  • S'applique aux vCPU et à la mémoire
  • Basées sur les ressources ou les dépenses

Remises d'utilisation prolongée

  • Remises automatiques
  • Jusqu'à 30% pour les instances en fonctionnement
  • Aucun engagement requis
  • S'appliquent à Compute Engine, GKE

Machines virtuelles préemptibles

  • Économies jusqu'à 80%
  • Durée d'exécution maximale de 24 heures
  • Idéal pour les charges de travail batch

Optimisation des coûts OCI

Formes flexibles

  • Adapter les OCPU et la mémoire indépendamment
  • Adapter le dimensionnement des instances à la demande de charge de travail
  • Réduire la capacité gaspillée des formes de machines virtuelles fixes

Engagements et budgets

  • Utiliser les engagements annuels pour les dépenses prévisibles
  • Définir des budgets au niveau du compartiment avec alertes
  • Suivre les prévisions mensuelles avec OCI Cost Analysis

Capacité préemptible

  • Utiliser les instances préemptibles pour les charges de travail batch et éphémères
  • Conserver les groupes d'auto-scaling tolérants aux interruptions
  • Mélanger avec la capacité standard pour les services critiques

Stratégie de tagging

Tagging AWS

locals {
  common_tags = {
    Environment = "production"
    Project     = "my-project"
    CostCenter  = "engineering"
    Owner       = "team@example.com"
    ManagedBy   = "terraform"
  }
}

resource "aws_instance" "example" {
  ami           = "ami-12345678"
  instance_type = "t3.medium"

  tags = merge(
    local.common_tags,
    {
      Name = "web-server"
    }
  )
}

Référence : Voir references/tagging-standards.md

Surveillance des coûts

Alertes de budget

# AWS Budget
resource "aws_budgets_budget" "monthly" {
  name              = "monthly-budget"
  budget_type       = "COST"
  limit_amount      = "1000"
  limit_unit        = "USD"
  time_period_start = "2024-01-01_00:00"
  time_unit         = "MONTHLY"

  notification {
    comparison_operator        = "GREATER_THAN"
    threshold                  = 80
    threshold_type            = "PERCENTAGE"
    notification_type         = "ACTUAL"
    subscriber_email_addresses = ["team@example.com"]
  }
}

Détection des anomalies de coûts

  • AWS Cost Anomaly Detection
  • Alertes Azure Cost Management
  • Alertes Budget GCP
  • OCI Budgets et Cost Analysis

Modèles d'architecture

Modèle 1 : Serverless en premier

  • Utiliser Lambda/Functions pour les événements
  • Payer uniquement le temps d'exécution
  • Auto-scaling inclus
  • Aucun coût inactif

Modèle 2 : Bases de données correctement dimensionnées

Développement : RDS t3.small
Staging : RDS t3.large
Production : RDS r6g.2xlarge avec réplicas en lecture

Modèle 3 : Stockage multi-niveaux

Données chaudes : S3 Standard
Données tièdes : S3 Standard-IA (30 jours)
Données froides : S3 Glacier (90 jours)
Archive : S3 Deep Archive (365 jours)

Modèle 4 : Auto-scaling

resource "aws_autoscaling_policy" "scale_up" {
  name                   = "scale-up"
  scaling_adjustment     = 2
  adjustment_type        = "ChangeInCapacity"
  cooldown              = 300
  autoscaling_group_name = aws_autoscaling_group.main.name
}

resource "aws_cloudwatch_metric_alarm" "cpu_high" {
  alarm_name          = "cpu-high"
  comparison_operator = "GreaterThanThreshold"
  evaluation_periods  = "2"
  metric_name         = "CPUUtilization"
  namespace           = "AWS/EC2"
  period              = "60"
  statistic           = "Average"
  threshold           = "80"
  alarm_actions       = [aws_autoscaling_policy.scale_up.arn]
}

Liste de contrôle pour l'optimisation des coûts

  • [ ] Implémenter des tags d'allocation des coûts
  • [ ] Supprimer les ressources inutilisées (EBS, EIP, snapshots)
  • [ ] Ajuster la taille des instances en fonction de l'utilisation
  • [ ] Utiliser la capacité réservée pour les charges de travail stables
  • [ ] Implémenter l'auto-scaling
  • [ ] Optimiser les classes de stockage
  • [ ] Utiliser des politiques de cycle de vie
  • [ ] Activer la détection des anomalies de coûts
  • [ ] Définir des alertes de budget
  • [ ] Examiner les coûts chaque semaine
  • [ ] Utiliser les instances spot/préemptibles
  • [ ] Optimiser les coûts de transfert de données
  • [ ] Implémenter des couches de caching
  • [ ] Utiliser les services gérés
  • [ ] Surveiller et optimiser en continu

Outils

  • AWS : Cost Explorer, Cost Anomaly Detection, Compute Optimizer
  • Azure : Cost Management, Advisor
  • GCP : Cost Management, Recommender
  • OCI : Cost Analysis, Budgets, Cloud Advisor
  • Multi-cloud : CloudHealth, Cloudability, Kubecost

Compétences associées

  • terraform-module-library - Pour le provisionnement des ressources
  • multi-cloud-architecture - Pour la sélection du cloud

Skills similaires