Arquitectura de Red Híbrida Cloud

DataCore Analytics SL — Madrid CPD → AWS eu-west-1 + Azure westeurope  |  Diseño técnico v1.2  |  16 Jun 2026

● GDPR Compliant HA 99.9% Multi-Cloud
Latencia AWS
14ms
CPD Madrid → eu-west-1 (objetivo <20ms)
▲ SLA cumplido
Latencia Azure
19ms
CPD Madrid → westeurope (objetivo <25ms)
▲ SLA cumplido
Ancho de banda total
2.5Gbps
2 Gbps Direct Connect + 500 Mbps ExpressRoute
■ Capacidad pico 87%
Coste mensual red
2.840
Presupuesto máx. 3.500 €/mes
▲ 18.8% margen
◆ Topología Hub-and-Spoke — Patrón de referencia DataCore Analytics
CPD MADRID 10.0.0.0/16 PostgreSQL Spark Pipeline BGP ASN 65100 ZONA CONEXION HIBRIDA TRANSIT HUB Direct Connect GW Transit Gateway VPN Failover AWS eu-west-1 172.16.0.0/16 VPC Prod ML VPC Staging/Dev SageMaker | EKS | S3 GDPR-EU Azure westeurope 192.168.0.0/16 VNet Analytics VNet Backup Power BI | ADF | Azure Backup Direct Connect 2G VPN Failover (dual) 2 Gbps 500 Mbps Direct Connect / ExpressRoute VPN IPSec Failover (HA dual tunnel)
Conexiones configuradas
Enlace Tipo BW Latencia Estado
DX Primary Madrid→AWS Direct Connect 2 Gbps 14 ms UP
VPN-A Madrid→AWS IPSec IKEv2 1.25 Gbps 28 ms Standby
VPN-B Madrid→AWS IPSec IKEv2 1.25 Gbps 29 ms Standby
ER Primary Madrid→Azure ExpressRoute 500 Mbps 19 ms UP
VPN-C Madrid→Azure IPSec IKEv2 250 Mbps 35 ms Standby
Seguridad y cumplimiento
Terraform — AWS Direct Connect + Transit Gateway
# main.tf — DataCore Analytics / AWS Hybrid

resource "aws_dx_gateway" "datacore" {
  name            = "datacore-dx-gateway"
  amazon_side_asn = 64512
}

resource "aws_dx_hosted_connection" "primary" {
  connection_id    = "dxcon-XXXXXXXX"
  name             = "datacore-dx-primary-2gbps"
  owner_account_id = var.aws_account_id
  bandwidth        = "2Gbps"
  vlan             = 101
}

resource "aws_ec2_transit_gateway" "main" {
  description                     = "DataCore Hub"
  default_route_table_association = "disable"
  default_route_table_propagation = "disable"
  amazon_side_asn                 = 64512
  tags = {
    Name    = "datacore-tgw"
    Env     = "prod"
    GDPR    = "eu-only"
  }
}

# Dual VPN failover
resource "aws_customer_gateway" "cpe_a" {
  bgp_asn    = 65100
  ip_address = "195.10.83.12" # Madrid CPD router A
  type       = "ipsec.1"
  tags       = { Name = "datacore-cpe-a" }
}

resource "aws_customer_gateway" "cpe_b" {
  bgp_asn    = 65100
  ip_address = "195.10.83.13" # Madrid CPD router B
  type       = "ipsec.1"
  tags       = { Name = "datacore-cpe-b" }
}
Terraform — Azure ExpressRoute + VPN Gateway
# azure.tf — DataCore Analytics / Azure Hybrid

resource "azurerm_express_route_circuit" "main" {
  name                = "datacore-er-circuit"
  resource_group_name = azurerm_resource_group.main.name
  location            = "westeurope"
  service_provider_name = "Telefonica"
  peering_location      = "Madrid"
  bandwidth_in_mbps     = 500

  sku {
    tier   = "Standard"
    family = "MeteredData"
  }
  tags = { GDPR = "eu-residency" }
}

