Il mese scorso ho costruito una stima Client VPN in un foglio di calcolo, l'ho inviata a un cliente e poi l'ho rivista due volte: una perché avevo moltiplicato le associazioni per le sottoreti, e una perché avevo usato il numero di persone invece dei dati di sessione. La versione sopravvissuta alla revisione poggia su due contatori orari e un breve elenco di costi accessori. Puoi ricostruirla dalla console e da un export di log, senza calcolatore di prezzi.

Due contatori, e nient'altro sull'endpoint

AWS fattura un endpoint Client VPN su ore di associazione e ore di connessione. Le ore di associazione scorrono per ogni rete di destinazione collegata all'endpoint, giorno e notte, che qualcuno si connetta o no. Le ore di connessione scorrono per ogni client connesso, finché quella sessione resta attiva.

MeterWhat increments itWhat does not change it
Association-hoursEach associated subnet or Transit Gateway attachment, per hour, 24/7 while attachedNumber of users, traffic volume
Connection-hoursEach active client session, per hourHow many subnets that client can reach

Da quella tabella discendono due conseguenze. Un endpoint senza nessuno sopra costa comunque denaro, e una persona che tiene insieme un portatile e un telefono genera due connessioni.

Conta le associazioni nella console, non le sottoreti nella VPC

Apri VPC, poi Client VPN endpoints, poi il tuo endpoint, poi la scheda Associations. Ogni riga lì è un collegamento di sottorete, e quel numero di righe è il tuo moltiplicatore di associazioni. Il numero di sottoreti applicative dietro la VPC non c'entra nulla.

Una sola associazione basta per raggiungere una rete VPC autorizzata quando le rotte dell'endpoint e le regole di autorizzazione coprono la destinazione. Le associazioni extra comprano resilienza alla zona di disponibilità, non portata aggiuntiva. Perciò un progetto a due AZ raddoppia le ore di associazione, mentre una VPC applicativa con otto sottoreti non moltiplica nulla per otto.

Nota il tipo di associazione mentre sei su quella pagina. Un'associazione di sottorete VPC e un'associazione diretta Transit Gateway sono disposizioni diverse con righe di addebito diverse, quindi non portare un modello nel preventivo dell'altra. E non provare il conteggio staccando cose: rimuovere l'ultima rete di destinazione termina le sessioni attive e blocca le nuove connessioni finché qualcosa non viene di nuovo associato.

Ricava le ore di connessione dai dati di sessione

Il numero di persone è l'input sbagliato, ed è sbagliato in entrambe le direzioni. Dieci persone che tengono ciascuna tre dispositivi connessi sono trenta connessioni. Cento persone che si connettono venti minuti al giorno non producono nemmeno lontanamente cento sessioni simultanee.

I log di connessione Client VPN registrano eventi di connessione e disconnessione per client, che è esattamente l'accoppiamento che serve. Esporta una settimana rappresentativa, abbina gli eventi e somma le durate:

connection-hours = sum of (disconnect_time - connect_time) per session
sessions         = one per client connection, not per person

Poi correggi due abitudini. Le sessioni lasciate connesse durante il pranzo, la notte o una sospensione del portatile che non ha mai chiuso il tunnel vengono comunque fatturate, e sono invisibili in un conteggio di persone. La misurazione è anche oraria, quindi preventiva una sessione di venti minuti come un'ora intera invece di assumere una fatturazione proporzionale; se la fattura arriva più bassa, trattalo come margine e non come dato di pianificazione.

Fai i conti con le tariffe della tua regione

Le tariffe variano per regione, quindi prendile dalla pagina dei prezzi AWS VPN per la regione in cui distribuisci e incollale nel foglio come input. Solo a titolo di esempio, prendi una tariffa di associazione di 0.10 dollari all'ora e una tariffa di ora di connessione di 0.05 dollari, poi calcola un mese di 30 giorni con due associazioni per tutto il mese e 100 persone connesse sei ore su 20 giorni lavorativi:

association-hours = 2 * 24 * 30     = 1,440
association fee   = 1,440 * 0.10    = 144.00

connection-hours  = 100 * 6 * 20    = 12,000
connection fee    = 12,000 * 0.05   = 600.00

Client VPN subtotal                 = 744.00

Ora muovi un input alla volta e guarda quale riga reagisce. Raddoppiare le associazioni aggiunge qui 144 dollari; raddoppiare la durata media della sessione aggiunge 600. Quel rapporto di solito risolve la discussione progettuale per te: taglia la ridondanza che non puoi giustificare, oppure vai dietro alle sessioni inattive, secondo quale numero è più grande. Scrivi la regione e la data delle tariffe accanto al risultato, perché un preventivo senza non è riproducibile sei settimane dopo.

Aggiungi gli addebiti che il totale parziale trascura

La tariffa dell'endpoint paga l'endpoint. Tutto ciò che il traffico tocca dopo ha il proprio contatore, ed è su quelle righe che le stime VPN ottimistiche si sfaldano.

  • Uscita internet per il traffico che esce dall'endpoint, fatturata per GB.
  • Indirizzi IPv4 pubblici, che portano un proprio addebito orario indipendente dalla VPN.
  • Acquisizione e archiviazione su CloudWatch Logs per i log di connessione appena esportati.
  • Invocazioni Lambda se gestisci un handler client-connect.
  • Directory Service o il tuo provider di identità SAML, se è così che gli utenti si autenticano, più gli addebiti ACM Private CA se emetti certificati lì.
  • Ore NAT Gateway ed elaborazione dati, e ore di collegamento Transit Gateway più elaborazione dati, ogni volta che il percorso li usa.

Niente di tutto questo scala con il numero di associazioni, perciò una cifra per utente costruita solo con le tariffe dell'endpoint sembra a posto sulla carta e poi cresce quando compare traffico reale. Mettili su righe separate anche quando devi stimarli, così il lettore vede quali parti sono misurate e quali sono supposizioni.

Controlla il foglio prima di inviarlo

Quattro controlli catturano gli errori che ho davvero fatto: il conteggio delle associazioni corrisponde esattamente alla scheda Associations, le ore di connessione vengono da eventi di log accoppiati e non da un conteggio di persone, la regione e la data delle tariffe sono scritte, e ogni costo accessorio ha la propria riga. Se manca uno dei quattro, hai una supposizione con la formattazione.

Tira prima l'export del log. È l'unico input che non puoi ricostruire a memoria più tardi, e ti dice anche se vale la pena sistemare il problema delle sessioni inattive prima che arrivi la prima fattura.

Articoli correlati