AWS BYOIP en 2026: $43.80 por IPv4 frente a tu propio /24

AWS BYOIP en 2026: $43.80 por IPv4 frente a tu propio /24

AWS BYOIP en 2026: $43.80 por IPv4 frente a tu propio /24

Respuesta corta (comprobado el 2026-11-04): AWS cobra $0.005 por hora por cada dirección IPv4 pública que proporciona, esté en uso o inactiva: $3.65 al mes, $43.80 al año por dirección. Las direcciones que traes tú (BYOIP) no tienen ese cargo. Con la mediana de mercado de octubre de 2026 (unos $6,500 por un /24), un /24 comprado se amortiza en unos 7 meses si usas las 256 direcciones, y en unos 36 meses con 50. Un /24 alquilado al promedio de octubre de 2026 ($0.49 por IP, unos $125 al mes) sale más barato que las direcciones de AWS a partir de unas 35 IP públicas. Por debajo, sigue pagando a AWS. Los precios de mercado son observaciones fechadas; para una cotización consulta precios IPv4.

Qué cobra AWS y qué elimina BYOIP

Desde febrero de 2024 AWS factura cada dirección IPv4 pública. La página de precios de Amazon VPC (comprobada el 2026-11-04) indica $0.005 por hora para una dirección en uso y los mismos $0.005 para una inactiva, y dice de las direcciones BYOIP: "These public IPv4 addresses are not charged." La página no muestra capa gratuita para IPv4 pública; la capa gratuita que describe es la de Amazon VPC IP Address Manager (IPAM).

Un mes son 730 horas en la facturación de AWS, así que:

  • 1 dirección: $3.65 al mes, $43.80 al año;
  • 50 direcciones: $182.50 al mes, $2,190 al año;
  • 256 direcciones: $934.40 al mes, $11,212.80 al año.

La última línea importa más de lo que parece: tras BYOIP, AWS te deja usar todas las direcciones de un /24, incluidas la de red y la de broadcast (requisitos de EC2 BYOIP). IPAM es gratis para BYOIP en una región y una cuenta; el Advanced Tier, necesario a partir de dos regiones o cuentas, cuesta $0.00027 por IP activa y hora, unos $0.20 al mes por dirección.

Las reglas de AWS para un rango propio

De la documentación de EC2 BYOIP, comprobada el 2026-11-04:

  1. Registro. El rango debe estar registrado en ARIN, RIPE NCC o APNIC, a nombre de una empresa o institución, no de una persona. LACNIC y AFRINIC no están en la lista.
  2. Tamaño. El rango IPv4 más específico es un /24. No puedes traer un /25.
  3. ROA. Una Route Origin Authorization para los ASN de Amazon 16509 y 14618, con longitud máxima igual al rango que traes (IPAM exige /24). Crea antes una ROA para tu ASN de origen actual o tus rutas existentes pueden romperse. La European Sovereign Cloud usa en su lugar los ASN 16509 y 214101.
  4. Prueba de control. Un certificado X.509 autofirmado en el registro (en RIPE: una nueva línea descr en el inetnum, no remarks), o el método DNS TXT de IPAM.
  5. Reputación. AWS "might investigate the reputation" y puede rechazar un rango con mal historial. Revisa el bloque antes de comprarlo: mira nuestra comprobación de listas negras IPv4.
  6. Límites. Cinco rangos BYOIP por región y cuenta (más bajo petición), cada rango en una sola región a la vez. La mayoría del aprovisionamiento termina en dos horas; AWS se reserva hasta una semana.

Revisa un rango antes de empezar: byoip_check.js

El script solo lee datos públicos (RIPEstat y RDAP, sin cuenta de AWS) y responde dos preguntas: si el prefijo está listo para aprovisionar y a partir de cuántas IP públicas un /24 bate el precio de AWS. Pásale prefijos o un ASN. Guárdalo como byoip_check.js:

// byoip_check.js - is a prefix ready for AWS BYOIP, and when does a /24 beat AWS public IPv4?
// usage: bun byoip_check.js <prefix | ASN> [prefix ...]   e.g. bun byoip_check.js AS204057
// Public data only (RIPEstat, RDAP), no AWS account needed.
const AWS_IP_HOUR = 0.005  // aws.amazon.com/vpc/pricing/, in-use or idle, checked 2026-11-04
const BUY_IP = 25.40       // ip4.market /24 90-day median per IP, 80 sales to 2026-10-26
const LEASE_IP_MONTH = 0.49 // IPv4Center all-region /24 lease average, page updated 2026-10-28
const AMAZON = [16509, 14618] // ASNs the ROA must authorize (EC2 BYOIP prerequisites)

