Dimensionamento del Tuo Deployment ZoneHero

Prima di passare in produzione con ZoneHero, è essenziale eseguire un esercizio di dimensionamento. Questo processo è semplice e relativamente veloce, ma è un passaggio cruciale per garantire che il tuo sistema operi con alta disponibilità, prestazioni ottimali e massima efficienza dei costi.

Comprendere la Necessità del Dimensionamento

La maggior parte delle applicazioni mostra modelli di utilizzo giornalieri prevedibili. L’obiettivo del dimensionamento è determinare quale tipo di istanza ti serve per:

  1. Evitare di sprecare risorse durante i periodi di basso traffico
  2. Mantenere una capacità sufficiente durante i periodi di picco del traffico

L’utilizzo delle risorse in genere scala linearmente con il traffico. Tuttavia, non possiamo fornire linee guida universali sulla configurazione basate solo sul volume, poiché questo dipende fortemente dalla tua configurazione specifica e dalla composizione del traffico.

L’Approccio al Dimensionamento

Come regola generale, dovresti identificare un tipo di istanza che ti permetta di mantenere 2 istanze per Zona di Disponibilità durante il periodo meno intenso, con ogni istanza operante al tuo utilizzo CPU target (il default è 50%).

Scenario di Esempio

Consideriamo uno scenario in cui il traffico nelle ore di punta è il doppio rispetto al traffico notturno, e il tuo carico di lavoro è distribuito su 4 zone di disponibilità:

  1. Configurazione Iniziale: Potresti iniziare con la seguente launch_config e migrare gradualmente il traffico verso di essa:
launch_config {
  instance_type      = "c7g.2xlarge"
  min_instance_count = 8
  target_cpu_usage   = 50
}
  1. Fase di Osservazione: Dopo i test, noti che durante le ore di punta, i tuoi bilanciatori del carico utilizzano solo il 25% della capacità CPU su 8 istanze.

  2. Ottimizzazione: Poiché stai puntando a un utilizzo del 50% ma raggiungi solo il 25%, le tue istanze sono circa quattro volte più grandi del necessario. Il calcolo è:

    • Ogni c7g.2xlarge ha 8 vCPU
    • Nelle ore di punta stai utilizzando 8x8x0,25=16 equivalenti vCPU completi
    • Di notte avrai bisogno solo della metà, utilizzata al 50%: 16/2/0,50=16 vCPU
    • Vuoi 8 istanze di notte, quindi hai bisogno di istanze con 2 vCPU (c7g.large)

Implementazione della Configurazione Dimensionata

Dopo aver determinato il tipo di istanza appropriato, aggiorna la tua configurazione Terraform con le impostazioni ottimizzate:

launch_config {
  instance_type      = "c7g.large"  # Dimensionato da c7g.2xlarge
  min_instance_count = 8
  target_cpu_usage   = 50
}

Monitoraggio e Regolazione

Dopo aver implementato la configurazione dimensionata, continua a monitorare le metriche di prestazione. Man mano che i tuoi modelli di traffico si evolvono, potresti dover rivedere le tue decisioni di dimensionamento per mantenere l’equilibrio ottimale tra prestazioni e costi.

Per ulteriori informazioni sulla configurazione e gestione del tuo deployment ZoneHero, consulta la nostra documentazione del Provider Terraform.