<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Oscar Gaviria</title>
    <description>The latest articles on DEV Community by Oscar Gaviria (@oscar_gaviria_2b862594738).</description>
    <link>https://dev.to/oscar_gaviria_2b862594738</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2606872%2Ff220c6a8-1254-40a0-a103-dbc9541ee09f.PNG</url>
      <title>DEV Community: Oscar Gaviria</title>
      <link>https://dev.to/oscar_gaviria_2b862594738</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oscar_gaviria_2b862594738"/>
    <language>en</language>
    <item>
      <title>🔥AWS Network Firewall vs Gateway Load Balancer: la decisión que nadie explica bien.</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Mon, 17 Aug 2026 15:30:15 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/aws-network-firewall-vs-gateway-load-balancer-la-decision-que-nadie-explica-bien-3omi</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/aws-network-firewall-vs-gateway-load-balancer-la-decision-que-nadie-explica-bien-3omi</guid>
      <description>&lt;h2&gt;
  
  
  🧠 Introducción
&lt;/h2&gt;

&lt;p&gt;En un reciente Architecture Review con un cliente de servicios financieros en LATAM, llegamos al slide de seguridad de red y pasó algo que ya he visto varias veces.&lt;/p&gt;

&lt;p&gt;El equipo tenía desplegado AWS Network Firewall en un hub de inspección centralizado. Arquitectura hub-spoke con TGW. Todo correctamente diseñado en papel.&lt;/p&gt;

&lt;p&gt;El problema: el cliente tenía requerimientos de compliance que exigían las firmas de amenazas propietarias de su vendor de seguridad — Palo Alto Networks, con el que ya operaban on-premises con Panorama como single pane of glass.&lt;/p&gt;

&lt;p&gt;Network Firewall no podía satisfacer ese requerimiento. Habían construido la arquitectura entera sobre el servicio equivocado.&lt;/p&gt;

&lt;p&gt;La pregunta que nadie había respondido al inicio del proyecto fue la más simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"¿Necesitamos el firewall de AWS o necesitamos nuestro firewall en AWS?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Esa diferencia lo cambia todo.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Preámbulo: dos servicios que resuelven problemas distintos
&lt;/h2&gt;

&lt;p&gt;Antes de comparar, es necesario entender que Network Firewall y GWLB no son alternativas equivalentes. Son herramientas que operan en capas diferentes del problema de inspección de tráfico.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Network Firewall&lt;/strong&gt; es un firewall gestionado nativo. AWS opera el motor de inspección; nosotros operamos las reglas. Stateful, stateless, Suricata-compatible, con IPS/IDS integrado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Gateway Load Balancer&lt;/strong&gt; es infraestructura de distribución de tráfico. No inspecciona nada por sí solo. Su trabajo es dirigir tráfico hacia appliances de terceros (Palo Alto VM-Series, Fortinet FortiGate, Check Point CloudGuard) de forma transparente, escalable y con preservación de sesión.&lt;/p&gt;

&lt;p&gt;Un dato técnico que pocos conocen: AWS Network Firewall ya usa internamente Gateway Load Balancer para proveer escalabilidad elástica en su propio endpoint. Esto significa que cuando elegimos Network Firewall, estamos usando GWLB — pero con el motor de inspección de AWS incluido y abstraído.&lt;/p&gt;

&lt;p&gt;La pregunta real entonces no es "¿cuál es mejor?" sino:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;¿Quién opera el motor de inspección y quién controla las firmas de amenazas?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ⚙️ Cómo intercepta el tráfico cada uno — la diferencia arquitectónica real
&lt;/h2&gt;

&lt;p&gt;Antes de la decisión, necesitamos entender el mecanismo de intercepción. Son fundamentalmente distintos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Network Firewall — flujo de tráfico:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPC spoke
  └── TGW (attachment)
        └── Inspection VPC
              └── Firewall Subnet
                    └── Network Firewall Endpoint (ENI tipo gateway_load_balancer_endpoint)
                          └── Motor Suricata (gestionado por AWS)
                                └── Retorna tráfico inspeccionado
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El endpoint de Network Firewall actúa como bump-in-the-wire: el tráfico entra, se inspecciona contra las reglas Suricata/stateful configuradas, y sale hacia su destino. Vemos las reglas y los logs. AWS opera el motor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GWLB + Appliance de tercero — flujo de tráfico:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPC spoke
  └── TGW (attachment)
        └── Security VPC
              └── GWLB Endpoint (GWLBE, vía PrivateLink)
                    └── GWLB (encapsulación GENEVE port 6081)
                          └── Target Group → Appliance EC2 (Palo Alto / Fortinet / etc.)
                                └── Inspección + retorno al GWLB
                                      └── GWLB reenvía tráfico a destino
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El punto técnico crítico: GWLB usa &lt;strong&gt;encapsulación GENEVE&lt;/strong&gt; para enviar el paquete original intacto al appliance, preservando la 5-tupla original. El appliance inspecciona, toma decisión, y devuelve el paquete al GWLB que lo reenvía al destino. El tráfico es transparente para origen y destino — ninguno sabe que fue inspeccionado.&lt;/p&gt;

&lt;p&gt;Esto tiene una implicación operativa importante: el appliance debe soportar GENEVE (port 6081) para integrarse con GWLB. Palo Alto VM-Series, Fortinet FortiGate y Check Point CloudGuard lo soportan. Si el vendor de seguridad de la organización no lo soporta, GWLB no es viable sin cambios en el appliance.&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 La tabla de decisión — criterios objetivos
&lt;/h2&gt;

&lt;p&gt;Esta es la tabla que debería existir en todo Architecture Review que involucre inspección de tráfico en AWS:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterio&lt;/th&gt;
&lt;th&gt;AWS Network Firewall&lt;/th&gt;
&lt;th&gt;GWLB + Appliance tercero&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Operación del motor&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AWS (managed)&lt;/td&gt;
&lt;td&gt;Nosotros (EC2 + licencia vendor)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Firmas de amenazas&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AWS Managed Rules + Suricata community&lt;/td&gt;
&lt;td&gt;Propietarias del vendor (Palo Alto, Fortinet)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Single pane of glass con on-prem&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Sí (Panorama, FortiManager)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TLS inspection&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Sí (Advanced Inspection, sin cargo extra de data processing desde feb 2026, en 13 regiones)&lt;/td&gt;
&lt;td&gt;✅ Sí (depende del appliance)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Escalabilidad&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Automática (managed)&lt;/td&gt;
&lt;td&gt;Auto Scaling Group manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Costo base (us-east-1, por AZ)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$0.395/hora endpoint + $0.065/GB&lt;/td&gt;
&lt;td&gt;$0.014/hora GWLB + $0.004/GLCU-hora + licencia EC2 + vendor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Overhead operativo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Bajo&lt;/td&gt;
&lt;td&gt;Alto (parches, licencias, HA del appliance)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tiempo hasta producción&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Horas&lt;/td&gt;
&lt;td&gt;Días/semanas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Compliance con requerimientos vendor-specific&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ Limitado&lt;/td&gt;
&lt;td&gt;✅ Total&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Multi-VPC con un solo firewall&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Hasta 50 VPCs por AZ (secondary endpoints)&lt;/td&gt;
&lt;td&gt;✅ Con GWLBE por VPC&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  💸 Trade-off de costos — los números que importan
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Escenario típico: hub de inspección centralizado, 3 AZs, 10 TB/mes de tráfico inspeccionado&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Network Firewall:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Endpoints: 3 AZs × $0.395/hora × 730 horas = $865/mes
Tráfico:   10,000 GB × $0.065/GB            = $650/mes
──────────────────────────────────────────────────────
Total mensual aproximado:                   ~$1,515/mes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;GWLB + Palo Alto VM-Series (estimado):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GWLB:       3 AZs × $0.014/hora × 730h    =   $31/mes
GLCUs:      variable según tráfico         ~   $50/mes
EC2 (PA):   3× m5.2xlarge (~$0.384/h)     ~  $842/mes
Licencia:   Palo Alto BYOL o marketplace   ~  $500–1,500/mes
──────────────────────────────────────────────────────
Total mensual aproximado:                  ~$1,400–2,400/mes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Conclusión del análisis de costos:&lt;/strong&gt; Network Firewall es más predecible y generalmente más barato en arquitecturas medianas. GWLB se justifica cuando el costo de la licencia del vendor ya está amortizado (BYOL desde on-premises) o cuando las capacidades del vendor son un requerimiento no negociable.&lt;/p&gt;

&lt;p&gt;Un dato relevante publicado en febrero de 2026: AWS Network Firewall eliminó los cargos adicionales de data processing para Advanced Inspection TLS (vigente en 13 regiones, incluyendo São Paulo) y extendió los descuentos de NAT Gateway encadenado a los secondary endpoints, esta última mejora sin restricción regional. Eso mejora significativamente el TCO de Network Firewall en arquitecturas multi-VPC con inspección TLS activa.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔧 Patrón 1 — Network Firewall en hub-spoke con TGW
&lt;/h2&gt;

&lt;p&gt;Este es el patrón de referencia para organizaciones AWS-native sin dependencia de vendor externo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPC Spoke A ──┐
VPC Spoke B ──┤── TGW ──── Inspection VPC
VPC Spoke C ──┘              └── Firewall Subnet (1 por AZ)
                                    └── Network Firewall Endpoint
                                          └── Suricata Rules + Stateful
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgadj4fdfrjpdcqf0gwb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgadj4fdfrjpdcqf0gwb.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nota de costos:&lt;/strong&gt; en este patrón el tráfico inter-spoke atraviesa &lt;br&gt;
el TGW dos veces — una hacia la Inspection VPC y otra hacia el spoke &lt;br&gt;
destino. Consideremos ese doble cargo de $0.02/GB en el modelo de costos &lt;br&gt;
para tráfico Este-Oeste de alto volumen.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Cuándo es el patrón correcto:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organización AWS-first sin equipos de seguridad que operen vendors externos&lt;/li&gt;
&lt;li&gt;Necesitamos inspección rápida sin overhead operativo de licencias y parches&lt;/li&gt;
&lt;li&gt;Requerimiento de TLS inspection: sin cargo extra de data processing desde feb 2026, en 13 regiones.&lt;/li&gt;
&lt;li&gt;Dev/test environments donde el costo de un appliance no se justifica&lt;/li&gt;
&lt;li&gt;Startups y scale-ups que no tienen on-premises con firewall vendor establecido&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Lo que necesitamos configurar en el TGW:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Route tables separadas: pre-inspection (tráfico entra al firewall) y post-inspection (tráfico sale al destino)&lt;/li&gt;
&lt;li&gt;Appliance mode en el TGW attachment para preservar simetría de flujo&lt;/li&gt;
&lt;li&gt;Network Firewall policy con al menos: stateless rules para tráfico conocido + stateful rules para inspección profunda&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Desde noviembre de 2025, Network Firewall soporta flexible cost allocation vía TGW native attachments, permitiendo distribuir los costos de inspección a las cuentas de las aplicaciones según uso real. Para un ambiente multi-cuenta enterprise, esto resuelve el problema de chargeback interno sin soluciones custom.&lt;/p&gt;

&lt;p&gt;Esto requiere migrar a TGW native attachment, que reemplaza la Inspection VPC dedicada por una conexión directa del firewall al TGW. Esto no es una capacidad adicional sobre el diseño de arriba, es un patrón de despliegue distinto.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔧 Patrón 2 — GWLB con appliance de tercero en hub centralizado
&lt;/h2&gt;

&lt;p&gt;Este es el patrón para organizaciones con dependencia de vendor o requerimientos de compliance que Network Firewall no cubre.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPC Spoke A ──┐
VPC Spoke B ──┤── TGW ──── Security VPC
VPC Spoke C ──┘              └── GWLBE (centralizado por AZ, vía PrivateLink)
                                    └── GWLB (encapsulación GENEVE port 6081)
                                          └── Auto Scaling Group
                                                └── Palo Alto VM-Series
                                                      └── Panorama (gestión centralizada)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvv85ps7d8bxafw4159ac.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvv85ps7d8bxafw4159ac.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cuándo es el patrón correcto:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organización con Palo Alto/Fortinet/CheckPoint on-premises y Panorama/FortiManager como consola unificada&lt;/li&gt;
&lt;li&gt;Requerimientos de compliance que exigen firmas propietarias de vendor certificado (PCI-DSS nivel 1, HIPAA con auditorías de vendor específico)&lt;/li&gt;
&lt;li&gt;Necesitamos capacidades que Network Firewall no tiene: sandbox de malware, DLP a nivel de appliance, URL categorization propietaria&lt;/li&gt;
&lt;li&gt;Migración desde on-premises donde el vendor ya tiene contexto de políticas históricas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Consideración operativa crítica:&lt;/strong&gt; con GWLB somos responsables de la HA del appliance. Necesitamos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auto Scaling Group con health checks configurados para el appliance&lt;/li&gt;
&lt;li&gt;Appliance mode en TGW para simetría de flujo (sin esto, flows bidireccionales pueden ir a instancias distintas y romper inspección stateful)&lt;/li&gt;
&lt;li&gt;Proceso de parches del OS del appliance sin interrumpir tráfico&lt;/li&gt;
&lt;li&gt;Gestión de licencias y renovaciones del vendor&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 El árbol de decisión — nivel arquitecto
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;¿Necesitamos firmas propietarias de un vendor específico?
  │
  ├── SÍ → ¿Ese vendor tiene appliance compatible con GENEVE/GWLB?
  │           ├── SÍ → GWLB + Appliance (Palo Alto, Fortinet, CheckPoint)
  │           └── NO → Evaluamos Palo Alto Cloud NGFW (marketplace)
  │                     o rediscutimos el requerimiento con el equipo de seguridad
  │
  └── NO → ¿Tenemos equipo para operar, parchear y licenciar appliances?
              │
              ├── SÍ → Evaluamos ambas opciones según TCO
              │
              └── NO → AWS Network Firewall
                          │
                          └── ¿Necesitamos TLS inspection?
                                ├── SÍ → Network Firewall + Advanced Inspection
                                │         (sin cargo extra desde feb 2026, vigente en 13 regiones, incluyendo São Paulo)
                                └── NO → Network Firewall standard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⚠️ Antipatrones consolidados
&lt;/h2&gt;

&lt;p&gt;❌ &lt;strong&gt;"Necesitamos firewall" sin definir qué tipo:&lt;/strong&gt; la decisión de vendor vs. managed se toma en la semana 1, no en la semana 8 cuando ya está construida la arquitectura.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;Network Firewall para reemplazar un vendor con el que ya tenemos contrato y Panorama:&lt;/strong&gt; vamos a operar dos consolas de seguridad distintas sin ganancia técnica real.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;GWLB sin appliance mode en TGW:&lt;/strong&gt; flows bidireccionales pueden llegar a instancias distintas del appliance. Inspección stateful rota silenciosamente.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;Un solo endpoint de Network Firewall para múltiples AZs:&lt;/strong&gt; si el endpoint falla, el tráfico de esas AZs pierde inspección. Siempre desplegamos un endpoint por AZ en producción.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;GWLB en dev/test con appliance de producción:&lt;/strong&gt; el costo del appliance (EC2 + licencia) en entornos non-prod es difícil de justificar. Network Firewall en dev/test + GWLB en producción es el patrón híbrido más común y más económico.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔧 Conclusión
&lt;/h2&gt;

&lt;p&gt;La pregunta correcta en un Architecture Review no es:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"¿Usamos Network Firewall o GWLB?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Es:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"¿Quién controla el motor de inspección y quién gestiona las firmas de amenazas — AWS o nuestro vendor de seguridad?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Si la respuesta es AWS: Network Firewall es el camino más directo, más predecible en costos y con menor overhead operativo.&lt;/p&gt;

&lt;p&gt;Si la respuesta es el vendor de seguridad existente de la organización: GWLB es la infraestructura que permite llevar ese vendor a AWS sin cambiar el modelo operativo de seguridad.&lt;/p&gt;

&lt;p&gt;Ambos son correctos. El error es elegir uno sin haber respondido esa pregunta primero.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy learning on AWS 🚀&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>networking</category>
      <category>aws</category>
      <category>security</category>
    </item>
    <item>
      <title>De una idea en 2020 a la Golden Jacket: mi camino recorrido con AWS</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Sun, 26 Jul 2026 21:40:56 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/de-una-idea-en-2020-a-la-golden-jacket-mi-camino-recorrido-con-aws-i2h</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/de-una-idea-en-2020-a-la-golden-jacket-mi-camino-recorrido-con-aws-i2h</guid>
      <description>&lt;p&gt;En en año 2020 no tenía certificaciones. Tenía una pregunta.&lt;/p&gt;

&lt;p&gt;Trabajaba en una empresa donde "la nube" era un terreno desconocido, y yo intuía que ahí estaba la solución a un problema que nadie sabía cómo resolver. No sabía de AWS, pero sabía que quería entenderla lo suficiente como para proponer algo que valiera la pena. Ese fue el verdadero punto de partida: no una meta, sino una curiosidad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;El método: paciencia y disciplina&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Antes de pensar en exámenes, entendí que me faltaban dos cosas: inglés y fundamentos.&lt;/p&gt;