const stat = async (call, q) =>
  (await (await fetch(`https://stat.ripe.net/data/${call}/data.json?${q}`)).json()).data

let prefixes = process.argv.slice(2)
if (prefixes.length === 1 && /^as\d+$/i.test(prefixes[0])) {
  const d = await stat('announced-prefixes', `resource=${prefixes[0]}`)
  prefixes = d.prefixes.map(p => p.prefix).filter(p => p.includes('.')).sort().slice(0, 5)
}

for (const pfx of prefixes) {
  const len = +pfx.split('/')[1]
  const rdap = await (await fetch(`https://rdap.org/ip/${pfx}`)).json().catch(() => ({}))
  const raw = JSON.stringify(rdap)
  const origins = (await stat('prefix-overview', `resource=${pfx}`)).asns.map(a => a.asn)
  const rpki = {}
  for (const asn of [...origins, ...AMAZON])
    rpki[asn] = (await stat('rpki-validation', `resource=AS${asn}&prefix=${pfx}`)).status
  const ok = len <= 24 && AMAZON.every(a => rpki[a] === 'valid') && raw.includes('BEGIN CERTIFICATE')
  console.log(`\n${pfx}  ${rdap.handle ?? '?'}  ${rdap.type ?? '?'}  ${rdap.country ?? ''}`)
  console.log(`  size /${len} (AWS takes /24 or larger): ${len <= 24 ? 'ok' : 'too small'}`)
  for (const [asn, s] of Object.entries(rpki))
    console.log(`  ROA AS${asn}${AMAZON.includes(+asn) ? ' (Amazon)' : ' (origin today)'}: ${s}`)
  console.log(`  X.509 certificate in the registry record: ${raw.includes('BEGIN CERTIFICATE') ? 'yes' : 'no'}`)
  console.log(`  ready to provision: ${ok ? 'yes' : 'no'}`)
}

// Cost: AWS-provided public IPv4 vs a /24 brought in (BYOIP addresses carry no AWS IPv4 charge)
const awsMonth = n => n * AWS_IP_HOUR * 730
const buy = 256 * BUY_IP, lease = 256 * LEASE_IP_MONTH
const usd = v => '$' + Math.round(v).toLocaleString('en-US')
console.log(`\npublic IPs | AWS per month | AWS per year | lease /24 per month | buy /24 pays back in`)
for (const n of [10, 35, 50, 100, 256])
  console.log(`${String(n).padStart(10)} | ${usd(awsMonth(n)).padStart(13)} | ${usd(awsMonth(n) * 12).padStart(12)} | ${
    (usd(lease) + (awsMonth(n) > lease ? ' (cheaper)' : ' (dearer)')).padStart(19)} | ${
    (buy / awsMonth(n)).toFixed(1).padStart(6)} months`)
console.log(`/24 to buy: ${usd(buy)} once (+ broker fee, LIR or sponsoring LIR); lease: ${usd(lease)} a month`)
bun byoip_check.js AS204057

Salida, ejecutado en un servidor cloud de DCXV con Bun 1.4.4 el 2026-11-04 (nuestro propio AS204057; los otros cuatro prefijos dieron el mismo resultado que el primero):

116.204.153.0/24  116.204.153.0 - 116.204.153.255  ALLOCATED PA  CZ
  size /24 (AWS takes /24 or larger): ok
  ROA AS14618 (Amazon): invalid_asn
  ROA AS16509 (Amazon): invalid_asn
  ROA AS204057 (origin today): valid
  X.509 certificate in the registry record: no
  ready to provision: no

public IPs | AWS per month | AWS per year | lease /24 per month | buy /24 pays back in
        10 |           $37 |         $438 |       $125 (dearer) |  178.1 months
        35 |          $128 |       $1,533 |      $125 (cheaper) |   50.9 months
        50 |          $183 |       $2,190 |      $125 (cheaper) |   35.6 months
       100 |          $365 |       $4,380 |      $125 (cheaper) |   17.8 months
       256 |          $934 |      $11,213 |      $125 (cheaper) |    7.0 months