resource "azurerm_virtual_network_gateway" "vpn_gw" {
  name                = "datacore-vpn-gw"
  location            = "westeurope"
  resource_group_name = azurerm_resource_group.main.name
  type                = "Vpn"
  vpn_type            = "RouteBased"
  sku                 = "VpnGw2"
  active_active       = false

  ip_configuration {
    name                          = "vnetGatewayConfig"
    public_ip_address_id          = azurerm_public_ip.vpn.id
    private_ip_address_allocation = "Dynamic"
    subnet_id                     = azurerm_subnet.gateway.id
  }
}

# BGP peering config
resource "azurerm_local_network_gateway" "onprem" {
  name                = "datacore-onprem-gw"
  resource_group_name = azurerm_resource_group.main.name
  location            = "westeurope"
  gateway_address     = "195.10.83.12"
  address_space       = ["10.0.0.0/16"]
  bgp_settings { asn = 65100; bgp_peering_address = "10.0.255.1" }
}
Enrutamiento BGP — tabla de prefijos
Prefijo CIDROrigenNext HopMétricaEstado
10.0.0.0/16 CPD Madrid 195.10.83.12 100 Activo
172.16.0.0/16 AWS VPC Prod Transit GW 200 Activo
172.16.128.0/18 AWS VPC Stg Transit GW 200 Activo
192.168.0.0/16 Azure VNet ER Gateway 300 Activo
192.168.128.0/18 Azure Backup ER Gateway 300 Activo
BGP ASN — On-prem: 65100  |  AWS TGW: 64512  |  Azure VPN GW: 65515
ECMP habilitado en Transit Gateway. Failover automático <3 seg (BFD timer 300ms).
Monitoring — CloudWatch + Azure Monitor
Alerta activa: Throughput DX en 87% de capacidad. Recomendado escalar a 5 Gbps en Q3 2026 o activar CDN edge cache para reducir tráfico.
Desglose de costes mensuales
ServicioProveedorCoste €/mes% Total
Direct Connect 2 Gbps AWS 1.240 €
43.7%
Transit Gateway AWS 280 €
9.9%
Site-to-Site VPN (x2) AWS 145 €
5.1%
ExpressRoute 500 Mbps Azure 890 €
31.3%
VPN Gateway Azure Azure 175 €
6.2%
Data transfer (estimado) Multi 110 €
3.9%
TOTAL 2.840 € Bajo presupuesto (3.500€)
Plan de Alta Disponibilidad
99.97%
Uptime DX
< 30s
Failover RTO
0
RPO (BGP sync)
Comandos de diagnóstico rápido
AWS
# Estado VPN connections
aws ec2 describe-vpn-connections \
  --filters "Name=tag:Project,Values=datacore" \
  --query "VpnConnections[].{ID:VpnConnectionId,State:State}"

# Telemetría túneles Direct Connect
aws ec2 get-vpn-connection-telemetry \
  --vpn-connection-id vpn-0a1b2c3d4e5f

# BGP routes advertised from Transit GW
aws ec2 describe-transit-gateway-route-tables
AZURE
# Estado ExpressRoute circuit
az network express-route show \
  --name datacore-er-circuit \
  --resource-group datacore-rg \
  --query "{State:circuitProvisioningState,BW:serviceProviderProvisioningState}"

# Conexión VPN Gateway
az network vpn-connection show \
  --name datacore-vpn-conn \
  --resource-group datacore-rg

# Effective routes de la NIC
az network nic show-effective-route-table \
  --name datacore-nic --resource-group datacore-rg
Stack tecnológico
Terraform 1.8 AWS Direct Connect AWS Transit Gateway AWS Site-to-Site VPN Azure ExpressRoute Azure VPN Gateway BGP / AS65100 IPSec IKEv2 AES-256-GCM BFD 300ms ECMP AWS PrivateLink VPC Flow Logs CloudWatch Azure Monitor GDPR Art. 44+ Cisco ASR 1001-X