15 marca 2024
8 min
EffiLab Team

Jak obniżyliśmy koszty AWS o 40% w 3 tygodnie

Case study fintech startupu, który przepłacał za infrastrukturę. Pokazujemy krok po kroku proces optymalizacji.

AWSCost Optimization
Powrót do bloga

Jak obniżyliśmy koszty AWS o 40% w 3 tygodnie

Wprowadzenie

Startup FinTech z portfolio 50+ tysięcy aktywnych użytkowników dziennie zmagał się z rosnącymi kosztami AWS. Miesięczny rachunek przekroczył 15 000 USD, a większość wydatków była nieuzasadniona.

Diagnoza problemu

1. Audit infrastruktury

Pierwszym krokiem był kompleksowy audit obecnej infrastruktury:

  • Over-provisioned instances: 70% instancji EC2 wykorzystywało mniej niż 30% zasobów
  • Nieużywane zasoby: 12 RDS instancji bez połączeń przez ostatnie 30 dni
  • Brak Reserved Instances: Wszystkie instancje na On-Demand pricing
  • Niewłaściwe storage classes: Dane archiwalne w S3 Standard zamiast Glacier

2. Analiza metryk

Wykorzystaliśmy CloudWatch i AWS Cost Explorer do zbadania wzorców użycia:

# Przykład zapytania Cost Explorer API
aws ce get-cost-and-usage \
  --time-period Start=2024-02-01,End=2024-03-01 \
  --granularity MONTHLY \
  --metrics BlendedCost \
  --group-by Type=DIMENSION,Key=SERVICE

Implementacja optymalizacji

Phase 1: Quick wins (Tydzień 1)

  1. Right-sizing instancji

    • Zmniejszenie 15 instancji t3.large → t3.medium
    • Oszczędność: $1,200/miesiąc
  2. Usunięcie nieużywanych zasobów

    • 12 RDS instancji
    • 8 Load Balancerów
    • Oszczędność: $2,100/miesiąc

Phase 2: Reserved Instances (Tydzień 2)

Zakup Reserved Instances dla stabilnych workloadów:

# Przykład konfiguracji Terraform
resource "aws_instance" "web" {
  instance_type = "t3.medium"
  
  # Reserved Instance pricing
  instance_lifecycle = "on-demand"
  
  tags = {
    Environment = "production"
    CostOptimized = "true"
  }
}

Phase 3: Storage optimization (Tydzień 3)

  1. S3 Lifecycle policies

    • Przejście na IA po 30 dniach
    • Archiwizacja Glacier po 90 dniach
  2. EBS volume optimization

    • Konwersja gp2 → gp3
    • Prawidłowy sizing wolumenów

Wyniki

| Kategoria | Przed | Po | Oszczędność | |-----------|-------|----|-----------:| | EC2 | $8,500 | $4,200 | -51% | | RDS | $3,200 | $1,800 | -44% | | S3 | $1,800 | $1,200 | -33% | | Total | $15,000 | $9,000 | -40% |

Kluczowe wnioski

  1. Monitoring jest podstawą - Bez metryk nie ma optymalizacji
  2. Regularne audyty - Raz na kwartał sprawdzać wykorzystanie
  3. Automatyzacja - Polityki lifecycle i auto-scaling oszczędzają czas
  4. Kultura kosztów - Zespół musi być świadomy wpływu zmian na koszty

Następne kroki

  • Implementacja auto-scaling dla workloadów zmiennych
  • Migracja na Spot Instances dla zadań batch
  • Optymalizacja networkingu (NAT Gateway → NAT Instance)

Potrzebujesz pomocy z optymalizacją kosztów AWS? Skontaktuj się z nami po bezpłatną konsultację.