/24 to buy: $6,502 once (+ broker fee, LIR or sponsoring LIR); lease: $125 a month

Nuestros prefijos, como es lógico, no están listos: solo los anuncia AS204057 y no tienen ROA de Amazon ni certificado. invalid_asn para 16509 y 14618 es justo lo que verás antes del paso 3, y valid es lo que necesitas después. Las constantes de precio están fechadas al principio del script: cámbialas cuando tengas una cotización.

Comprar, alquilar o seguir pagando a AWS

IPv4 públicas en AWS Ruta más barata (precios de octubre de 2026) Ojo con
Menos de unas 35 Mantener las direcciones de AWS Una Elastic IP inactiva cuesta los mismos $0.005 por hora
Unas 35 a 100 Alquilar un /24 y traerlo El arrendador debe crear la ROA de Amazon y el certificado
Unas 100 a 256 Comprar un /24 Se amortiza en 7 a 18 meses; el bloque sigue siendo un activo
Varias regiones Comprar un /22 o mayor y dividirlo en /24 Una ROA y un registro cubren todos
Salir de AWS más adelante Comprar El bloque se va contigo; las direcciones de AWS no

La tabla usa las cifras de octubre de 2026 del script: la mediana de 90 días de ip4.market de $25.40 por IP sobre 80 ventas de /24 hasta el 2026-10-26, y el promedio de alquiler de /24 de IPv4Center para todas las regiones de $0.49 por IP al mes (página actualizada el 2026-10-28). Una compra también necesita un LIR o un LIR patrocinador y una comisión de bróker; la comisión publicada de DCXV para una operación de /24 es EUR 2.00 por IP. Tras una transferencia en RIPE el bloque no puede transferirse de nuevo durante 24 meses, lo que no impide usarlo en AWS. Compara las dos vías en alquilar o comprar IPv4.

Dos puntos prácticos. Con un alquiler, BYOIP solo funciona si el arrendador acepta añadir los ASN de Amazon a la ROA y tu certificado al registro: pregúntalo antes de firmar. Y si además pagas soporte de AWS, recuerda que es un porcentaje de toda la factura, cargos de IPv4 incluidos, como muestra nuestra guía de soporte y facturación de AWS.

Dónde encaja DCXV

DCXV hace de bróker IPv4 en las regiones de RIPE, ARIN y APNIC: encontramos un /24 limpio en venta o alquiler, revisamos su historial y gestionamos la transferencia, para que los pasos de ROA y certificado empiecen en cuanto el bloque esté a tu nombre. Cuéntanos cuántas direcciones usas en AWS y en qué regiones en el área IPv4 de DCXV o en ipv4@dcxv.com.

AWS BYOIP en 2026: $43.80 por IPv4 frente a tu propio /24
ipv4pricingcloud

AWS BYOIP en 2026: $43.80 por IPv4 frente a tu propio /24

AWS cobra $0.005 por hora por IPv4 pública, $43.80 al año. BYOIP no paga ese cargo: cuándo se amortiza un /24 comprado o alquilado, con un script de ROA.

Dejar VMware tras Broadcom: guía de migración comprobada
clouddedicatedinfrastructure

Dejar VMware tras Broadcom: guía de migración comprobada

Broadcom eliminó las licencias perpetuas, recortó socios y ocultó VDDK. Cómo mover VM a KVM, Proxmox o Hyper-V, con fechas y un conversor OVA probado.

Propagación DNS: 3 segundos de Cloudflare frente a su TTL
networkingcloudinfrastructure

Propagación DNS: 3 segundos de Cloudflare frente a su TTL

Cloudflare bajó su retardo de build DNS a 3,3 s. Un cambio de servidor aún espera al TTL, la caché negativa y 2 días de delegación .com. Medido en dos zonas.

10.000 comentarios en concejos de EE. UU. y lo que implican
clouddedicatedinfrastructure

10.000 comentarios en concejos de EE. UU. y lo que implican

Un conjunto de datos codifica 10.202 intervenciones sobre centros de datos en EE. UU.: 90,5% en contra, el agua primero. Lo recontamos y vemos qué implica.

Soporte y facturación de AWS: guía verificada para la UE
cloudpricingcompare

Soporte y facturación de AWS: guía verificada para la UE

Planes y precios de soporte de AWS, retrasos de facturación, egress desde Frankfurt, un script de costes y cuándo conviene un proveedor UE de precio fijo.