El mes pasado monté una estimación de Client VPN en una hoja de cálculo, la envié a un cliente y luego la revisé dos veces: una porque multipliqué las asociaciones por las subredes y otra porque usé el número de personas en lugar de los datos de sesión. La versión que superó la revisión se apoya en dos medidores horarios y una lista corta de cargos laterales. Puedes reconstruirla desde la consola y una exportación de registro, sin calculadora de precios.

Dos medidores, y nada más en el endpoint

AWS factura un endpoint de Client VPN por horas de asociación y horas de conexión. Las horas de asociación corren para cada red de destino conectada al endpoint, las veinticuatro horas, se conecte alguien o no. Las horas de conexión corren por cada cliente conectado, mientras esa sesión siga activa.

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

De esa tabla salen dos consecuencias. Un endpoint sin nadie encima sigue costando dinero, y una persona que tiene un portátil y un teléfono a la vez genera dos conexiones.

Cuenta asociaciones en la consola, no subredes en la VPC

Abre VPC, luego Client VPN endpoints, luego tu endpoint y luego la pestaña Associations. Cada fila es una conexión de subred, y ese recuento de filas es tu multiplicador de asociaciones. El número de subredes de aplicación detrás de la VPC no tiene nada que ver.

Una asociación basta para llegar a una red VPC autorizada cuando las rutas del endpoint y las reglas de autorización cubren el destino. Las asociaciones extra compran resistencia de zona de disponibilidad, no más alcance. Por eso un diseño de dos AZ duplica las horas de asociación, mientras que una VPC de aplicación con ocho subredes no multiplica nada por ocho.

Fíjate en el tipo de asociación mientras estás en esa página. Una asociación de subred VPC y una asociación directa de Transit Gateway son disposiciones distintas con partidas distintas, así que no lleves un modelo a la cotización del otro. Y no pruebes el recuento desconectando cosas: quitar la última red de destino termina las sesiones activas y bloquea conexiones nuevas hasta que algo vuelva a estar asociado.

Deriva las horas de conexión de los datos de sesión

El número de personas es la entrada equivocada, y lo es en ambos sentidos. Diez personas que mantienen tres dispositivos conectados cada una son treinta conexiones. Cien personas que se conectan veinte minutos al día no producen ni de lejos cien sesiones simultáneas.

Los registros de conexión de Client VPN anotan eventos de conexión y desconexión por cliente, que es exactamente el emparejamiento que necesitas. Exporta una semana representativa, empareja los eventos y suma las duraciones:

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

Luego corrige dos hábitos. Las sesiones que se quedan conectadas durante la comida, la noche o una suspensión del portátil que nunca cortó el túnel se siguen facturando, y son invisibles en un recuento de personas. La medición también es por horas, así que presupuesta una sesión de veinte minutos como una hora completa en lugar de asumir facturación proporcional; si la factura llega más baja, trátalo como margen y no como dato de planificación.

Haz los números con las tarifas de tu región

Las tarifas varían por región, así que tómalas de la página de precios de AWS VPN para la región donde despliegas y pégalas en la hoja como entradas. Solo como ilustración, toma una tarifa de asociación de 0.10 dólares por hora y una tarifa de hora de conexión de 0.05 dólares, y luego valora un mes de 30 días con dos asociaciones todo el mes y 100 personas conectadas seis horas en 20 días laborables:

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

Ahora mueve una entrada cada vez y observa qué línea reacciona. Duplicar las asociaciones añade aquí 144 dólares; duplicar la duración media de sesión añade 600. Esa proporción suele resolver la discusión de diseño por ti: recorta la redundancia que no puedes justificar o ve a por las sesiones inactivas, según qué número sea mayor. Escribe la región y la fecha de las tarifas junto al resultado, porque una cotización sin ellas no se puede reproducir seis semanas después.

Añade los cargos que el subtotal deja fuera

La tarifa del endpoint paga el endpoint. Todo lo que el tráfico toca después tiene su propio medidor, y es en esas líneas donde se desmoronan las estimaciones optimistas de VPN.

  • Salida a internet del tráfico que sale por el endpoint, facturada por GB.
  • Direcciones IPv4 públicas, que llevan su propio cargo horario independiente de la VPN.
  • Ingesta y almacenamiento de CloudWatch Logs para los registros de conexión que acabas de exportar.
  • Invocaciones de Lambda si ejecutas un manejador client-connect.
  • Directory Service o tu proveedor de identidad SAML, si así se autentican los usuarios, más los cargos de ACM Private CA si emites certificados allí.
  • Horas de NAT Gateway y procesamiento de datos, y horas de adjunción de Transit Gateway más procesamiento de datos, siempre que la ruta los use.

Nada de esto escala con el número de asociaciones, por eso una cifra por usuario montada solo con tarifas de endpoint se ve bien en papel y luego crece cuando aparece tráfico real. Ponlos en filas separadas incluso cuando tengas que estimarlos, para que el lector vea qué partes están medidas y cuáles son conjeturas.

Revisa la hoja antes de enviarla

Cuatro comprobaciones atrapan los errores que realmente cometí: el recuento de asociaciones coincide exacto con la pestaña Associations, las horas de conexión vienen de eventos de registro emparejados y no de un recuento de personas, la región y la fecha de las tarifas están escritas, y cada cargo lateral tiene su propia fila. Si falta alguna de las cuatro, tienes una conjetura con formato.

Saca primero la exportación del registro. Es la única entrada que después no puedes reconstruir de memoria, y también te dice si merece la pena arreglar el problema de las sesiones inactivas antes de que llegue la primera factura.

Artículos relacionados