&lt;p&gt;Y aquí hay algo que quiero decir con honestidad: &lt;strong&gt;cuando empecé, este camino era mucho más solitario&lt;/strong&gt;. No existía la cantidad de contenido en español que hay hoy, ni la comunidad de especialistas, ni los posts, guías y documentación que ahora encuentras a un clic. Tocaba abrirse paso a punta de inglés y prueba y error. Por eso valoro tanto la &lt;strong&gt;democratización del conocimiento&lt;/strong&gt; que vivimos hoy: quien empieza ahora tiene un ecosistema que a mí me habría ahorrado muchas noches.&lt;/p&gt;

&lt;p&gt;Así que ataqué inglés y fundamentos en paralelo. Empecé a comprar cursos de AWS en Udemy. No los veía como un gasto, sino como una inversión en mí. Me puse una regla simple, casi una cultura personal: comprar uno, máximo dos cursos, y terminarlos antes de que acabara el mes. Sin acumular. Sin dejar cursos a medias. Un paso a la vez, pero sin parar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Las Associate: los cimientos que abrieron puertas&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El camino formal arrancó con las certificaciones &lt;strong&gt;Associate&lt;/strong&gt;: Solutions Architect, SysOps Administrator y Developer.&lt;/p&gt;

&lt;p&gt;Estas tres no solo me dieron la base técnica: &lt;strong&gt;me abrieron nuevas oportunidades laborales&lt;/strong&gt; que me permitieron avanzar y crecer profesionalmente. Fue la primera vez que sentí, de forma tangible, que la inversión estaba dando frutos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Networking Specialty: mi terreno… y mi única caída&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Después fui por la &lt;strong&gt;Advanced Networking – Specialty&lt;/strong&gt;, porque era mi área de especialidad.&lt;/p&gt;

&lt;p&gt;Y aquí les confieso algo: &lt;strong&gt;fue la única certificación que reprobé en toda mi carrera con AWS.&lt;/strong&gt; Irónico, ¿no? Justo en mi terreno. ¿La razón? Confianza de más. Entré confiado, subestimé el examen, y AWS me recordó que la experiencia no reemplaza la preparación. La volví a presentar, la aprobé, y me quedó una de las lecciones más valiosas de todo el camino: nunca des un examen por ganado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Las Professional: y una broma que se volvió meta&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Luego llegaron las &lt;strong&gt;Professional&lt;/strong&gt;: Solutions Architect y DevOps Engineer.&lt;/p&gt;

&lt;p&gt;Y con ellas, mi primer &lt;strong&gt;re:Invent, en 2024&lt;/strong&gt;. Ahí, entre pasillos y sesiones, mis jefes soltaron una broma: "¿Y la Golden Jacket para cuándo?". Yo me reí, pero por dentro pensé: &lt;em&gt;es una locura, no tengo tanto tiempo, mis hijos ocupan cada espacio libre que tengo&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;La broma terminó, pero la espina quedó clavada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;La decisión: ir por todas&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Volví de re:Invent con una idea que no me soltaba. Me puse la meta: obtener &lt;strong&gt;todas&lt;/strong&gt; las certificaciones que me faltaban.&lt;/p&gt;

&lt;p&gt;El problema es que muchas salían de mi zona de conocimiento. Así que hice lo que haría cualquier arquitecto: analicé el mejor &lt;em&gt;path&lt;/em&gt;. Empecé por las &lt;strong&gt;Practitioner&lt;/strong&gt; (Cloud y AI Practitioner) para abrir la puerta al mundo de la IA y los datos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;De ahí seguí el recorrido:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data Engineer – Associate&lt;/strong&gt;, mi entrada formal al mundo de los datos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Machine Learning Engineer – Associate&lt;/strong&gt;, uno de los grandes retos: involucraba servicios y contenido que no había visto a fondo antes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;El cambio de &lt;strong&gt;SysOps a CloudOps&lt;/strong&gt;, que honestamente no representó mayor problema porque el salto entre una y otra fue mínimo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Machine Learning – Specialty&lt;/strong&gt;, la más dura a nivel teórico. Mucha documentación, mucha información que no estaba en ningún otro path… pero increíblemente nutritiva. Fue la que de verdad me hizo entender, a fondo, cómo funciona este mundo de la IA.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;El malabar invisible: familia, trabajo y otras nubes&lt;br&gt;
**&lt;br&gt;
Nada de esto pasó en un laboratorio aislado. Este camino tuve que **equilibrarlo con mi familia, mi trabajo, proyectos reales y certificaciones en otras nubes&lt;/strong&gt; (Azure, GCP y OCI).&lt;/p&gt;

&lt;p&gt;Ese multi-cloud no fue una distracción: fue un multiplicador. Me permitió crecer, sí, pero sobre todo &lt;strong&gt;comparar&lt;/strong&gt;. Ver cómo cada proveedor entiende una misma solución, dónde está fuerte cada uno, qué filosofía hay detrás de sus servicios. Certificarme en AWS me hizo mejor arquitecto; certificarme en varias nubes me hizo mejor &lt;em&gt;decisor&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;El sprint final&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para &lt;strong&gt;re:Invent 2025&lt;/strong&gt; solo me faltaba Security. Pero AWS lanzó una nueva certificación: &lt;strong&gt;AI Developer – Professional&lt;/strong&gt;, que quedaría disponible justo después del evento. Decidí postergar Security para afrontar esta primero, y la aprobé en &lt;strong&gt;febrero de 2025, post re:Invent&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Y dejé para el final la &lt;strong&gt;Security – Specialty&lt;/strong&gt;. Al revisarla, vi que buena parte de su contenido ya estaba cubierto por certificaciones anteriores. Así que elegí una fecha con intención: la presenté el &lt;strong&gt;6 de mayo, el día de mi cumpleaños&lt;/strong&gt;. Si aprobaba, celebraría por partida doble.&lt;/p&gt;

&lt;p&gt;Y así fue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lo que me llevo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;La Golden Jacket es dorada y brilla, pero no es lo que más valoro de este camino.&lt;/p&gt;

&lt;p&gt;Lo que me llevo es la prueba de que una curiosidad de 2020 —un tipo sin certificaciones, sin comunidad en español, tratando de entender la nube— podía convertirse en esto. Un curso a la vez. Un mes a la vez. Robándole horas al cansancio y nunca al tiempo con mis hijos.&lt;/p&gt;

&lt;p&gt;🚀&lt;strong&gt;Y ahora te toca a ti&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Si estás empezando y sientes que la meta está demasiado lejos: lo estaba para mí también. Pero hoy tienes algo que yo no tuve: &lt;strong&gt;una comunidad enorme, contenido en español y especialistas dispuestos a ayudarte&lt;/strong&gt;. Aprovéchalo.&lt;/p&gt;

&lt;p&gt;👉 Si este camino te resuena, cuéntame en los comentarios: &lt;strong&gt;¿cuál es la próxima certificación que vas a conquistar?&lt;/strong&gt; Y si estás en el proceso, escríbeme — con gusto te comparto el &lt;em&gt;path&lt;/em&gt; que a mí me funcionó.&lt;/p&gt;

&lt;p&gt;Comparte este post con alguien que necesite recordar que &lt;strong&gt;el secreto no es el talento, es no soltar la espina.&lt;/strong&gt; ☁️&lt;/p&gt;

&lt;p&gt;&lt;em&gt;De 2020 a hoy. Y apenas empieza.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0bc1mtrcyhr065g2m97t.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0bc1mtrcyhr065g2m97t.jpeg" alt=" " width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy learning on AWS&lt;/strong&gt; 🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloudcomputing</category>
      <category>goldenjacket</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🌐AWS en la era de la IA: cómo integrar Bedrock en arquitecturas enterprise sin romper lo que ya existe.</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Mon, 29 Jun 2026 14:25:02 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/aws-en-la-era-de-la-ia-como-integrar-bedrock-en-arquitecturas-enterprise-sin-romper-lo-que-ya-1525</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/aws-en-la-era-de-la-ia-como-integrar-bedrock-en-arquitecturas-enterprise-sin-romper-lo-que-ya-1525</guid>
      <description>&lt;p&gt;🧠 &lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;En un engagement reciente con un cliente financiero en LATAM.&lt;/p&gt;

&lt;p&gt;Datos en RDS Oracle. Lógica de negocio en microservicios sobre ECS. Integraciones legacy por MQ. Todo on-premise hasta hace dos años, hoy parcialmente migrado a AWS.&lt;/p&gt;

&lt;p&gt;La pregunta del CTO fue directa:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"¿Podemos agregar IA generativa sin rehacer todo?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mi respuesta también fue directa:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Depende de dónde están tus datos y qué nivel de control necesitas sobre ellos."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Esa conversación me hizo ordenar los patrones que he visto funcionar — y los que he visto explotar — al integrar Bedrock en arquitecturas enterprise existentes.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Preámbulo: el nuevo driver que nadie modeló en el Well-Architected&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cuando diseñamos arquitecturas enterprise en AWS, los cinco pilares del WAF cubren casi todo.&lt;/p&gt;

&lt;p&gt;Pero hay un driver que emergió con la IA generativa que no estaba en el modelo original:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;La proximidad del modelo al dato.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;En arquitecturas tradicionales, mover datos era costoso pero tolerable. En inferencia con LLMs, el problema se invierte: no se pueden mover todos los datos al modelo en cada request. Se necesita que el modelo opere cerca de los datos — o que los datos lleguen al modelo de forma controlada, privada y auditable.&lt;/p&gt;

&lt;p&gt;Eso tiene implicancias arquitectónicas concretas que se desarrollan a continuación.&lt;/p&gt;

&lt;p&gt;Pero antes de hablar de Amazon Bedrock, vale la pena visualizar una arquitectura de referencia. La idea no es reemplazar los microservicios existentes, sino incorporar capacidades de IA como un servicio adicional dentro de una arquitectura desacoplada basada en eventos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2uhpbi1khuigt9498qbe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2uhpbi1khuigt9498qbe.png" alt=" " width="485" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Los usuarios consumen la aplicación mediante API Gateway.&lt;/li&gt;
&lt;li&gt;Los microservicios continúan siendo responsables de la lógica de negocio.&lt;/li&gt;
&lt;li&gt;EventBridge desacopla la comunicación con los componentes de IA.&lt;/li&gt;
&lt;li&gt;Amazon Bedrock procesa prompts y utiliza modelos fundacionales.&lt;/li&gt;
&lt;li&gt;Knowledge Base aporta contexto empresarial mediante embeddings.&lt;/li&gt;
&lt;li&gt;Amazon S3 almacena documentos, imágenes y otros datos utilizados por la IA.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚙️ &lt;strong&gt;El mapa de servicios Bedrock que importa en enterprise&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Antes de los patrones, es necesario tener claro qué hace cada pieza:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Servicio&lt;/th&gt;
&lt;th&gt;Rol en la arquitectura&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bedrock Runtime&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Invocación de modelos fundacionales (inference endpoint)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bedrock Knowledge Bases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;RAG gestionado — conecta nuestros datos a los modelos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bedrock Agents&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Orquestación de tareas multi-step con herramientas externas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bedrock Guardrails&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Control de contenido, PII redaction, topic filtering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bedrock Flows&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pipelines visuales de orquestación (serverless)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;El error más común que veo: tratar Bedrock como una API de chat. No lo es. Es una plataforma de inferencia enterprise con controles de red, identidad y gobierno propios.&lt;/p&gt;

&lt;p&gt;🔒 &lt;strong&gt;Patrón 1 — Acceso privado: Bedrock sin tocar internet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Este es el patrón que más preguntas genera en clientes enterprise, especialmente en banca y salud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;El problema:&lt;/strong&gt; por defecto, cuando una Lambda o un ECS task llama a Bedrock, el tráfico sale por internet (o por NAT Gateway si estamos en la VPC). Eso es inaceptable para workloads con datos sensibles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;La solución:&lt;/strong&gt; VPC Interface Endpoints vía AWS PrivateLink.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPC (subnet privada)
  └── ENI (Interface Endpoint)
        └── com.amazonaws.&amp;lt;region&amp;gt;.bedrock-runtime
              └── Bedrock Runtime API [sin salida a internet]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Con esto:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;El tráfico nunca sale de la red de AWS.&lt;/li&gt;
&lt;li&gt;No hay NAT Gateway charges por inferencia.&lt;/li&gt;
&lt;li&gt;Se puede aplicar VPC Endpoint Policies para restringir qué IAM principals puedan invocar qué modelos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💸 &lt;strong&gt;Trade-off de costo (no es gratis):&lt;/strong&gt; se elimina el data processing del NAT Gateway, pero el Interface Endpoint tiene su propio cargo por hora por AZ + data processing por GB. Con un volumen alto de inferencia sale a favor; a un volumen bajo y con pocos endpoints, se debe sacar cuentas antes de asumir que PrivateLink siempre es más barato.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Punto técnico importante:&lt;/strong&gt; Bedrock tiene dos endpoints separados que necesitamos configurar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;bedrock&lt;/code&gt; → para operaciones del control plane (listar modelos, configurar Knowledge Bases).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;bedrock-runtime&lt;/code&gt; → para inferencia.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Y desde febrero de 2026, también está disponible PrivateLink para el endpoint &lt;code&gt;bedrock-mantle&lt;/code&gt; (el nuevo motor de inferencia distribuida de AWS, compatible con OpenAI API spec). Esto es relevante si estamos migrando workloads que usan el SDK de OpenAI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VPC Endpoint Policy mínima recomendada:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Allow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Principal"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"AWS"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:iam::123456789012:role/bedrock-inference-role"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bedrock:InvokeModel"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-*"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Con esta política, solo el rol específico puede invocar modelos Claude. Cualquier otro principal — incluso con permisos IAM — es rechazado a nivel de endpoint.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Caveat que rompe en producción:&lt;/strong&gt; esta policy cubre invocación directa al &lt;code&gt;foundation-model&lt;/code&gt;. Pero en producción casi todo invoca vía cross-region inference profiles (&lt;code&gt;us.anthropic.claude-*&lt;/code&gt;, &lt;code&gt;eu.anthropic.claude-*&lt;/code&gt;) para throughput y resiliencia. El profile necesita permiso sobre dos tipos de recurso: el ARN del profile y el del foundation model en la región de origen y en cada región destino del profile. Si solo permitimos &lt;code&gt;foundation-model/*&lt;/code&gt;, la llamada vía profile nos devuelve un &lt;strong&gt;AccessDenied&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Allow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bedrock:InvokeModel"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:bedrock:us-east-1:123456789012:inference-profile/us.anthropic.claude-*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:bedrock:us-east-2::foundation-model/anthropic.claude-*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-*"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Son &lt;em&gt;4 ARNs = 1 inference profile + 3 foundation-models&lt;/em&gt;, uno por cada región a la que rutea el profile us (N. Virginia, Ohio, Oregon). Para global CRIS, además se suma el FM sin región: arn:aws:bedrock:::foundation-model/....&lt;/p&gt;

&lt;p&gt;🧩 &lt;strong&gt;Patrón 2 — RAG privado: Knowledge Bases sin exponer nuestro datos&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El patrón RAG (Retrieval-Augmented Generation) es el más usado para integrar IA con datos enterprise existentes. La pregunta arquitectónica clave es:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;¿Dónde viven los embeddings y quién controla el acceso?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Con Bedrock Knowledge Bases:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;S3 (datos source) 
  → Bedrock Knowledge Bases (embedding + vector store)
    → OpenSearch Serverless (índice vectorial, en tu cuenta)
      → Bedrock Runtime (retrieval + inferencia)
        → Tu aplicación
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Lo que importa para enterprise:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Los datos nunca salen de la cuenta AWS.&lt;/li&gt;
&lt;li&gt;El modelo fundacional no se re-entrena con los datos propios (Bedrock lo garantiza contractualmente).&lt;/li&gt;
&lt;li&gt;El vector store (OpenSearch Serverless) es accesible de forma privada vía VPC endpoint, con acceso controlado por data access policies + IAM.&lt;/li&gt;
&lt;li&gt;Se puede aplicar metadata filtering para segmentar qué datos ve cada usuario o rol.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Antipatrón frecuente:&lt;/strong&gt; indexar todo el lake en el vector store sin segmentación. &lt;br&gt;
&lt;strong&gt;Resultado:&lt;/strong&gt; el modelo responde con información de un tenant usando contexto de otro. Necesitamos filtros por &lt;code&gt;tenant_id&lt;/code&gt;, &lt;code&gt;classification_level&lt;/code&gt; o lo que corresponda a nuestro modelo de datos.&lt;/p&gt;

&lt;p&gt;🛡️ &lt;strong&gt;Patrón 3 — Guardrails como capa de control transversal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bedrock Guardrails no es solo un filtro de contenido. En enterprise, es el mecanismo de gobierno de IA.&lt;/p&gt;

&lt;p&gt;Lo que hace:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Content filtering: bloquea hasta el 88% de contenido dañino según AWS.&lt;/li&gt;
&lt;li&gt;PII redaction: enmascara datos sensibles en prompts y respuestas.&lt;/li&gt;
&lt;li&gt;Topic denial: define temas que el modelo no puede responder (ej: asesoría legal o médica).&lt;/li&gt;
&lt;li&gt;Prompt attack detection: protección contra jailbreaks e inyecciones.&lt;/li&gt;
&lt;li&gt;Grounding checks: detecta alucinaciones comparando contra contexto conocido.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Lo que cambió en 2025 y es crítico para enterprise:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Desde marzo de 2025, Guardrails soporta IAM policy-based enforcement. Esto significa que se puede configurar una condición IAM (bedrock:GuardrailIdentifier) que rechaza cualquier llamada a InvokeModel que no incluya un guardrail. Ojo con el matiz: IAM solo bloquea la ausencia del guardrail — la app igual tiene que pasarlo en cada llamada; lo que se gana es que ningún equipo pueda invocar el modelo "pelado".&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Condition"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"StringEquals"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"bedrock:GuardrailIdentifier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:bedrock:us-east-1:123456789012:guardrail/abc123"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En la práctica, se puede forzar a nivel IAM que toda invocación pase por un guardrail vía SCP + condición. Para un ambiente multi-cuenta (que es el estándar enterprise), esto es el equivalente al aws:PrincipalOrgID condition pero para gobierno de IA.&lt;/p&gt;

&lt;p&gt;🔄 &lt;strong&gt;Actualización (abril 2026): enforcement nativo cross-account&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El enfoque anterior funciona, pero tiene un techo: depende de que la app pase el guardrail en cada llamada. Desde abril de 2026, con la disponibilidad general de los cross-account safeguards, se puede especificar un guardrail en una nueva Amazon Bedrock policy dentro de la cuenta de management de la organización, que enforcea automáticamente los safeguards configurados en todas las entidades miembro para cada invocación de modelo en Bedrock.&lt;/p&gt;

&lt;p&gt;La diferencia arquitectónica es la clave: cualquier llamada de inferencia en esas cuentas pasa por los filtros centralizados sin tocar la configuración de cada cuenta, y sin que la app pase nada — las cuentas miembro no pueden sobreescribirlo. El guardrail deja de ser una responsabilidad de la aplicación y pasa a ser un baseline de seguridad inmutable, como un SCP (técnicamente es un tipo de política declarativa nuevo en Organizations, no un SCP, pero hereda igual).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"bedrock"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"guardrail_inference"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"us-east-1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"config_1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"identifier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"@@assign"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:bedrock:us-east-1:111122223333:guardrail/abc123:1"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"selective_content_guarding"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"messages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"@@assign"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"comprehensive"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"model_enforcement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"included_models"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"@@assign"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"ALL"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"excluded_models"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"@@assign"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"amazon.titan-embed-text-v2:0"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dos cosas que no podemos ignorar antes de llevarlo a producción:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ARN inválido = outage&lt;/strong&gt;. Un ARN incorrecto o inválido en la policy no falla de forma elegante: causa violaciones de política y bloquea el uso de los modelos para inferencia en las cuentas afectadas. Tratamos el ARN del guardrail como infra config: versionado, peer-reviewed, probado en una OU de no-prod antes de tocar producción.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;comprehensive&lt;/em&gt; es el único default sensato en regulado. El modo &lt;em&gt;comprehensive&lt;/em&gt; evalúa todo el contenido sin importar cómo lo taggee la app; &lt;em&gt;selective&lt;/em&gt; confía en el tagging del caller. En banca o salud, selective es una optimización de performance, no un punto de partida.&lt;/p&gt;

&lt;p&gt;💸 &lt;strong&gt;Patrón 4 — Control de costos de inferencia&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Este es el antipatrón que más explota en producción y menos se habla en los blogs de arquitectura.&lt;/p&gt;

&lt;p&gt;El costo de Bedrock es por token (input + output). En arquitecturas enterprise sin control, el consumo puede crecer exponencialmente por tres razones:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Contextos sin límite:&lt;/strong&gt; prompts que incluyen todo el historial de conversación sin truncar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RAG sin relevance threshold:&lt;/strong&gt; recuperar chunks irrelevantes que agrandan el prompt sin aportar calidad.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modelos sobredimensionados:&lt;/strong&gt; usar Claude Opus para tasks que Claude Haiku resuelve igual.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Decisión de modelo por tipo de tarea:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Modelo recomendado&lt;/th&gt;
&lt;th&gt;Justificación&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Clasificación, routing, extracción simple&lt;/td&gt;
&lt;td&gt;Claude Haiku / Nova Micro&lt;/td&gt;
&lt;td&gt;Latencia baja, costo mínimo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RAG, Q&amp;amp;A sobre documentos&lt;/td&gt;
&lt;td&gt;Claude Sonnet / Nova Lite&lt;/td&gt;
&lt;td&gt;Balance calidad/costo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Razonamiento complejo, análisis legal/financiero&lt;/td&gt;
&lt;td&gt;Claude Opus / Nova Pro&lt;/td&gt;
&lt;td&gt;Justifica el costo por la complejidad&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Modelos vigentes a junio 2026.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Control arquitectónico:&lt;/strong&gt; no debemos exponer el modelo directamente a la aplicación. Se debe interponer una capa de abstracción (un servicio interno o una Step Function) que:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Seleccione el modelo según el tipo de request.&lt;/li&gt;
&lt;li&gt;Aplique límites de tokens por usuario/tenant.&lt;/li&gt;
&lt;li&gt;Registre consumo en CloudWatch para chargebacks internos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔁 &lt;strong&gt;Patrón 5 — Desacoplamiento: la AI Layer como servicio interno&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El error de acoplamiento es el más difícil de corregir después.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxl9ppzxrn9pxiusf1ony.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxl9ppzxrn9pxiusf1ony.png" alt=" " width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El AI Gateway centraliza las responsabilidades transversales. La línea punteada roja muestra el antipatrón: aplicación llamando Bedrock directamente, sin gobernanza.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;❌ Antipatrón:
App → Bedrock (directo, hardcodeado)

✅ Patrón correcto:
App → AI Gateway (interno) → Bedrock
                ↑
         [routing, auth, logging, cost control, fallback]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El AI Gateway interno puede ser tan simple como una Lambda con API Gateway, o tan complejo como un servicio ECS dedicado. Lo importante es que centraliza:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Autenticación:&lt;/strong&gt; quién puede invocar IA y con qué modelo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logging:&lt;/strong&gt; cada request/response auditado en S3 (requerimiento regulatorio en banca).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fallback:&lt;/strong&gt; si Bedrock throttlea, ¿qué pasa? ¿error 500 o respuesta degradada?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observabilidad:&lt;/strong&gt; latencia de inferencia, tokens consumidos, tasa de rechazo por guardrails.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AI Gateway sigue aportando valor aunque contemos con este enforcement nativo — el gateway nos da routing, cost control, fallback y logging que el org policy no cubre.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Sin esta capa, cuando el CTO pregunte &lt;em&gt;"¿cuánto nos costó la IA este mes por área de negocio?"&lt;/em&gt; — no vamos a tener respuesta.&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;Insight clave (nivel arquitecto)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;La integración de Bedrock en enterprise no es un problema de IA. Es un problema de arquitectura de red, identidad y gobierno — los mismos que ya se resolvieron para otros servicios AWS.&lt;/p&gt;

&lt;p&gt;La diferencia es que los errores en IA tienen dos dimensiones nuevas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Costos que escalan con el uso&lt;/strong&gt; (no con la infraestructura).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Riesgos de compliance&lt;/strong&gt; si los datos sensibles tocan el modelo sin control.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tratar Bedrock como otro servicio managed de AWS — con los mismos patrones de VPC, IAM, logging y abstracción de capas — es exactamente el enfoque correcto.&lt;/p&gt;

&lt;p&gt;🌎 &lt;strong&gt;Antipatrones consolidados&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;AI washing:&lt;/strong&gt; integrar Bedrock sin caso de uso medible. Si no podemos definir una métrica de éxito antes de construir, no construyamos.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;Inferencia acoplada:&lt;/strong&gt; llamar Bedrock directamente desde la app sin abstracción. Imposible de gobernar, imposible de migrar de modelo.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;RAG sin segmentación:&lt;/strong&gt; todos los datos en el mismo índice vectorial. Riesgo de privacidad entre tenants o clasificaciones.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;Sin observabilidad de modelos:&lt;/strong&gt; métricas de aplicación sin métricas de inferencia. No sabemos si el modelo está respondiendo bien, solo si el endpoint está up.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;Modelo único para todo:&lt;/strong&gt; el mismo modelo para clasificación simple y análisis complejo. El costo de inferencia explota sin ganancia de calidad.&lt;/p&gt;

&lt;p&gt;🔧 &lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;La pregunta que más escucho es: &lt;em&gt;"¿Podemos agregar IA a nuestra arquitectura existente?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;La respuesta correcta no es técnica. Es arquitectónica:&lt;/p&gt;

&lt;p&gt;✔️ ¿Dónde estan tus datos y quién controla el acceso?&lt;br&gt;
✔️ ¿Existe una capa de abstracción que centralice gobierno y costos?&lt;br&gt;
✔️ ¿La red permite inferencia privada sin exponer datos sensibles a internet?&lt;/p&gt;

&lt;p&gt;Las empresas que integren IA correctamente no serán las que usen los modelos más potentes. Serán las que resuelvan primero el problema de datos, red y gobierno — y construyan la capa de inferencia encima de eso.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy learning on AWS 🚀&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>bedrock</category>
      <category>networking</category>
      <category>architecture</category>
    </item>
    <item>
      <title>🌐Arquitectura de red para Multi-Región en AWS: latencia, failover y coste.</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Mon, 08 Jun 2026 12:45:09 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/arquitectura-de-red-para-multi-region-en-aws-latencia-failover-y-coste-pf3</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/arquitectura-de-red-para-multi-region-en-aws-latencia-failover-y-coste-pf3</guid>
      <description>&lt;p&gt;🧠 &lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;La mayoría de arquitecturas multi-región en AWS fallan por tres razones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subestiman la latencia entre regiones.&lt;/li&gt;
&lt;li&gt;Sobreestiman el valor del active-active.&lt;/li&gt;
&lt;li&gt;Descubren demasiado tarde el impacto del tráfico cross-region en la factura.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Diseñar multi-región no es replicar infraestructura.&lt;br&gt;
Es tomar decisiones sobre:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Consistencia.&lt;/li&gt;
&lt;li&gt;Routing global.&lt;/li&gt;
&lt;li&gt;Recuperación.&lt;/li&gt;
&lt;li&gt;Coste operativo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Y en la práctica, no es un problema de compute…&lt;br&gt;
👉 es un problema de red y datos.&lt;/p&gt;

&lt;p&gt;🧭 &lt;strong&gt;¿Cuándo realmente necesitas Multi-Region?&lt;/strong&gt;&lt;br&gt;
Primero, rompamos un mito:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Multi-AZ no es Multi-Region.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Muchas aplicaciones empresariales:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cumplen SLA con Multi-AZ&lt;/li&gt;
&lt;li&gt;Usan backups cross-region&lt;/li&gt;
&lt;li&gt;No necesitan más complejidad&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Multi-Region tiene sentido cuando:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Necesitas RTO cercano a cero&lt;/li&gt;
&lt;li&gt;Tienes usuarios distribuidos globalmente&lt;/li&gt;
&lt;li&gt;Hay requisitos regulatorios/geográficos&lt;/li&gt;
&lt;li&gt;El downtime tiene impacto crítico en el negocio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Si no tienes estos requisitos, probablemente no necesitas multi-región.&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;El verdadero desafío: la red&lt;/strong&gt;&lt;br&gt;
Cuando pasas a multi-región, aparecen problemas reales:&lt;br&gt;
🔹 Latencia&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RTT entre regiones: 50–200 ms&lt;/li&gt;
&lt;li&gt;Impacta replicación, APIs y UX&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 Replicación de datos&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Síncrona → prácticamente inviable&lt;/li&gt;
&lt;li&gt;Asíncrona → introduce lag&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 DNS y routing&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Failover dependiente de TTL&lt;/li&gt;
&lt;li&gt;Nunca es instantáneo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 Coste de red&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tráfico inter-región = $$$&lt;/li&gt;
&lt;li&gt;Principal driver oculto de coste&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Insight clave:&lt;/p&gt;

&lt;p&gt;Multi-Region es más un problema de red que de infraestructura.&lt;/p&gt;

&lt;p&gt;🏗️ &lt;strong&gt;Patrones de arquitectura Multi-Region&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🔵 Active-Passive (recomendado en la mayoría de casos)&lt;br&gt;
Incluye:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backup &amp;amp; Restore&lt;/li&gt;
&lt;li&gt;Pilot Light&lt;/li&gt;
&lt;li&gt;Warm Standby&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Ventajas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Menor coste&lt;/li&gt;
&lt;li&gt;Menor complejidad&lt;/li&gt;
&lt;li&gt;Más fácil de operar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;❌ Desventajas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mayor RTO&lt;/li&gt;
&lt;li&gt;Requiere automatización de failover&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Ideal cuando el negocio tolera minutos de recuperación.&lt;/p&gt;

&lt;p&gt;🟣 Active-Active&lt;br&gt;
Ambas regiones sirven tráfico simultáneamente.&lt;/p&gt;

&lt;p&gt;✅ Ventajas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Latencia global baja&lt;/li&gt;
&lt;li&gt;RTO cercano a cero&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;❌ Desventajas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complejidad extrema&lt;/li&gt;
&lt;li&gt;Consistencia distribuida&lt;/li&gt;
&lt;li&gt;Coste elevado&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Realidad:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Muchas arquitecturas active-active están sobredimensionadas para el problema que resuelven.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Y más importante:&lt;/p&gt;

&lt;p&gt;Active-Active sin estrategia de consistencia no es resiliencia, es incertidumbre distribuida.&lt;/p&gt;

&lt;p&gt;🌍 &lt;strong&gt;Routing Global: dónde se gana o se pierde la arquitectura&lt;/strong&gt;&lt;br&gt;
🔹 Route 53&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Failover → DR&lt;/li&gt;
&lt;li&gt;Latency-based → apps globales&lt;/li&gt;
&lt;li&gt;Weighted → migraciones&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 AWS Global Accelerator&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anycast sobre backbone AWS&lt;/li&gt;
&lt;li&gt;Failover rápido (&amp;lt;30s)&lt;/li&gt;
&lt;li&gt;Ideal para TCP/UDP críticos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 CloudFront&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Edge caching (600+ PoPs)&lt;/li&gt;
&lt;li&gt;Reduce necesidad de multi-región en muchos casos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Insight senior:&lt;/p&gt;

&lt;p&gt;Muchas arquitecturas multi-región deberían empezar por CloudFront, no por replicar regiones.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;El "Secreto" del Failover de &amp;lt;30s: Anycast vs. Caché DNS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Muchos arquitectos asumen que Route 53 y AWS Global Accelerator hacen lo mismo porque ambos manejan routing basado en latencia o failover. &lt;strong&gt;Error grave de diseño.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;El problema de Route 53:&lt;/strong&gt; Depende de registros DNS y del TTL (Time to Live). Si cambias el registro para apuntar a la región secundaria, tienes que esperar a que los resolvers de los ISPs del cliente borren su caché. Si un ISP ignora tu TTL bajo (lo cual pasa constantemente en producción), tus usuarios seguirán intentando ir a la región caída.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;La ventaja de Global Accelerator:&lt;/strong&gt; Te da 2 IPs estáticas &lt;strong&gt;Anycast&lt;/strong&gt; globales. El tráfico entra a la red troncal de AWS en el Edge Location más cercano al usuario. Si una región falla, Global Accelerator desvía el tráfico a nivel de capa de transporte (TCP/UDP proxy) dentro de la propia red de AWS, redirigiéndolo instantáneamente a los ALBs saludables de la otra región. &lt;strong&gt;El cliente nunca cambia de IP, por ende, el caché del DNS no importa.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4cvhaeo5ihjlb7t92ta6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4cvhaeo5ihjlb7t92ta6.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💸 &lt;strong&gt;Coste real de Multi-Región&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aquí es donde muchas arquitecturas fallan.&lt;br&gt;
Costes ocultos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tráfico inter-región ($0.02–0.08/GB)&lt;/li&gt;
&lt;li&gt;Replicación de bases de datos&lt;/li&gt;
&lt;li&gt;Infraestructura duplicada&lt;/li&gt;
&lt;li&gt;NAT Gateway por región&lt;/li&gt;
&lt;li&gt;Health checks + observabilidad&lt;/li&gt;
&lt;li&gt;Entornos idle (warm standby)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Ejemplo real:&lt;/p&gt;

&lt;p&gt;En una arquitectura LATAM, el tráfico inter-región incrementó el coste total en ~34% sin mejorar la latencia percibida significativamente.&lt;/p&gt;

&lt;p&gt;👉 Conclusión:&lt;/p&gt;

&lt;p&gt;Estrategias Multi-región ("con &amp;gt; 500 GB/mes de tráfico inter-región") mal diseñadas, pueden ser 3x–4x veces más costosas.&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;Estrategias de datos (el verdadero problema)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El compute escala fácil.&lt;br&gt;
Los datos, no.&lt;/p&gt;

&lt;p&gt;🔹 Comparativa rápida&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff8wgjswvhwruvx4dzkbx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff8wgjswvhwruvx4dzkbx.png" alt=" " width="800" height="195"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;_"Aurora parece 'peor' por el failover manual, pero su lag &amp;lt;1s la hace más predecible para cargas transaccionales que DynamoDB con escrituras concurrentes en ambas regiones."&lt;br&gt;
_&lt;br&gt;
&lt;strong&gt;Problemas reales:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conflictos de escritura&lt;/li&gt;
&lt;li&gt;Lag de replicación&lt;/li&gt;
&lt;li&gt;Datos inconsistentes entre regiones&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cuando duplicas tu infraestructura en otra región para failover, la red es el problema fácil; el verdadero reto son tus bases de datos. Aquí hay dos patrones claros y sus trade-offs reales en AWS:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Active-Active con DynamoDB Global Tables:&lt;/strong&gt; Proporciona replicación totalmente administrada con latencias de replicación típicamente sub-segundo. Sin embargo, opera bajo el modelo de &lt;strong&gt;consistencia eventual&lt;/strong&gt;. Si tienes escrituras concurrentes en ambas regiones sobre el mismo ítem, aplica la regla &lt;em&gt;Last-Writer-Wins&lt;/em&gt;. Si tu aplicación no es idempotente, vas a corromper datos de negocio.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Active-Passive con Aurora Global Database:&lt;/strong&gt; Replica los datos a nivel del storage cluster físico con un lag menor a 1 segundo sin impactar el performance de la base de datos principal. Es ideal para estrategias de &lt;em&gt;Warm Standby&lt;/em&gt;, pero ten en cuenta el RTO: en caso de failover, tu plano de control o aplicación debe promover explícitamente el clúster secundario a modo de Lectura/Escritura, lo que requiere automatización (vía AWS SDK o EventBridge).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🚨 &lt;strong&gt;Errores comunes (basado en producción)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TTL DNS demasiado alto&lt;/li&gt;
&lt;li&gt;No probar el failover&lt;/li&gt;
&lt;li&gt;Asumir que Multi-AZ es suficiente para DR&lt;/li&gt;
&lt;li&gt;Ignorar replication lag&lt;/li&gt;
&lt;li&gt;Diseñar active-active “por moda”&lt;/li&gt;
&lt;li&gt;No definir RTO/RPO con negocio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 El peor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Diseñar multi-región sin entender la operación diaria.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🚫 &lt;strong&gt;Anti-patterns que veo frecuentemente&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Active-Active con bases de datos sin estrategia de conflicto.&lt;/li&gt;
&lt;li&gt;Failover DNS con TTL &amp;gt; 300s.&lt;/li&gt;
&lt;li&gt;Replicación global “porque sí”.&lt;/li&gt;
&lt;li&gt;NAT Gateway como bottleneck multi-región.&lt;/li&gt;
&lt;li&gt;Endpoints Regionales Hardcodeados.&lt;/li&gt;
&lt;li&gt;Split-Brain por Health Checks Invertidos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;"Split-Brain por Health Checks Invertidos: si configuras un health check que marca la región secundaria como unhealthy cuando la primaria está caída (por dependencia cruzada), ambas regiones se desactivan simultáneamente. He visto esto en producción con Route 53 y ALBs que hacen health check a endpoints cross-region."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;📈 &lt;strong&gt;Evolución recomendada&lt;/strong&gt;&lt;br&gt;
La mayoría de workloads deberían avanzar así:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-AZ&lt;/li&gt;
&lt;li&gt;Backup cross-region&lt;/li&gt;
&lt;li&gt;Warm standby&lt;/li&gt;
&lt;li&gt;(solo si realmente aplica) Active-Active&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 No empieces por el nivel más complejo.&lt;/p&gt;

&lt;p&gt;🧭 &lt;strong&gt;Conclusión&lt;/strong&gt;&lt;br&gt;
Multi-región no es un objetivo técnico.&lt;br&gt;
Es una decisión de negocio basada en:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;disponibilidad&lt;/li&gt;
&lt;li&gt;experiencia de usuario&lt;/li&gt;
&lt;li&gt;tolerancia al riesgo&lt;/li&gt;
&lt;li&gt;coste&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Y sobre todo:&lt;/p&gt;

&lt;p&gt;Diseñar resiliencia no es evitar fallos…&lt;br&gt;
es asumir que ocurrirán y construir para recuperarse.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Takeaway final:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Una arquitectura multi-región sin failover automatizado y probado no es alta disponibilidad… es alta esperanza.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy learning on AWS&lt;/strong&gt; 🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>networking</category>
      <category>cloudarchitecture</category>
      <category>multiregion</category>
    </item>
    <item>
      <title>🧠 Plano Físico vs Plano Funcional en AWS Networking: cómo los arquitectos senior resuelven lo que otros no ven.</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Wed, 27 May 2026 23:23:46 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/plano-fisico-vs-plano-funcional-en-aws-networking-como-los-arquitectos-senior-resuelven-lo-que-32f8</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/plano-fisico-vs-plano-funcional-en-aws-networking-como-los-arquitectos-senior-resuelven-lo-que-32f8</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El túnel VPN está UP. El attachment del TGW existe. El BGP está establecido. Y el ping no llega.&lt;/p&gt;

&lt;p&gt;Si alguna vez pasaste más de 30 minutos en ese escenario, el problema probablemente no estaba en el enlace — estaba en que estabas buscando en el plano equivocado.&lt;/p&gt;

&lt;p&gt;Hay una confusión que aparece constantemente en diseños de conectividad cloud, en reviews de arquitectura y en conversaciones con equipos técnicos muy capaces: mezclar el plano físico con el plano funcional. No es una confusión menor. Es la raíz de decisiones de diseño equivocadas, de troubleshooting que tarda horas en lugar de minutos, y de arquitecturas que funcionan… hasta que no funcionan.&lt;/p&gt;

&lt;p&gt;En un post anterior hablé de patrones de VPC: hub-spoke, mesh, multi-account. Hoy vamos más profundo. Vamos a separar conscientemente cómo está construida la red de qué puede hacer esa red — y por qué esa separación cambia la forma en que diseñas.&lt;/p&gt;

&lt;p&gt;🔴 &lt;strong&gt;Preámbulo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El problema es que ese nivel de imprecisión, tolerable en conversaciones informales, rompe diseños en producción.&lt;/p&gt;

&lt;p&gt;Un equipo puede pasar semanas debatiendo si una arquitectura "funciona" porque la mitad del equipo está pensando en topología física y la otra mitad en flujos funcionales. El diagrama muestra lo mismo para los dos grupos. Las conclusiones son distintas.&lt;/p&gt;

&lt;p&gt;Ese es el momento en que la distinción entre plano físico y plano funcional deja de ser académica.&lt;/p&gt;

&lt;p&gt;🗺️ &lt;strong&gt;Los dos planos: definición operativa&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Antes de los diagramas, la definición que usamos en la práctica:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plano físico (o de infraestructura):&lt;/strong&gt; los componentes que AWS provisiona, las conexiones físicas o lógicas entre ellos, y las restricciones que vienen de la plataforma. Aquí viven: puertos, VLANs, VIFs, attachments, instancias, interfaces de red. Son hechos, no decisiones.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyhx6k44o2ax7swmxgcy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyhx6k44o2ax7swmxgcy.png" alt=" " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Este diagrama muestra algo que casi ningún curso de certificación explica con suficiente claridad: la VPC no tiene un cable conectado. Lo que tiene son route tables con rutas propagadas desde los componentes de terminación.&lt;/p&gt;

&lt;p&gt;Eso cambia completamente cómo razonas sobre transitividad, sobre fallo de conectividad, y sobre dónde aplicar políticas de seguridad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plano funcional (qué puede hablar con qué):&lt;/strong&gt; el comportamiento resultante — es una capa de abstracción superior. Describe flujos de comunicación permitidos, no endpoints físicos. Es la respuesta a "¿puede el servidor A llegar al servidor B?" — no a "¿dónde termina el túnel?".&lt;/p&gt;

&lt;p&gt;El problema ocurre cuando tratamos hechos del plano físico como si fueran decisiones del plano funcional, o viceversa.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Y aquí está la trampa:&lt;/strong&gt; el plano físico no garantiza el plano funcional.&lt;/p&gt;

&lt;p&gt;Tener un VGW adjunto a una VPC no significa que el tráfico fluye. Necesitas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Route tables con las rutas correctas propagadas&lt;/li&gt;
&lt;li&gt;Security Groups y NACLs que permitan el tráfico&lt;/li&gt;
&lt;li&gt;Políticas IAM si hay servicios en juego&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Y si hay inspección: un diseño de routing asimétrico explícito&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6xnznq27hmv2dagxl9sn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6xnznq27hmv2dagxl9sn.png" alt=" " width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Este es el punto donde la mayoría de los incidentes de conectividad tienen su causa raíz: el enlace físico está activo, el VGW está adjunto, el TGW tiene el attachment — y sin embargo el tráfico no llega. Porque alguna de las capas funcionales está bloqueando.&lt;/p&gt;

&lt;p&gt;🔌 &lt;strong&gt;El caso concreto: VPN y Direct Connect&lt;/strong&gt;&lt;br&gt;
Este es el ejemplo más frecuente donde la confusión aparece.&lt;br&gt;
Cuando alguien provisiona una VPN Site-to-Site en AWS, la descripción natural es "conecté mi datacenter a mi VPC". Funcionalmente eso es correcto. Físicamente, no.&lt;/p&gt;

&lt;p&gt;Lo que ocurrió realmente:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;AWS creó un &lt;strong&gt;Virtual Private Gateway (VGW)&lt;/strong&gt; — El VGW es un componente de borde administrado que actúa como el agregador de terminación de túneles IPsec para la VPC. No reside dentro del direccionamiento CIDR de tus subnets, sino que se inyecta como un target lógico en el sistema de enrutamiento implícito de la VPC..&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;El VGW se asoció a tu VPC.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Con route propagation activada, las rutas del lado on-premise aparecen en las route tables de tus subnets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;El tráfico entra al VGW y AWS lo enruta internamente hacia las instancias.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;La VPC nunca "ve" la VPN. Ve rutas. Esa distinción importa.&lt;/p&gt;

&lt;p&gt;Con &lt;strong&gt;Direct Connect&lt;/strong&gt; hay una capa adicional: el DX termina físicamente en una ubicación de colocation. Desde ahí, un &lt;strong&gt;Virtual Interface (VIF)&lt;/strong&gt; — que puede ser Private, Public o Transit — se asocia al VGW o al TGW. El VIF es el objeto que cruza el plano físico al plano lógico de AWS.&lt;/p&gt;

&lt;p&gt;Segundo diagrama — el flujo real de una conexión híbrida:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyq76j3pxn1ce49ejbplz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyq76j3pxn1ce49ejbplz.png" alt=" " width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚫 &lt;strong&gt;Por qué VPN y Peering no son transitivos — y por qué importa entenderlo bien.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aquí es donde la confusión de planos genera errores de diseño reales.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VPC Peering no es transitivo por diseño del data plane&lt;/strong&gt;, no por una limitación arbitraria. Cuando una instancia en la VPC A intenta alcanzar la VPC C pasando por la VPC B, el sustrato SDN de AWS (el servicio de mapeo del hipervisor) evalúa el paquete. Como el encapsulado de un Peering es estrictamente punto a punto entre las VPCs involucradas, el data plane no permite re-encapsular o encadenar un segundo salto de peering para proteger la red de bucles (packet looping). El paquete simplemente se descarta en el origen.&lt;/p&gt;

&lt;p&gt;Lo mismo con VPN: el VGW termina en esa VPC. No tiene visibilidad ni capacidad de reenvío hacia otra VPC pereada. El tráfico que entra por la VPN existe en el contexto de esa VPC únicamente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pero esta restricción vive en el plano físico (data plane de AWS), no en el plano funcional.&lt;/strong&gt; &lt;em&gt;Y ahí está la clave&lt;/em&gt;: si introduces un elemento que opera en capa 3 dentro de la VPC — un appliance, un NVA, una instancia con IP forwarding — ese elemento sí puede recibir el tráfico y reenviarlo activamente. No está rompiendo ninguna regla de AWS; está operando en un plano distinto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; el Source/Destination Check, si se olvida deshabilitar este atributo en la ENI del appliance, el plano funcional se rompe por completo, porque el hipervisor de AWS descarta cualquier paquete cuyo IP de origen o destino no coincida con la ENI de la instancia. Este es el ejemplo perfecto de interacción entre ambos planos.&lt;/p&gt;

&lt;p&gt;Tercer diagrama — transitividad física vs funcional:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4mbqohwghiv7n0vu53q8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4mbqohwghiv7n0vu53q8.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Un matiz técnico importante en un diseño de arquitectura.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Un matiz que merece atención especial: en una arquitectura hub-spoke, el TGW resuelve el plano físico — centraliza el routing entre VPCs y hacia on-premise. Pero el TGW no inspecciona tráfico. Para eso necesitas una Security VPC que opere en el plano funcional — con Network Firewall, appliances o Gateway Load Balancer. Son dos capas distintas resolviendo problemas distintos, y confundirlas lleva a diseños donde el tráfico fluye pero nadie lo está viendo.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Porque:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TGW sí crea una topología hub-and-spoke de routing.&lt;br&gt;
Pero no necesariamente concentra servicios funcionales.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Este patrón&lt;/strong&gt; — cómo separar el plano de conectividad del plano de seguridad en una arquitectura hub-spoke — tiene suficiente profundidad para un artículo propio. Lo cubro en el siguiente post.&lt;/p&gt;

&lt;p&gt;🟢 &lt;strong&gt;Cómo aplicar esta separación en la práctica&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;La abstracción no es solo un ejercicio académico. Tiene consecuencias directas en cómo diseñas, debuggeas y explicas arquitecturas.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cuando diseñas:&lt;/strong&gt;&lt;br&gt;
Define primero el plano funcional — qué necesita hablar con qué, con qué nivel de inspección, con qué latencia. Luego elige los componentes físicos que materializan esos flujos. Hacerlo al revés (elegir TGW o peering antes de saber qué flujos necesitas) es lo que genera rediseños costosos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cuando debuggeas conectividad:&lt;/strong&gt;&lt;br&gt;
Separa mentalmente los dos planos y recórrelos en orden.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Plano físico primero:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Si usas VGW: ¿está adjunto a la VPC correcta? ¿Hay route propagation habilitada en las route tables de las subnets relevantes?&lt;/li&gt;
&lt;li&gt;Si usas TGW: ¿el attachment está en estado available? ¿La route table del TGW tiene la ruta hacia el destino? ¿El dominio de routing es el correcto?&lt;/li&gt;
&lt;li&gt;Si usas DX: ¿el VIF está en estado available? ¿El BGP session está established? ¿Se están recibiendo prefijos del lado on-premise?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Plano funcional después:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;¿La route table de la subnet tiene la ruta con el target correcto (VGW, TGW, o ENI del appliance)?&lt;/li&gt;
&lt;li&gt;¿El NACL de la subnet permite el tráfico en ambas direcciones? Recuerda: es stateless — inbound y outbound deben estar explícitamente permitidos.&lt;/li&gt;
&lt;li&gt;¿El Security Group de la instancia destino permite el puerto y protocolo desde el CIDR o SG de origen?&lt;/li&gt;
&lt;li&gt;Si hay un appliance en el path: ¿tiene el Source/Destination Check deshabilitado en su ENI?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La herramienta nativa para recorrer estas capas es VPC Reachability Analyzer — trabaja sobre el plano funcional completo y te indica exactamente en qué capa se rompe el flujo, sin necesidad de enviar tráfico real.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cuando explicas a un equipo:&lt;/strong&gt;&lt;br&gt;
Cuando alguien dice "la VPN no llega a la VPC", antes de responder, pregunta: ¿está hablando del enlace físico (¿está el VGW configurado?) o del flujo funcional (¿llega el paquete al destino?)? La respuesta es distinta en cada caso.&lt;/p&gt;

&lt;p&gt;🧭 &lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Separar el plano físico del plano funcional no es un ejercicio de semántica.&lt;/p&gt;

&lt;p&gt;Es la diferencia entre diagnosticar un incidente de conectividad en 10 minutos o en 3 horas. Entre diseñar una arquitectura que aguante el crecimiento o una que requiera rediseño cuando aparece el primer requisito de inspección de tráfico. Entre tener una conversación técnica productiva con tu equipo o una donde todos hablan de cosas distintas con las mismas palabras.&lt;/p&gt;

&lt;p&gt;El plano físico te dice dónde terminan los cables. El plano funcional te dice si el paquete llega. Necesitas ambos — y necesitas saber en cuál estás en cada momento del diseño.&lt;/p&gt;

&lt;p&gt;El patrón para aplicar esto:&lt;br&gt;
✔ &lt;strong&gt;Diseñar:&lt;/strong&gt; empieza por el plano funcional (flujos requeridos) → elige los componentes físicos que los materialicen&lt;br&gt;
✔ &lt;strong&gt;Debuggear:&lt;/strong&gt; valida el plano físico primero → luego recorre las capas funcionales en orden&lt;br&gt;
✔ &lt;strong&gt;Comunicar:&lt;/strong&gt; antes de responder cualquier pregunta de conectividad, identifica en qué plano está la pregunta&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy learning on AWS&lt;/strong&gt; 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🧭Diseñando VPCs en AWS: patrones reales (hub-spoke, mesh, multi-account).</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Mon, 18 May 2026 23:39:23 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/disenando-vpcs-en-aws-patrones-reales-hub-spoke-mesh-multi-account-3953</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/disenando-vpcs-en-aws-patrones-reales-hub-spoke-mesh-multi-account-3953</guid>
      <description>&lt;p&gt;Cuando se diseñan arquitecturas en AWS, uno de los errores más comunes es pensar en la &lt;strong&gt;VPC como un componente técnico aislado.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pero en la práctica, la VPC es:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;La base sobre la que se construyen la seguridad, la conectividad y la escalabilidad de todo el sistema.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Y aquí es donde muchos diseños empiezan a romperse…&lt;br&gt;
&lt;strong&gt;no el día uno, sino cuando la plataforma crece.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🧭 &lt;strong&gt;Antes de hablar de patrones hablemos de el error más común&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;La mayoría de arquitecturas empiezan así:&lt;/p&gt;

&lt;p&gt;✔️ Una sola VPC&lt;br&gt;
✔️ Subnets públicas y privadas&lt;br&gt;
✔️ Un NAT Gateway&lt;br&gt;
✔️ Todo funcionando… al inicio&lt;/p&gt;

&lt;p&gt;Pero cuando aparecen múltiples equipos, múltiples entornos (dev, qa, prod), requisitos de seguridad estrictos o conectividad híbrida, &lt;strong&gt;esa VPC se convierte en un cuello de botella&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🧩 &lt;strong&gt;Entonces… ¿cómo se diseñan VPCs en el mundo real?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No hay una única forma correcta.&lt;br&gt;
Pero sí hay patrones que aparecen constantemente en producción.&lt;/p&gt;

&lt;p&gt;Aquí los más relevantes:&lt;/p&gt;

&lt;p&gt;🔵 &lt;strong&gt;1. Hub-and-Spoke (el más usado en entornos enterprise)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42fn3cx4xfna4qjw0pjk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42fn3cx4xfna4qjw0pjk.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Este patrón separa la conectividad central del resto de workloads.&lt;/p&gt;

&lt;p&gt;Cómo funciona:&lt;br&gt;
VPC central (hub): VPN / Direct Connect, NAT Gateways, firewalls e inspección de tráfico.&lt;/p&gt;

&lt;p&gt;VPCs spoke: aplicaciones, microservicios, entornos aislados.&lt;br&gt;
Conectadas mediante Transit Gateway (recomendado a escala) o VPC Peering en casos simples.&lt;/p&gt;

&lt;p&gt;Cuándo usarlo:&lt;br&gt;
Arquitecturas multi-account, control centralizado de red, requisitos fuertes de seguridad, conectividad híbrida.&lt;/p&gt;

&lt;p&gt;Trade-offs reales:&lt;br&gt;
Un Transit Gateway con 10 VPCs adjuntas en us-east-1 tiene un costo base de ~$219/mes solo en attachment fees, antes de procesar un solo byte. En arquitecturas con tráfico este-oeste intenso entre spokes, ese costo puede superar al de los propios workloads. A eso se suma la complejidad operativa de mantener route tables del TGW separadas de las route tables de VPC, y el riesgo de convertir el hub en cuello de botella si el dimensionamiento de tráfico no se hace bien desde el inicio.&lt;br&gt;
Un punto que casi nunca se menciona: si añades inspección centralizada con AWS Network Firewall en el hub, las route tables se vuelven asimétricas. El tráfico entra por una ruta y sale por otra. Ese detalle rompe implementaciones en producción si no se diseña explícitamente desde el principio.&lt;br&gt;
Opinión:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Funciona muy bien, siempre que el crecimiento del tráfico esté bien dimensionado y la inspección de tráfico esté considerada desde el diseño inicial, no como un añadido posterior.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🟣 &lt;strong&gt;2. Full Mesh (todo conectado con todo)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbok462p93xcip5ulv18e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbok462p93xcip5ulv18e.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cada VPC se conecta directamente con las demás mediante VPC Peering, sin punto central.&lt;/p&gt;

&lt;p&gt;Cuándo usarlo:&lt;br&gt;
Pocas VPCs, baja complejidad, latencia mínima entre servicios.&lt;/p&gt;

&lt;p&gt;El problema real:&lt;br&gt;
Escala muy mal. Con N VPCs necesitas N×(N-1)/2 peerings. Con 10 VPCs son 45 conexiones, cada una con sus propias route tables. Con 20 VPCs son 190. A eso se suma que no hay control centralizado, el troubleshooting es lento porque no hay un punto único de observabilidad, y las rutas son difíciles de auditar cuando hay múltiples equipos tocando distintos peerings.&lt;/p&gt;

&lt;p&gt;Opinión:&lt;br&gt;
&lt;em&gt;Funciona en startups con 3-4 VPCs. Se rompe en enterprise antes de lo que parece&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;🟢 &lt;strong&gt;3. Multi-Account (más que un patrón, una estrategia)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fclwsl8j8itdk2yrgvy87.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fclwsl8j8itdk2yrgvy87.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paradójicamente, separar cuentas no ralentiza a los equipos. Les permite moverse más rápido sin interferirse.&lt;br&gt;
Cómo funciona:&lt;br&gt;
Separación por cuentas (producción, desarrollo, seguridad, networking) usando AWS Organizations, Transit Gateway y VPC sharing.&lt;br&gt;
Cuándo usarlo:&lt;br&gt;
Aislamiento real de blast radius, cumplimiento y auditorías, escalabilidad organizacional.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trade-offs reales:&lt;/strong&gt;&lt;br&gt;
La complejidad inicial es real. El mayor dolor no es técnico sino de gobierno: ¿quién es dueño de la cuenta de networking? ¿Quién aprueba cambios en las route tables del TGW? Sin esas respuestas claras antes de desplegar, el modelo multi-account genera más fricción de la que resuelve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Opinión:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;A cierta escala no es opcional. Es inevitable.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hub-and-Spoke y Multi-Account no son excluyentes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Este es el punto que más confusión genera en equipos que están adoptando estos patrones por primera vez.&lt;br&gt;
No son patrones opuestos. Resuelven problemas distintos en capas distintas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-Account&lt;/strong&gt; define los límites de confianza, gobierno y blast radius.&lt;br&gt;
&lt;strong&gt;Hub-and-Spoke&lt;/strong&gt; define cómo se conectan esas redes de forma controlada.&lt;/p&gt;

&lt;p&gt;En entornos enterprise es muy común — y totalmente correcto — ver una arquitectura multi-account que utiliza una topología hub-and-spoke para la conectividad. Son complementarios.&lt;/p&gt;

&lt;p&gt;🔥 &lt;strong&gt;Decisiones que realmente importan (y casi nadie menciona).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Más allá del patrón elegido, estas cuatro decisiones determinan si el diseño aguanta el crecimiento:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Dónde inspeccionas el tráfico?&lt;/strong&gt;&lt;br&gt;
Centralizado en el hub o distribuido en cada VPC. Impacta directamente en seguridad, latencia y coste. La inspección centralizada con Network Firewall es más barata operativamente pero introduce la asimetría de rutas mencionada antes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Cómo sales a internet?&lt;/strong&gt;&lt;br&gt;
NAT por VPC o NAT centralizado en el hub. Aquí es donde muchas facturas explotan. Un NAT Gateway por VPC en una arquitectura con 15 spokes puede costar entre 3x y 5x más que un NAT centralizado, dependiendo del patrón de tráfico.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Cómo segmentas?&lt;/strong&gt;&lt;br&gt;
Por VPC, por subnet o por cuenta. El error más común: mezclar todo porque hoy funciona, sin pensar en cómo se auditará en 12 meses cuando haya un incidente de seguridad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Cómo escalará esto en 6 meses?&lt;/strong&gt;&lt;br&gt;
Antes de elegir un patrón, responde estas preguntas: ¿Cuántas cuentas tendrás en 12 meses? ¿Tienes o tendrás conectividad híbrida? ¿Quién es el dueño técnico de la red? ¿Cuánto tráfico este-oeste esperas entre workloads? Las respuestas dictan el patrón, no al revés.&lt;/p&gt;

&lt;p&gt;⚡ &lt;strong&gt;Ejemplo real (simplificado)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;En un proyecto de pagos con 3 equipos y 8 cuentas AWS, el punto de quiebre llegó cuando un equipo de desarrollo desplegó un cambio en una route table compartida y tumbó conectividad en producción durante 40 minutos. No fue un problema técnico. Fue un problema de gobierno.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;La solución no fue técnica tampoco:&lt;/strong&gt; fue separar la cuenta de networking, transferir la propiedad de las route tables del TGW a un equipo dedicado, e implementar aprobación obligatoria para cualquier cambio de red mediante pipelines de IaC con revisión. Después de eso, cero incidentes de red por cambios no coordinados en 8 meses.&lt;/p&gt;

&lt;p&gt;Esa evolución se ve constantemente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Inicio: 1 VPC, todo dentro, funciona&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Crecimiento: más servicios, problemas de seguridad y control&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Evolución: multi-account + hub-and-spoke + networking centralizado&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resultado: mejor control, más seguridad, más complejidad — inevitable y manejable si se diseña bien&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fadccqjbnw9bo0iuyeajl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fadccqjbnw9bo0iuyeajl.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Un punto importante de aclarar es que Hub‑and‑Spoke y Multi‑Account no son patrones opuestos.&lt;/p&gt;

&lt;p&gt;En arquitecturas reales, resuelven problemas distintos en capas distintas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;**Multi‑Account **define los límites de confianza, gobierno y blast radius.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hub‑and‑Spoke&lt;/strong&gt; define cómo se conectan esas redes de forma controlada.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Por eso, en entornos enterprise es muy común —y totalmente correcto— ver:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Una arquitectura multi‑account que utiliza una topología Hub‑and‑Spoke para la conectividad.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🧭 &lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Diseñar una VPC &lt;strong&gt;no es crear subnets&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Es decidir cómo se comunican los sistemas, cómo se aíslan, cómo escalan y cuánto cuesta operarlos. Y sobre todo, cómo evitar que tu arquitectura funcione hoy pero falle mañana.&lt;/p&gt;

&lt;p&gt;El patrón correcto no existe en abstracto. Existe en función de cuántos equipos tienes, qué nivel de aislamiento necesitas y cuánto tráfico moverás. Empieza por esas preguntas, no por el diagrama.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy learning on AWS&lt;/strong&gt; 🚀&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>aws</category>
      <category>networking</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>AWS Interconnect: La Clave para Estrategias Multicloud y Policloud</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Tue, 28 Apr 2026 16:09:18 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/aws-interconnect-la-clave-para-estrategias-multicloud-y-policloud-dg3</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/aws-interconnect-la-clave-para-estrategias-multicloud-y-policloud-dg3</guid>
      <description>&lt;p&gt;&lt;strong&gt;☁️ Introducción&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A medida que las organizaciones evolucionan en su adopción cloud, el enfoque ya no es simplemente multicloud, sino policloud: utilizar distintos proveedores Cloud de forma estratégica según las capacidades específicas de cada uno.&lt;/p&gt;

&lt;p&gt;Pero este enfoque introduce un reto fundamental:&lt;br&gt;
👉 ¿Cómo conectas entornos diseñados para ser diferentes?&lt;/p&gt;

&lt;p&gt;Aquí es donde entra en juego AWS Interconnect, apoyado en servicios como Direct Connect y su integración con ecosistemas de conectividad, permitiendo construir una red privada entre nubes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preambulo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Multicloud es usar varios Clouds.&lt;br&gt;
Policloud es usarlos con intención.&lt;/p&gt;

&lt;p&gt;El problema no es elegir AWS, Azure o GCP…&lt;br&gt;
El problema es cómo hacer que trabajen juntos sin fricción.&lt;/p&gt;

&lt;p&gt;Aquí te dejo una guía clara de cómo AWS aborda este desafío.&lt;/p&gt;

&lt;p&gt;☁️ ¿Qué es AWS Interconnect en un contexto Multicloud / Policloud?&lt;/p&gt;

&lt;p&gt;AWS Interconnect no es un servicio individual, sino una arquitectura de conectividad avanzada que permite integrar AWS con otros proveedores Cloud mediante conexiones privadas.&lt;/p&gt;

&lt;p&gt;Se basa en:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Direct Connect&lt;/li&gt;
&lt;li&gt;Colocation (Equinix, Digital Realty…)&lt;/li&gt;
&lt;li&gt;Cloud Exchange Providers (Megaport, Equinix Fabric…)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Permite construir un backbone privado entre Cloud, clave en entornos donde cada proveedor cumple un rol específico (policloud).&lt;/p&gt;

&lt;p&gt;🔶 &lt;strong&gt;Modelo Tradicional: Multicloud sobre Internet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Muchas organizaciones comienzan su estrategia conectando Clouds a través de internet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔍 ¿Cómo funciona?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comunicación mediante IP públicas&lt;/li&gt;
&lt;li&gt;Uso de VPNs o cifrado TLS&lt;/li&gt;
&lt;li&gt;Tráfico sobre internet público&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⭐ Ventajas&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implementación rápida&lt;/li&gt;
&lt;li&gt;Bajo coste inicial&lt;/li&gt;
&lt;li&gt;Alta flexibilidad&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Limitaciones&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Latencia impredecible&lt;/li&gt;
&lt;li&gt;Dependencia del internet&lt;/li&gt;
&lt;li&gt;Costes elevados por egress&lt;/li&gt;
&lt;li&gt;Arquitecturas poco eficientes a escala&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2qvtn5hsc05yu1sx2wgt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2qvtn5hsc05yu1sx2wgt.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔧 Ideal para:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fases iniciales o casos de bajo impacto&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔵 AWS Interconnect: Base para Policloud&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cuando pasas de multicloud a policloud, la conectividad deja de ser opcional.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔍 ¿Cómo funciona?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS se conecta mediante Direct Connect a un punto de interconexión&lt;br&gt;
Desde ahí, se enlaza con otros Clouds usando proveedores especializados&lt;br&gt;
El tráfico fluye de forma privada entre plataformas&lt;/p&gt;

&lt;p&gt;⭐ Ventajas&lt;/p&gt;

&lt;p&gt;Baja latencia y alto rendimiento&lt;br&gt;
Conectividad privada entre Cloud&lt;br&gt;
Arquitecturas más predecibles&lt;br&gt;
Optimización de costes a gran escala&lt;br&gt;
Mejor alineación con estrategias policloud&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkowh8lnk8wyi2lrg9k79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkowh8lnk8wyi2lrg9k79.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔧 Ideal para:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Workloads distribuidos entre Cloud (ej: datos en GCP, apps en AWS)&lt;br&gt;
Estrategias donde cada Cloud cumple un rol específico&lt;br&gt;
Grandes volúmenes de tráfico entre plataformas&lt;br&gt;
Entornos Enterprise.&lt;/p&gt;

&lt;p&gt;⚔️ &lt;strong&gt;Comparación: Internet vs AWS Interconnect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✔️ Latencia&lt;/p&gt;

&lt;p&gt;Internet → Variable&lt;br&gt;
Interconnect → Consistente&lt;/p&gt;

&lt;p&gt;✔️ Seguridad&lt;/p&gt;

&lt;p&gt;Internet → Basada en cifrado&lt;br&gt;
Interconnect → Red privada, aislamiento físico/lógico y opcionalmente cifrado adicional&lt;/p&gt;

&lt;p&gt;✔️ Costes&lt;/p&gt;

&lt;p&gt;Internet → Bajo inicio, alto a escala.&lt;br&gt;
Interconnect → no siempre es más barato en términos absolutos, pero sí más eficiente y predecible a escala.&lt;/p&gt;

&lt;p&gt;✔️ Arquitectura&lt;/p&gt;

&lt;p&gt;Internet → Multicloud básico&lt;br&gt;
Interconnect → Multicloud avanzado / Policloud&lt;/p&gt;

&lt;p&gt;✔️ Escalabilidad&lt;/p&gt;

&lt;p&gt;Internet → Limitada&lt;br&gt;
Interconnect → Nivel enterprise&lt;/p&gt;

&lt;p&gt;🧭 ¿Cuándo necesitas AWS Interconnect?&lt;/p&gt;

&lt;p&gt;✔ Cuando evolucionas de multicloud a policloud&lt;br&gt;
✔ Cuando cada cloud tiene un rol definido en tu arquitectura&lt;br&gt;
✔ Cuando necesitas baja latencia entre plataformas&lt;br&gt;
✔ Cuando el volumen de datos entre clouds es significativo&lt;br&gt;
✔ Cuando la red se vuelve un factor crítico de negocio&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxe2hymmy3d661zionsj4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxe2hymmy3d661zionsj4.png" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏁 Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No todas las estrategias multicloud son iguales.&lt;/p&gt;

&lt;p&gt;👉 Multicloud te da flexibilidad.&lt;br&gt;
👉 Policloud te da intención.&lt;/p&gt;

&lt;p&gt;Pero ambas fallan sin una conectividad adecuada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Interconnect&lt;/strong&gt; es el puente que transforma múltiples Cloud en una arquitectura coherente, integrada y preparada para escalar.&lt;/p&gt;

&lt;p&gt;La evolución natural no es usar más clouds…&lt;br&gt;
👉 es usarlos mejor y conectarlos correctamente.&lt;/p&gt;

&lt;p&gt;Happy learning on AWS &amp;amp; beyond! 🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>networking</category>
      <category>cloudcomputing</category>
      <category>gcp</category>
    </item>
    <item>
      <title>🌐 Arquitecturas AI-Native en AWS: Cómo diseñar plataformas cloud impulsadas por IA.</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Mon, 20 Apr 2026 12:44:49 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/arquitecturas-ai-native-en-aws-como-disenar-plataformas-cloud-impulsadas-por-ia-2cjk</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/arquitecturas-ai-native-en-aws-como-disenar-plataformas-cloud-impulsadas-por-ia-2cjk</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frp6f54t9c4wrnm5wmogm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frp6f54t9c4wrnm5wmogm.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Durante años diseñamos arquitecturas Cloud enfocadas en:&lt;/p&gt;

&lt;p&gt;✔️ Escalabilidad&lt;br&gt;
✔️ Resiliencia&lt;br&gt;
✔️ Costos&lt;/p&gt;

&lt;p&gt;Hoy hay un nuevo pilar que redefine todo:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;la Inteligencia Artificial como parte central del diseño&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS no está simplemente “añadiendo IA” a sus servicios.&lt;br&gt;
Está evolucionando hacia un modelo donde la IA se convierte en una capacidad transversal dentro de la arquitectura.&lt;/p&gt;

&lt;p&gt;Incluso el AWS Well-Architected Framework ha evolucionado: la IA ya no es una carga de trabajo aislada, sino un pilar de optimización que afecta la excelencia operativa y la eficiencia de costos.&lt;/p&gt;

&lt;p&gt;La pregunta ya no es:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;¿Cómo integro IA en mi sistema?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sino:&lt;/p&gt;

&lt;p&gt;👉 ¿Cómo diseño mi arquitectura para que la IA sea parte nativa desde el inicio?&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Preámbulo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;En AWS, la IA no vive en un único servicio.&lt;/p&gt;

&lt;p&gt;Se distribuye a lo largo de todo el stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Datos&lt;/li&gt;
&lt;li&gt;Procesamiento&lt;/li&gt;
&lt;li&gt;Aplicaciones&lt;/li&gt;
&lt;li&gt;Experiencia de usuario&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Esto permite construir arquitecturas altamente flexibles, pero también introduce nuevas decisiones arquitectónicas.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;La IA cambia el eje de diseño de la arquitectura en AWS, dejamos de diseñar sistemas que procesan requests y empezamos a diseñar sistemas que toman decisiones.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;⚙️ &lt;strong&gt;El stack de IA en AWS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🔶 1. Capa de modelos (Foundation Models)&lt;/p&gt;

&lt;p&gt;Amazon Bedrock&lt;br&gt;
Acceso a múltiples LLMs (Anthropic, Titan, etc.)&lt;/p&gt;

&lt;p&gt;👉 Permite:&lt;br&gt;
✔ IA generativa sin gestionar infraestructura&lt;br&gt;
✔ Abstracción del modelo&lt;br&gt;
✔ Integración rápida en aplicaciones&lt;/p&gt;

&lt;p&gt;🔶 2. Capa de Machine Learning&lt;/p&gt;

&lt;p&gt;Amazon SageMaker&lt;/p&gt;

&lt;p&gt;👉 Permite:&lt;br&gt;
✔ Entrenar modelos propios&lt;br&gt;
✔ Deploy de endpoints&lt;br&gt;
✔ MLOps completo&lt;/p&gt;

&lt;p&gt;🔶 3. Capa de integración (AI Layer)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Lambda&lt;/li&gt;
&lt;li&gt;API Gateway&lt;/li&gt;
&lt;li&gt;Step Functions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Permite:&lt;br&gt;
✔ Orquestar inferencia&lt;br&gt;
✔ Integrar IA en flujos de negocio&lt;br&gt;
✔ Arquitecturas event-driven&lt;br&gt;
✔ AI Agents Orchestration&lt;/p&gt;

&lt;p&gt;🔶 4. Capa de datos (Data Foundation)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon S3 (Lake House)&lt;/li&gt;
&lt;li&gt;Glue&lt;/li&gt;
&lt;li&gt;Athena / Redshift
✔ Vector Engine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 La IA en AWS depende críticamente de:&lt;/p&gt;

&lt;p&gt;✔ Calidad de datos&lt;br&gt;
✔ Gobernanza&lt;br&gt;
✔ Acceso eficiente&lt;/p&gt;

&lt;p&gt;🧩 &lt;strong&gt;Arquitectura de referencia AI-Native en AWS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F83jx69k0b31y54usn1ph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F83jx69k0b31y54usn1ph.png" alt=" " width="666" height="716"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 Aquí la IA no es un add-on&lt;br&gt;
👉 Es una capa central de decisión&lt;/p&gt;

&lt;p&gt;🔄 &lt;strong&gt;Patrones arquitectónicos clave&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🔹 1. AI as a Service (AIaaS)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIs que consumen modelos&lt;/li&gt;
&lt;li&gt;Desacoplamiento total&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 2. Event-Driven AI&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inferencia activada por eventos&lt;/li&gt;
&lt;li&gt;Integración con streaming (Kinesis)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 3. Retrieval-Augmented Generation (RAG)&lt;/p&gt;

&lt;p&gt;Usuario → Query → S3 / Vector DB → LLM → Respuesta&lt;/p&gt;

&lt;p&gt;👉 &lt;em&gt;En AWS, RAG se está convirtiendo en el patrón dominante para IA generativa en entornos enterprise, ya que permite mantener control sobre datos, reducir alucinaciones y optimizar costos de inferencia.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🔹 4. Serverless AI&lt;/p&gt;

&lt;p&gt;Lambda + Bedrock&lt;br&gt;
Sin gestión de infraestructura&lt;/p&gt;

&lt;p&gt;⚔️ &lt;strong&gt;Fortalezas de AWS en IA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✔ Integración con ecosistema enterprise&lt;br&gt;
✔ Flexibilidad total&lt;br&gt;
✔ Control sobre modelos y despliegue&lt;br&gt;
✔ Capacidad multi-servicio&lt;/p&gt;

&lt;p&gt;🛡️ &lt;strong&gt;Governance &amp;amp; Trust en arquitecturas AI‑Native&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;En AWS, una arquitectura AI‑Native debe incorporar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Control de acceso a modelos (IAM + Bedrock policies)&lt;/li&gt;
&lt;li&gt;Versionado de modelos y datasets&lt;/li&gt;
&lt;li&gt;Trazabilidad de inferencias&lt;/li&gt;
&lt;li&gt;✔ AI Guardrails&lt;/li&gt;
&lt;li&gt;Protección de datos sensibles (PII, prompts, embeddings)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Sin esta capa, la IA escala el riesgo tan rápido como el valor.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Retos arquitectónicos&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;❗ Complejidad (muchos servicios)&lt;br&gt;
❗ Gobierno de datos&lt;br&gt;
❗ Costos de inferencia&lt;br&gt;
❗ FinOps para Generative AI&lt;br&gt;
❗ Observabilidad de modelos&lt;/p&gt;

&lt;p&gt;🌎 &lt;strong&gt;Antipatrones a evitar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✔ Integrar IA sin estrategia de datos&lt;br&gt;
✔ Acoplar directamente el modelo a la app&lt;br&gt;
✔ No considerar latencia de inferencia&lt;br&gt;
✔ No controlar costos (tokens, llamadas)&lt;br&gt;
✔ No versionar modelos&lt;/p&gt;

&lt;p&gt;📊 &lt;strong&gt;Impacto en la organización&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nuevas capacidades digitales&lt;/li&gt;
&lt;li&gt;Automatización avanzada&lt;/li&gt;
&lt;li&gt;Experiencias inteligentes&lt;/li&gt;
&lt;li&gt;Decisiones basadas en datos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔧 &lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS permite construir arquitecturas AI-Native altamente flexibles, pero exige:&lt;/p&gt;

&lt;p&gt;✔ Diseño consciente&lt;br&gt;
✔ Buen gobierno de datos&lt;br&gt;
✔ Automatización&lt;br&gt;
✔ Observabilidad&lt;/p&gt;

&lt;p&gt;En AWS, la IA no es un servicio que consumes.&lt;br&gt;
Es una capacidad que diseñas.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Mensaje clave&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Las empresas que ganen no serán las que usen IA, sino las que arquitecten correctamente alrededor de ella.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy learning in AWS &amp;amp; AI&lt;/strong&gt; 🚀&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aws</category>
      <category>cloud</category>
    </item>
    <item>
      <title>🔐 IAM en AWS vs IAM en GCP: Diferencias que pueden romper tu arquitectura.</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Mon, 13 Apr 2026 13:26:10 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/iam-en-aws-vs-iam-en-gcp-diferencias-que-pueden-romper-tu-arquitectura-5385</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/iam-en-aws-vs-iam-en-gcp-diferencias-que-pueden-romper-tu-arquitectura-5385</guid>
      <description>&lt;p&gt;☁️ &lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;En cualquier arquitectura Cloud moderna, la seguridad no comienza en la red… comienza en la identidad.&lt;/p&gt;

&lt;p&gt;¿Quién puede acceder?&lt;br&gt;
¿Qué puede hacer?&lt;br&gt;
¿Desde dónde?&lt;/p&gt;

&lt;p&gt;Aquí es donde entra en juego IAM (Identity and Access Management), uno de los componentes más críticos &lt;strong&gt;y a la vez más subestimados&lt;/strong&gt; en la nube.&lt;/p&gt;

&lt;p&gt;Tanto AWS como GCP ofrecen modelos robustos de IAM, pero con enfoques radicalmente distintos. Y no entender estas diferencias no solo genera problemas de seguridad… puede romper completamente tu arquitectura.&lt;/p&gt;

&lt;p&gt;📌 &lt;strong&gt;Preámbulo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IAM no es solo gestión de usuarios. Es el motor de control de acceso que define cómo interactúan servicios, aplicaciones y personas dentro de tu entorno Cloud.&lt;/p&gt;

&lt;p&gt;Aunque AWS y GCP tienen el mismo objetivo, su forma de implementarlo cambia:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AWS → enfoque granular, distribuido y altamente flexible&lt;/em&gt;&lt;br&gt;
&lt;em&gt;GCP → enfoque centralizado, jerárquico y basado en identidad&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;El mayor error no es técnico, es cognitivo:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;al diseñar IAM con el modelo mental equivocado para la nube que estás usando.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Entender esto es clave para diseñar arquitecturas seguras y escalables.&lt;/p&gt;

&lt;p&gt;🔐 &lt;strong&gt;¿Qué es IAM?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IAM (Identity and Access Management) permite definir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quién (usuarios, servicios, aplicaciones).&lt;/li&gt;
&lt;li&gt;Puede hacer qué (permisos).&lt;/li&gt;
&lt;li&gt;Sobre qué recursos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Es, en esencia, el equivalente a los controles de acceso en un data center tradicional, pero llevado a escala Cloud.&lt;/p&gt;

&lt;p&gt;🔶 &lt;strong&gt;IAM en AWS: Granularidad extrema y control total&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7ec7n19ufqf5el7x10t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7ec7n19ufqf5el7x10t.png" alt=" " width="671" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AWS adopta un modelo muy flexible, pero también más complejo.&lt;/p&gt;

&lt;p&gt;🔍 ¿Cómo funciona IAM en AWS?&lt;br&gt;
No existe jerarquía de recursos como tal (como en GCP)&lt;br&gt;
Todo gira en torno a:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Usuarios.&lt;/li&gt;
&lt;li&gt;Roles.&lt;/li&gt;
&lt;li&gt;Políticas (Policies).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Las políticas son documentos JSON donde defines permisos de forma explícita.&lt;/p&gt;

&lt;p&gt;👉 Ejemplo conceptual:&lt;/p&gt;

&lt;p&gt;“Permitir acceso S3 solo a este bucket, desde esta IP, en este horario”&lt;/p&gt;

&lt;p&gt;⭐ Ventajas de AWS IAM&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Granularidad extrema: puedes controlar permisos a nivel muy fino.&lt;/li&gt;
&lt;li&gt;Flexibilidad total: múltiples formas de asignar permisos.&lt;/li&gt;
&lt;li&gt;Condiciones avanzadas: IP, tags, tiempo, MFA, etc.&lt;/li&gt;
&lt;li&gt;Madurez: uno de los sistemas más completos del mercado.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Riesgos comunes en AWS&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complejidad alta → fácil cometer errores.&lt;/li&gt;
&lt;li&gt;Políticas difíciles de mantener a escala.&lt;/li&gt;
&lt;li&gt;Over-permissioning (más permisos de los necesarios).&lt;/li&gt;
&lt;li&gt;Difícil trazabilidad en entornos grandes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔧 Ideal para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Entornos altamente regulados&lt;/li&gt;
&lt;li&gt;Casos donde necesitas control detallado&lt;/li&gt;
&lt;li&gt;Arquitecturas complejas con múltiples excepciones&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔵 &lt;strong&gt;IAM en GCP: Simplicidad, jerarquía y modelo basado en identidad&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpa80o97tccuy8qchy0qf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpa80o97tccuy8qchy0qf.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google adopta un enfoque completamente distinto: todo está organizado jerárquicamente.&lt;/p&gt;

&lt;p&gt;🔍 ¿Cómo funciona IAM en GCP?&lt;/p&gt;

&lt;p&gt;Estructura jerárquica:&lt;/p&gt;

&lt;p&gt;Organización&lt;br&gt;
 └── Folder&lt;br&gt;
      └── Proyecto&lt;br&gt;
           └── Recursos&lt;/p&gt;

&lt;p&gt;Los permisos se asignan mediante:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Roles (predefinidos o custom).&lt;/li&gt;
&lt;li&gt;Bindings (quién tiene ese rol).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Y lo más importante:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Los permisos se heredan automáticamente hacia abajo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⭐ Ventajas de GCP IAM&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modelo más simple e intuitivo.&lt;/li&gt;
&lt;li&gt;Herencia automática de permisos.&lt;/li&gt;
&lt;li&gt;Menor esfuerzo operativo.&lt;/li&gt;
&lt;li&gt;Integración fuerte con identidades (service accounts).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Riesgos comunes en GCP&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exceso de permisos por herencia mal diseñada.&lt;/li&gt;
&lt;li&gt;Menor granularidad en algunos casos.&lt;/li&gt;
&lt;li&gt;Difícil segmentación si no se diseña bien la jerarquía.&lt;/li&gt;
&lt;li&gt;Dependencia fuerte del diseño organizacional.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔧 Ideal para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organizaciones que priorizan simplicidad.&lt;/li&gt;
&lt;li&gt;Equipos que quieren escalar rápido.&lt;/li&gt;
&lt;li&gt;Entornos con gobierno centralizado.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kt4x3ocb1qkxoy93oau.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kt4x3ocb1qkxoy93oau.png" alt=" " width="800" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;“La diferencia no está solo en cómo configuras permisos… sino en cómo piensas la arquitectura desde el inicio.”&lt;/p&gt;

&lt;p&gt;🚨 &lt;strong&gt;Diferencias que rompen arquitecturas&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ejemplo real:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Una organización migra desde AWS a GCP.&lt;/p&gt;

&lt;p&gt;En AWS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cada cuenta tenía roles específicos.&lt;/li&gt;
&lt;li&gt;Permisos explícitos por aplicación.&lt;/li&gt;
&lt;li&gt;Nada se heredaba automáticamente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En GCP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Se crea una Organización y un Proyecto único.&lt;/li&gt;
&lt;li&gt;Se asigna Owner a un grupo “plataforma”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Resultado:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Servicios internos acceden a recursos productivos sin intención.&lt;/li&gt;
&lt;li&gt;Equipos de dev tienen permisos que nunca tuvieron en AWS.&lt;/li&gt;
&lt;li&gt;Auditoría fallida por exceso de privilegios.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;El problema no fue GCP.&lt;br&gt;
Fue migrar el modelo mental de AWS sin rediseñar la jerarquía.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aquí está lo realmente importante 👇&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1. Herencia vs control explícito&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
En AWS: nada se hereda automáticamente.&lt;br&gt;
En GCP: TODO puede heredarse.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Error típico:&lt;/strong&gt;&lt;br&gt;
Migrar sin rediseñar → permisos excesivos o insuficientes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;2. Roles vs Policies&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
AWS: defines permisos muy específicos.&lt;br&gt;
GCP: trabajas más con roles predefinidos.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Impacto:&lt;/strong&gt;&lt;br&gt;
Diseños pensados para AWS pueden no encajar bien en GCP&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;3. Service Accounts vs Roles&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
AWS: uso intensivo de roles (STS).&lt;br&gt;
GCP: service accounts como identidad principal.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Error común:&lt;/strong&gt;&lt;br&gt;
No adaptar autenticación entre servicios → fallos de integración.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;4. Gobierno organizacional&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
AWS: más descentralizado.&lt;br&gt;
GCP: depende fuertemente de la jerarquía.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 **Impacto:&lt;/strong&gt;**&lt;br&gt;
Un mal diseño inicial en GCP afecta TODO el sistema.&lt;/p&gt;

&lt;p&gt;🤝 &lt;strong&gt;¿En qué coinciden AWS y GCP IAM?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ambos implementan principio de menor privilegio.&lt;/li&gt;
&lt;li&gt;Ambos permiten identidades de servicio bien definidas.&lt;/li&gt;
&lt;li&gt;Ambos fallan cuando:
      - No hay gobierno.
      - No hay automatización (IaC).
      - Se improvisa en producción.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🎯 &lt;strong&gt;IAM no falla solo… falla cuando la arquitectura falla.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🧭 &lt;strong&gt;¿Cuál elegir?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Depende de tu enfoque como arquitecto:&lt;/p&gt;

&lt;p&gt;✔ &lt;strong&gt;Si necesitas control absoluto → AWS&lt;/strong&gt;&lt;br&gt;
Ideal para entornos complejos y altamente regulados.&lt;/p&gt;

&lt;p&gt;✔ &lt;strong&gt;Si buscas simplicidad y escalabilidad → GCP&lt;/strong&gt;&lt;br&gt;
Perfecto para organizaciones modernas y ágiles.&lt;/p&gt;

&lt;p&gt;🏁 &lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IAM no es solo un componente más… es la base de la seguridad en la nube.&lt;/p&gt;

&lt;p&gt;AWS te da control total, pero exige mayor madurez operativa.&lt;br&gt;
GCP simplifica la gestión, pero requiere buen diseño jerárquico.&lt;/p&gt;

&lt;p&gt;La clave no es cuál es mejor, sino:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cuál se alinea mejor con tu modelo operativo y tu arquitectura.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Porque en Cloud, una mala decisión en IAM no solo genera riesgos…&lt;br&gt;
puede romper toda tu plataforma.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy learning on AWS &amp;amp; GCP&lt;/strong&gt; 🔥&lt;/p&gt;

</description>
      <category>aws</category>
      <category>gcp</category>
      <category>iam</category>
      <category>security</category>
    </item>
    <item>
      <title>🧪 Well-Architected en acción: cómo pasar de la teoría a una arquitectura real y resiliente.</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Mon, 06 Apr 2026 12:30:39 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/well-architected-en-accion-como-pasar-de-la-teoria-a-una-arquitectura-real-y-resiliente-5gdg</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/well-architected-en-accion-como-pasar-de-la-teoria-a-una-arquitectura-real-y-resiliente-5gdg</guid>
      <description>&lt;p&gt;☁️ &lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Diseñar una arquitectura en la nube no es solo desplegar servicios: es tomar decisiones que impactan directamente en seguridad, costos, rendimiento y resiliencia. A medida que los entornos crecen, también lo hacen los riesgos de desviarse de las buenas prácticas.&lt;/p&gt;

&lt;p&gt;Aquí es donde entra el AWS Well-Architected Framework, una guía que permite evaluar arquitecturas cloud y asegurar que estén alineadas con estándares probados.&lt;/p&gt;

&lt;p&gt;Pero más allá de la teoría, la pregunta clave es:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;¿Cómo lo llevamos a la práctica en entornos reales?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📘 &lt;strong&gt;Preámbulo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El Well-Architected Framework no es un checklist estático. Es una herramienta viva que te ayuda a identificar riesgos, priorizar mejoras y evolucionar tu arquitectura continuamente.&lt;/p&gt;

&lt;p&gt;Aquí te dejo una guía clara para entenderlo, aplicarlo y obtener resultados reales desde el día uno.&lt;/p&gt;

&lt;p&gt;☁️ &lt;strong&gt;¿Qué es el AWS Well-Architected Framework?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Es un conjunto de buenas prácticas organizadas en 6 pilares fundamentales que permiten evaluar la calidad de una arquitectura cloud.&lt;/p&gt;

&lt;p&gt;Cada pilar responde a una pregunta clave:&lt;/p&gt;

&lt;p&gt;¿Es segura?&lt;br&gt;
¿Es resiliente?&lt;br&gt;
¿Es eficiente?&lt;br&gt;
¿Está optimizada en costos?&lt;br&gt;
¿Es sostenible?&lt;br&gt;
¿Está bien operada?&lt;/p&gt;

&lt;p&gt;🏗️ &lt;strong&gt;Los 6 pilares explicados de forma práctica&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🔒 &lt;strong&gt;Seguridad&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Protege datos, sistemas y activos.&lt;/p&gt;

&lt;p&gt;✔ Buenas prácticas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uso de IAM con mínimo privilegio&lt;/li&gt;
&lt;li&gt;Encriptación por defecto&lt;/li&gt;
&lt;li&gt;Auditoría con CloudTrail&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Quick win:&lt;br&gt;
Revisar usuarios IAM con permisos excesivos.&lt;/p&gt;

&lt;p&gt;⚙️ &lt;strong&gt;Excelencia Operacional&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Capacidad de operar, monitorear y mejorar continuamente.&lt;/p&gt;

&lt;p&gt;✔ Buenas prácticas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infraestructura como código (IaC)&lt;/li&gt;
&lt;li&gt;Observabilidad (logs, métricas, alertas)&lt;/li&gt;
&lt;li&gt;Automatización de operaciones&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Quick win:&lt;br&gt;
Automatizar despliegues con Terraform o CloudFormation.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Rendimiento (Performance Efficiency)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Uso eficiente de recursos para escalar correctamente.&lt;/p&gt;

&lt;p&gt;✔ Buenas prácticas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auto Scaling&lt;/li&gt;
&lt;li&gt;Uso de servicios serverless&lt;/li&gt;
&lt;li&gt;Selección adecuada de tipos de instancia&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Quick win:&lt;br&gt;
Revisar instancias sobredimensionadas.&lt;/p&gt;

&lt;p&gt;💰 &lt;strong&gt;Optimización de Costos&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Evitar gasto innecesario sin sacrificar rendimiento.&lt;/p&gt;

&lt;p&gt;✔ Buenas prácticas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rightsizing&lt;/li&gt;
&lt;li&gt;Savings Plans / Reserved Instances&lt;/li&gt;
&lt;li&gt;Apagar recursos no utilizados&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Quick win:&lt;br&gt;
Identificar recursos “idle”.&lt;/p&gt;

&lt;p&gt;🛡️ &lt;strong&gt;Fiabilidad (Reliability)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Capacidad de recuperarse ante fallos.&lt;/p&gt;

&lt;p&gt;✔ Buenas prácticas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-AZ / Multi-Region&lt;/li&gt;
&lt;li&gt;Backups automatizados&lt;/li&gt;
&lt;li&gt;Diseño desacoplado&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Quick win:&lt;br&gt;
Verificar si tus workloads críticos están en una sola AZ.&lt;/p&gt;

&lt;p&gt;🌱 &lt;strong&gt;Sostenibilidad&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reducir impacto ambiental mediante eficiencia.&lt;/p&gt;

&lt;p&gt;✔ Buenas prácticas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uso de serverless&lt;/li&gt;
&lt;li&gt;Optimización de consumo&lt;/li&gt;
&lt;li&gt;Eliminación de recursos innecesarios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Quick win:&lt;br&gt;
Eliminar recursos no utilizados en entornos de prueba.&lt;/p&gt;

&lt;p&gt;🛠️ &lt;strong&gt;¿Cómo hacer una evaluación paso a paso?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aquí es donde pasamos de teoría a práctica:&lt;/p&gt;

&lt;p&gt;1️⃣ Definir el workload&lt;/p&gt;

&lt;p&gt;Selecciona la aplicación o sistema que vas a evaluar.&lt;/p&gt;

&lt;p&gt;2️⃣ Usar AWS Well-Architected Tool&lt;/p&gt;

&lt;p&gt;Servicio nativo de AWS para realizar la revisión.&lt;/p&gt;

&lt;p&gt;✔ Permite:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Responder cuestionarios por pilar&lt;/li&gt;
&lt;li&gt;Detectar riesgos (High / Medium / Low)&lt;/li&gt;
&lt;li&gt;Generar recomendaciones&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3️⃣ Identificar riesgos (Findings)&lt;/p&gt;

&lt;p&gt;Cada respuesta genera insights accionables.&lt;/p&gt;

&lt;p&gt;Ejemplo:&lt;/p&gt;

&lt;p&gt;“No hay backups configurados” → riesgo alto&lt;br&gt;
“No hay monitoreo activo” → riesgo medio&lt;/p&gt;

&lt;p&gt;4️⃣ Priorizar mejoras&lt;/p&gt;

&lt;p&gt;No todo se corrige al mismo tiempo.&lt;/p&gt;

&lt;p&gt;✔ Enfócate en:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Riesgos críticos (High Risk Issues)&lt;/li&gt;
&lt;li&gt;Impacto en negocio&lt;/li&gt;
&lt;li&gt;Esfuerzo vs beneficio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;5️⃣ Implementar mejoras incrementales&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;El objetivo no es perfección, sino evolución continua.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Diseño de arquitectura referencial con HA y DR.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrjiol6chg657wh0xj7e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrjiol6chg657wh0xj7e.png" alt=" " width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚔️ &lt;strong&gt;Errores comunes al aplicar el framework&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;❌ Usarlo solo como auditoría (y no como mejora continua)&lt;br&gt;
❌ Querer cumplir todo desde el inicio&lt;br&gt;
❌ Ignorar el contexto del negocio&lt;br&gt;
❌ No involucrar a equipos de operación&lt;/p&gt;

&lt;p&gt;🧭 &lt;strong&gt;¿Cuándo deberías aplicar Well-Architected?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✔ Antes de pasar a producción&lt;br&gt;
✔ Después de incidentes importantes&lt;br&gt;
✔ En procesos de modernización&lt;br&gt;
✔ De forma periódica (ej: cada 3-6 meses)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“El verdadero valor del Well-Architected Framework no está en el diagnóstico, sino en las decisiones que tomas después de él.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;Principios de diseño que atraviesan todos los pilares&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ejemplos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Everything fails → diseña asumiendo fallos&lt;/li&gt;
&lt;li&gt;Loose coupling → servicios desacoplados&lt;/li&gt;
&lt;li&gt;Automate everything → humanos = punto de falla&lt;/li&gt;
&lt;li&gt;Measure before optimize → métricas antes de decisiones&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🚨 &lt;strong&gt;Antipatrones frecuentes que vemos en revisiones Well-Architected&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-AZ “de nombre”, pero con estado compartido en una AZ&lt;/li&gt;
&lt;li&gt;Auto Scaling sin health checks reales&lt;/li&gt;
&lt;li&gt;Backups configurados, pero nunca probados&lt;/li&gt;
&lt;li&gt;IAM con &lt;em&gt;:&lt;/em&gt; “temporal” que se vuelve permanente&lt;/li&gt;
&lt;li&gt;Monitoreo solo de infraestructura, no de negocio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🏁 &lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El AWS Well-Architected Framework no es solo una guía técnica, es una herramienta estratégica para construir arquitecturas más seguras, eficientes y resilientes.&lt;/p&gt;

&lt;p&gt;No se trata de hacerlo perfecto desde el inicio, sino de mejorar continuamente con base en datos y buenas prácticas.&lt;/p&gt;

&lt;p&gt;En palabras mas sencillas, la arquitectura en ambientes Clous no es algo que diseñas una vez…&lt;br&gt;
es algo que &lt;strong&gt;evoluciona constantemente&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Happy learnning on AWS!&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>wellarchitected</category>
      <category>bestpractices</category>
      <category>aws</category>
    </item>
    <item>
      <title>Despliegue, Operación y Troubleshooting interactivo de Infraestructura, usando AWS KIRO.</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Mon, 30 Mar 2026 11:55:56 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/despliegue-operacion-y-troubleshooting-interactivo-de-infraestructura-usando-aws-kiro-2kbp</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/despliegue-operacion-y-troubleshooting-interactivo-de-infraestructura-usando-aws-kiro-2kbp</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7g834ec3cwg3zndzwq3a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7g834ec3cwg3zndzwq3a.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;La operación de infraestructura en AWS suele involucrar múltiples fuentes de información: configuraciones distribuidas, logs, métricas, eventos de despliegue y dependencias entre servicios. Este escenario hace que la identificación de incidencias y el análisis de causa raíz (RCA) sean procesos complejos, especialmente en entornos modernos basados en microservicios, IaC y automatización continua.&lt;/p&gt;

&lt;p&gt;AWS KIRO surge como una capa de inteligencia que procesa, correlaciona y razona sobre este ecosistema, actuando como un asistente operativo y de troubleshooting interactivo basado en IA, capaz de integrarse desde el despliegue hasta la operación diaria.&lt;/p&gt;

&lt;p&gt;📌 &lt;strong&gt;Preambulo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué es KIRO desde el punto de vista de infraestructura?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KIRO&lt;/strong&gt; puede entenderse como un asistente interactivo basado en IA, capaz de diagnosticar, correlacionar y resolver incidencias en AWS mediante análisis contextual de múltiples capas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Configuración de recursos: IAM, VPC, compute, storage&lt;/li&gt;
&lt;li&gt; Métricas y logs: Amazon CloudWatch, CloudTrail&lt;/li&gt;
&lt;li&gt; Eventos de despliegue: CloudFormation, CDK, pipelines CI/CD&lt;/li&gt;
&lt;li&gt; Topología de arquitectura: dependencias y flujos entre servicios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✔️ &lt;strong&gt;En este artículo analizaremos en detalle:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;KIRO como asistente integral de infraestructura en AWS.&lt;/li&gt;
&lt;li&gt;Soporte inteligente en el despliegue de infraestructura.&lt;/li&gt;
&lt;li&gt;Operación asistida mediante observabilidad aumentada.&lt;/li&gt;
&lt;li&gt;Troubleshooting guiado y análisis de causa raíz (RCA).&lt;/li&gt;
&lt;li&gt;Cómo KIRO transforma el ciclo completo de infraestructura.&lt;/li&gt;
&lt;li&gt;Beneficios para equipos de arquitectura y operación.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🌎 &lt;strong&gt;1. Despliegue de Infraestructura con AWS KiRO&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Una de las principales en los cuales se incorpora KiRO , es por las capacidades avanzadas que apoyan de forma inteligente los despliegues de infraestructura en AWS, ya que permite integración directamente con los flujos de IaC y automatización continua. Su rol en esta etapa es clave para asegurar despliegues consistentes, predecibles y libres de errores.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.1 Validación inteligente de IaC (Infrastructure as Code)&lt;/strong&gt;&lt;br&gt;
Kiro analiza plantillas y definiciones de infraestructura en formatos como CloudFormation, CDK y Terraform, identificando:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relaciones mal definidas entre recursos.&lt;/li&gt;
&lt;li&gt;Parámetros inconsistentes o faltantes.&lt;/li&gt;
&lt;li&gt;Bucles de dependencia.&lt;/li&gt;
&lt;li&gt;Políticas IAM que no cumplen buenas prácticas.&lt;/li&gt;
&lt;li&gt;Definiciones que generarán fallos en tiempo de ejecución.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;1.2 Análisis en tiempo real de eventos de despliegue&lt;/strong&gt;&lt;br&gt;
Durante un despliegue, KiRO consume:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Eventos de CloudFormation Stack&lt;/li&gt;
&lt;li&gt;Logs de CodeBuild y CodePipeline&lt;/li&gt;
&lt;li&gt;Salidas de CDK Synth y CDK Deploy&lt;/li&gt;
&lt;li&gt;Cambios registrados en CloudTrail&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Con esta información, puede:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Correlacionar errores de compilación con fallos de permisos&lt;/li&gt;
&lt;li&gt;Detectar recursos que quedaron en estado ROLLBACK_COMPLETE&lt;/li&gt;
&lt;li&gt;Identificar drifts entre infraestructura declarada y real&lt;/li&gt;
&lt;li&gt;Explicar qué dependencia o recurso provocó que el despliegue falle&lt;/li&gt;
&lt;li&gt;Puede guiar paso a paso la solución.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esto ayuda a detectar errores antes de que lleguen al pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.3 Prevención de drift y problemas de consistencia&lt;/strong&gt;&lt;br&gt;
KiRO monitorea continuamente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configuraciones de IAM&lt;/li&gt;
&lt;li&gt;Parámetros de VPC y subredes&lt;/li&gt;
&lt;li&gt;Cambios no declarados en recursos críticos&lt;/li&gt;
&lt;li&gt;Desvíos entre plantilla IaC y estado real&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si detecta un cambio manual, lo señala, explica el impacto y propone las correcciones para volver al estado deseado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.4 Acompañamiento guiado en despliegues complejos&lt;/strong&gt;&lt;br&gt;
Para arquitecturas con múltiples componentes —como EKS, RDS, Lambdas, VPC altamente segmentadas o stacks encadenados— Kiro puede:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proponer el orden correcto de despliegue&lt;/li&gt;
&lt;li&gt;Verificar dependencias inter-stack&lt;/li&gt;
&lt;li&gt;Validar prerequisitos (roles, parámetros, networking)&lt;/li&gt;
&lt;li&gt;Identificar componentes que requieren reprovisión&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esto reduce significativamente el riesgo de fallas por dependencias rotas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.5 Documentación automática del despliegue&lt;/strong&gt;&lt;br&gt;
Al finalizar un despliegue (exitoso o con errores), KIRO puede generar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resumen técnico&lt;/li&gt;
&lt;li&gt;Recursos afectados&lt;/li&gt;
&lt;li&gt;Logs relevantes&lt;/li&gt;
&lt;li&gt;Cambios aplicados&lt;/li&gt;
&lt;li&gt;Causas raíz de fallos (si ocurren)&lt;/li&gt;
&lt;li&gt;Pasos a seguir&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esto no solo acelera auditorías, sino que mejora la trazabilidad operativa.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;2 Asistencia en la Operación de la Reacción a la Prevención&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Una de las bondades principales de KIRO es que actúa como una herramienta de operación predictiva, permitiendo:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.1 Detección temprana de anomalías&lt;/strong&gt;&lt;br&gt;
Basado en métricas históricas, distribución de eventos y patrones &lt;br&gt;
operativos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.2 Recomendaciones de optimización&lt;/strong&gt;&lt;br&gt;
Incluyendo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Costos y dimensionamiento.&lt;/li&gt;
&lt;li&gt;Seguridad (IAM, Security Groups, KMS).&lt;/li&gt;
&lt;li&gt;Mejoras de rendimiento en componentes compute y networking.&lt;/li&gt;
&lt;li&gt;Buenas prácticas de arquitectura.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2.3 Documentación automática de incidentes&lt;/strong&gt;&lt;br&gt;
Genera un informe con:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Análisis de contexto.&lt;/li&gt;
&lt;li&gt;Pasos realizados.&lt;/li&gt;
&lt;li&gt;Hallazgos.&lt;/li&gt;
&lt;li&gt;RCA.&lt;/li&gt;
&lt;li&gt;Solución.&lt;/li&gt;
&lt;li&gt;Recomendaciones futuras.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esto reduce drásticamente la carga operativa y mejora la gobernanza técnica.&lt;/p&gt;

&lt;p&gt;⚙️ &lt;strong&gt;3 Troubleshooting Interactivo y Basado en Razón&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Una de las capacidades más potentes de KIRO es su comportamiento como un asistente técnico conversacional, capaz de:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.1 Diagnóstico guiado&lt;/strong&gt;&lt;br&gt;
Kiro analiza el contexto del incidente, revisa logs, revisa configuración, compara con desviaciones previas y propone hipótesis técnicas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.2 Correlaciones automáticas&lt;/strong&gt;&lt;br&gt;
Relaciona métricas de rendimiento con fallos de despliegue, cambios de configuración o eventos de seguridad.&lt;/p&gt;

&lt;p&gt;Ejemplos típicos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Un error 503 en API Gateway correlacionado con fallas en Lambda y     timeouts de VPC.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Caídas en throughput en EKS correlacionadas con cambios de autoscaling o limitaciones de CPU.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Incremento en 5xx tras un despliegue específico detectado mediante CloudTrail + CodePipeline.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3.3 Guía hacia la causa raíz (RCA)&lt;/strong&gt;&lt;br&gt;
KIRO opera como un copiloto técnico:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identifica el punto de falla.&lt;/li&gt;
&lt;li&gt;Explica qué lo produjo.&lt;/li&gt;
&lt;li&gt;Muestra el rastro de dependencias.&lt;/li&gt;
&lt;li&gt;Propone acciones correctivas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Todo con trazabilidad y evidencia técnica.&lt;/p&gt;

&lt;p&gt;🧪 &lt;strong&gt;4. Caso práctico (ejemplo típico)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Escenario:&lt;/strong&gt; aplicación en EKS con latencia elevada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KIRO permite:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detectar incremento en métricas de latencia (CloudWatch)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Correlacionar con:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Saturación de CPU en pods.&lt;/li&gt;
&lt;li&gt;Throttling en base de datos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Identificar causa raíz:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subdimensionamiento o mala configuración de autoscaling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sugerir acciones:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ajuste de HPA&lt;/li&gt;
&lt;li&gt;Optimización de Queries.&lt;/li&gt;
&lt;li&gt;Mejora de límites de recursos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Troubleshooting Interactivo y Basado en Razón&lt;/p&gt;

&lt;p&gt;🧩 &lt;strong&gt;Aplicación en el ciclo de vida de infraestructura&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📉 Despliegue&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identificación de errores en IaC (CloudFormation/CDK)&lt;/li&gt;
&lt;li&gt;Diagnóstico de fallos en pipelines CI/CD&lt;/li&gt;
&lt;li&gt;Validación de configuraciones antes de producción&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔄 Operación&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitoreo continuo con correlación automática&lt;/li&gt;
&lt;li&gt;Detección de anomalías en tiempo real&lt;/li&gt;
&lt;li&gt;Optimización de performance y costos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🛠️ Troubleshooting&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reducción del tiempo de análisis manual&lt;/li&gt;
&lt;li&gt;Identificación guiada de causa raíz&lt;/li&gt;
&lt;li&gt;Generación de recomendaciones accionables&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📈 &lt;strong&gt;Beneficios clave&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reducción del MTTR hasta un 40–70%&lt;/li&gt;
&lt;li&gt;Menor dependencia de múltiples equipos en incidentes complejos (30–50%)&lt;/li&gt;
&lt;li&gt;Mayor visibilidad end-to-end de la arquitectura&lt;/li&gt;
&lt;li&gt;Documentación implícita del proceso de resolución&lt;/li&gt;
&lt;li&gt;Disminución de errores operativos repetitivos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💬 &lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KIRO&lt;/strong&gt; permite diagnosticar y resolver problemas en AWS de forma interactiva, identificando fallos en despliegues, analizando métricas operativas, explicando causas raíz y proponiendo acciones concretas para mejorar la infraestructura, su operación y la documentación asociada a la resolución de incidentes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy learnning on AWS!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aws</category>
      <category>kiro</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Despliegue, Operación y Troubleshooting interactivo de Infraestructura, usando AWS Kiro</title>
      <dc:creator>Oscar Gaviria</dc:creator>
      <pubDate>Fri, 27 Mar 2026 14:22:44 +0000</pubDate>
      <link>https://dev.to/oscar_gaviria_2b862594738/despliegue-operacion-y-troubleshooting-interactivo-de-infraestructura-usando-aws-kiro-5g33</link>
      <guid>https://dev.to/oscar_gaviria_2b862594738/despliegue-operacion-y-troubleshooting-interactivo-de-infraestructura-usando-aws-kiro-5g33</guid>
      <description>&lt;p&gt;🧠 &lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;La operación de infraestructura en AWS suele involucrar múltiples fuentes de información: configuraciones distribuidas, logs, métricas, eventos de despliegue y dependencias entre servicios. Este escenario hace que la identificación de incidencias y el análisis de causa raíz (RCA) sean procesos complejos, especialmente en entornos modernos basados en microservicios, IaC y automatización continua.&lt;/p&gt;

&lt;p&gt;AWS Kiro surge como una capa de inteligencia que procesa, correlaciona y razona sobre este ecosistema, actuando como un asistente operativo y de troubleshooting interactivo basado en IA, capaz de integrarse desde el despliegue hasta la operación diaria.&lt;/p&gt;

&lt;p&gt;📌 &lt;strong&gt;Preambulo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué es Kiro desde el punto de vista de infraestructura?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kiro puede entenderse como un asistente de troubleshooting interactivo basado en IA, capaz de diagnosticar, correlacionar y resolver incidencias en AWS mediante análisis contextual de múltiples capas:&lt;/p&gt;

&lt;p&gt;🔐 Configuración de recursos: IAM, VPC, compute, storage&lt;/p&gt;

&lt;p&gt;📊 Métricas y logs: Amazon CloudWatch, CloudTrail&lt;/p&gt;

&lt;p&gt;🚀 Eventos de despliegue: CloudFormation, CDK, pipelines CI/CD&lt;/p&gt;

&lt;p&gt;🕸️ Topología de arquitectura: dependencias y flujos entre servicios&lt;/p&gt;

&lt;p&gt;✔️ &lt;strong&gt;En este artículo analizaremos en detalle:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kiro como asistente integral de infraestructura en AWS.&lt;/li&gt;
&lt;li&gt;Soporte inteligente en el despliegue de infraestructura.&lt;/li&gt;
&lt;li&gt;Operación asistida mediante observabilidad aumentada.&lt;/li&gt;
&lt;li&gt;Troubleshooting guiado y análisis de causa raíz (RCA).&lt;/li&gt;
&lt;li&gt;Cómo Kiro transforma el ciclo completo de infraestructura.&lt;/li&gt;
&lt;li&gt;Beneficios para equipos de arquitectura y operación.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🌎 &lt;strong&gt;1. Despliegue de Infraestructura con AWS Kiro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Una de las principales en los cuales se incorpora Kiro , es por las capacidades avanzadas que apoyan de forma inteligente los despliegues de infraestructura en AWS, ya que permite integración directamente con los flujos de IaC y automatización continua. Su rol en esta etapa es clave para asegurar despliegues consistentes, predecibles y libres de errores.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.1 Validación inteligente de IaC (Infrastructure as Code)&lt;/strong&gt;&lt;br&gt;
Kiro analiza plantillas y definiciones de infraestructura en formatos como CloudFormation, CDK y Terraform, identificando:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relaciones mal definidas entre recursos.&lt;/li&gt;
&lt;li&gt;Parámetros inconsistentes o faltantes.&lt;/li&gt;
&lt;li&gt;Bucles de dependencia.&lt;/li&gt;
&lt;li&gt;Políticas IAM que no cumplen buenas prácticas.&lt;/li&gt;
&lt;li&gt;Definiciones que generarán fallos en tiempo de ejecución.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;1.2 Análisis en tiempo real de eventos de despliegue&lt;/strong&gt;&lt;br&gt;
Durante un despliegue, Kiro consume:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Eventos de CloudFormation Stack&lt;/li&gt;
&lt;li&gt;Logs de CodeBuild y CodePipeline&lt;/li&gt;
&lt;li&gt;Salidas de CDK Synth y CDK Deploy&lt;/li&gt;
&lt;li&gt;Cambios registrados en CloudTrail&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Con esta información, puede:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Correlacionar errores de compilación con fallos de permisos&lt;/li&gt;
&lt;li&gt;Detectar recursos que quedaron en estado ROLLBACK_COMPLETE&lt;/li&gt;
&lt;li&gt;Identificar drifts entre infraestructura declarada y real&lt;/li&gt;
&lt;li&gt;Explicar qué dependencia o recurso provocó que el despliegue falle&lt;/li&gt;
&lt;li&gt;Puede guiar paso a paso la solución.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esto ayuda a detectar errores antes de que lleguen al pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.3 Prevención de drift y problemas de consistencia&lt;/strong&gt;&lt;br&gt;
Kiro monitorea continuamente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configuraciones de IAM&lt;/li&gt;
&lt;li&gt;Parámetros de VPC y subredes&lt;/li&gt;
&lt;li&gt;Cambios no declarados en recursos críticos&lt;/li&gt;
&lt;li&gt;Desvíos entre plantilla IaC y estado real&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si detecta un cambio manual, lo señala, explica el impacto y propone las correcciones para volver al estado deseado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.4 Acompañamiento guiado en despliegues complejos&lt;/strong&gt;&lt;br&gt;
Para arquitecturas con múltiples componentes —como EKS, RDS, Lambdas, VPC altamente segmentadas o stacks encadenados— Kiro puede:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proponer el orden correcto de despliegue&lt;/li&gt;
&lt;li&gt;Verificar dependencias inter-stack&lt;/li&gt;
&lt;li&gt;Validar prerequisitos (roles, parámetros, networking)&lt;/li&gt;
&lt;li&gt;Identificar componentes que requieren reprovisión&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esto reduce significativamente el riesgo de fallas por dependencias rotas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.5 Documentación automática del despliegue&lt;/strong&gt;&lt;br&gt;
Al finalizar un despliegue (exitoso o con errores), Kiro puede generar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resumen técnico&lt;/li&gt;
&lt;li&gt;Recursos afectados&lt;/li&gt;
&lt;li&gt;Logs relevantes&lt;/li&gt;
&lt;li&gt;Cambios aplicados&lt;/li&gt;
&lt;li&gt;Causas raíz de fallos (si ocurren)&lt;/li&gt;
&lt;li&gt;Pasos a seguir&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esto no solo acelera auditorías, sino que mejora la trazabilidad operativa.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;2 Asistencia en la Operación de la Reacción a la Prevención&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Una de las bondades principales de Kiro, es que actúa como una herramienta de operación predictiva, permitiendo:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.1 Detección temprana de anomalías&lt;/strong&gt;&lt;br&gt;
Basado en métricas históricas, distribución de eventos y patrones &lt;br&gt;
operativos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.2 Recomendaciones de optimización&lt;/strong&gt;&lt;br&gt;
Incluyendo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Costos y dimensionamiento.&lt;/li&gt;
&lt;li&gt;Seguridad (IAM, Security Groups, KMS).&lt;/li&gt;
&lt;li&gt;Mejoras de rendimiento en componentes compute y networking.&lt;/li&gt;
&lt;li&gt;Buenas prácticas de arquitectura.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2.3 Documentación automática de incidentes&lt;/strong&gt;&lt;br&gt;
Genera un informe con:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Análisis de contexto.&lt;/li&gt;
&lt;li&gt;Pasos realizados.&lt;/li&gt;
&lt;li&gt;Hallazgos.&lt;/li&gt;
&lt;li&gt;RCA.&lt;/li&gt;
&lt;li&gt;Solución.&lt;/li&gt;
&lt;li&gt;Recomendaciones futuras.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esto reduce drásticamente la carga operativa y mejora la gobernanza técnica.&lt;/p&gt;

&lt;p&gt;⚙️ &lt;strong&gt;3 Troubleshooting Interactivo y Basado en Razón&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Una de las capacidades más potentes de Kiro es su comportamiento como un asistente técnico conversacional, capaz de:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.1 Diagnóstico guiado&lt;/strong&gt;&lt;br&gt;
Kiro analiza el contexto del incidente, revisa logs, revisa configuración, compara con desviaciones previas y propone hipótesis técnicas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.2 Correlaciones automáticas&lt;/strong&gt;&lt;br&gt;
Relaciona métricas de rendimiento con fallos de despliegue, cambios de configuración o eventos de seguridad.&lt;/p&gt;

&lt;p&gt;Ejemplos típicos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Un error 503 en API Gateway correlacionado con fallas en Lambda y     timeouts de VPC.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Caídas en throughput en EKS correlacionadas con cambios de autoscaling o limitaciones de CPU.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Incremento en 5xx tras un despliegue específico detectado mediante CloudTrail + CodePipeline.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3.3 Guía hacia la causa raíz (RCA)&lt;/strong&gt;&lt;br&gt;
Kiro opera como un copiloto técnico:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identifica el punto de falla.&lt;/li&gt;
&lt;li&gt;Explica qué lo produjo.&lt;/li&gt;
&lt;li&gt;Muestra el rastro de dependencias.&lt;/li&gt;
&lt;li&gt;Propone acciones correctivas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Todo con trazabilidad y evidencia técnica.&lt;/p&gt;

&lt;p&gt;🧪 &lt;strong&gt;4. Caso práctico (ejemplo típico)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Escenario:&lt;/strong&gt; aplicación en EKS con latencia elevada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro permite:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detectar incremento en métricas de latencia (CloudWatch)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Correlacionar con:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Saturación de CPU en pods.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Throttling en base de datos.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Identificar causa raíz:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subdimensionamiento o mala configuración de autoscaling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sugerir acciones:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ajuste de HPA&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optimización de Queries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mejora de límites de recursos.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Troubleshooting Interactivo y Basado en Razón&lt;/p&gt;

&lt;p&gt;** Aplicación en el ciclo de vida de infraestructura**&lt;/p&gt;

&lt;p&gt;👉 Despliegue&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identificación de errores en IaC (CloudFormation/CDK)&lt;/li&gt;
&lt;li&gt;Diagnóstico de fallos en pipelines CI/CD&lt;/li&gt;
&lt;li&gt;Validación de configuraciones antes de producción&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔄 Operación&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitoreo continuo con correlación automática&lt;/li&gt;
&lt;li&gt;Detección de anomalías en tiempo real&lt;/li&gt;
&lt;li&gt;Optimización de performance y costos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🛠️ Troubleshooting&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reducción del tiempo de análisis manual&lt;/li&gt;
&lt;li&gt;Identificación guiada de causa raíz&lt;/li&gt;
&lt;li&gt;Generación de recomendaciones accionables&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📈 &lt;strong&gt;Beneficios clave&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;⏱️ Reducción del MTTR hasta un 40–70%&lt;br&gt;
👥 Menor dependencia de múltiples equipos en incidentes complejos (30–50%)&lt;br&gt;
🔍 Mayor visibilidad end-to-end de la arquitectura&lt;br&gt;
📚 Documentación implícita del proceso de resolución&lt;br&gt;
📉 Disminución de errores operativos repetitivos&lt;/p&gt;

&lt;p&gt;💬 &lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kiro permite diagnosticar y resolver problemas en AWS de forma interactiva, identificando fallos en despliegues, analizando métricas operativas, explicando causas raíz y proponiendo acciones concretas para mejorar la infraestructura, su operación y la documentación asociada a la resolución de incidentes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy learnning on AWS!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>kiro</category>
      <category>architecture</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
