DEV Community

Cover image for Opciones de conectividad privada de Amazon VPC: VPC Peering vs Transit Gateway vs PrivateLink
Cristhian Becerra
Cristhian Becerra

Posted on • Edited on

Opciones de conectividad privada de Amazon VPC: VPC Peering vs Transit Gateway vs PrivateLink

TL;DR: En el mundo de la computación en la nube, garantizar una comunicación segura y eficiente entre varios recursos es primordial. Amazon Web Services (AWS) ofrece varias opciones para la conectividad privada dentro y entre Nubes Privadas Virtuales (VPCs). Este artículo explora tres métodos principales: VPC Peering, AWS Transit Gateway y AWS PrivateLink. Cada método tiene sus características únicas, beneficios y casos de uso, por lo que es esencial comprender sus diferencias para elegir la solución adecuada para tus necesidades. 🙌🏻


Tabla de Contenidos:


Introducción

Si tienes dos instancias EC2 en distintas Amazon VPC, probablemente no deberían estar comunicándose mediante direcciones IP públicas. En ese caso, deberías usar VPC Peering para establecer una comunicación privada entre las VPC.

Eventualmente, cuando tu infraestructura crezca y tengas muchas VPC con la necesidad de conectarlas entre sí, la cantidad de conexiones de emparejamiento aumentará considerablemente, al igual que el esfuerzo requerido para gestionarlas. Es ahí cuando se considera usar AWS Transit Gateway para implementar un diseño Hub & Spoke más sencillo de gestionar a esa escala.

Eso parecería resolver el problema de la interconectividad privada, pero tanto VPC Peering como Transit Gateway establecen un túnel completo de comunicación bidireccional, permitiendo que cualquier ENI en la VPC A pueda comunicarse con cualquier ENI en la VPC B. Para algunos, eso podría no parecer muy seguro.

En ese punto aparece PrivateLink, que permite exponer únicamente endpoints específicos de la VPC B, de modo que la VPC A los consuma de forma unidireccional, sin permitir tráfico indiscriminado entre VPCs. Esto es particularmente importante cuando las VPC pertenecen a distintos propietarios.

¿Entonces qué? ¿Así de simple es el criterio para escoger entre estos tres servicios de AWS? Digamos que esa es la idea básica, pero es un poco más complejo que eso. En este artículo exploraremos las características clave de cada servicio y comparaciones detalladas entre ellos que probablemente te resulten útiles. 🚀

Por qué importa conocer las opciones de conectividad privada de Amazon VPC

La mayor parte de nuestro tráfico en la nube probablemente no debería pasar a través de Internet. Sin embargo, este suele ser el comportamiento predeterminado cuando comenzamos con AWS: exponemos todo mediante una dirección IP pública y consumimos endpoints públicos a través de un Internet Gateway.

Pero dirigir todo el tráfico por Internet no solo te expone desde el punto de vista de seguridad, sino que también puede implicar costos más altos que una opción privada y segura. ¿Qué? ¿Más seguridad a menor costo? Así es. 🤯

AWS ofrece varias opciones que permiten lograr esto. Por ejemplo, los Gateway Endpoints, mediante los cuales tus recursos en una VPC pueden comunicarse con servicios como Amazon S3 o Amazon DynamoDB sin costos por transferencia de datos. He visto casos de clientes cuyas instancias EC2 realizaban millones de solicitudes a S3 al mes, y créeme, el costo por transferencia de datos hacia Internet no es nada barato. Con una implementación increíblemente simple como la de los Gateway Endpoints, podrían haberse ahorrado miles de dólares en su factura de AWS.

Ahora bien, el enfoque de este artículo no son los Gateway Endpoints, sino revisar otras opciones de conectividad algo más avanzadas que te permitirán obtener beneficios principalmente en el ámbito de la seguridad y las conexiones privadas. Algunas de ellas son más seguras y privadas que otras, dependiendo siempre de tu caso de uso.

Pero mi punto es que, si no conoces estos servicios de AWS, junto con sus beneficios y limitaciones, podrías no realizar correctamente el análisis de trade-offs y terminar tomando una decisión equivocada al escoger el servicio más adecuado para tu caso. Por eso es importante conocer las opciones de conectividad privada de Amazon VPC.


VPC Peering

VPC Peering permite conectar dos VPCs de forma privada utilizando la red de AWS, haciéndolas comportarse como si estuvieran en la misma red. Esta conexión se puede establecer entre VPCs en la misma región de AWS o en regiones diferentes. Además, VPC Peering permite conexiones entre VPCs propiedad de diferentes cuentas de AWS.

Características clave de VPC Peering

  • Conectividad privada: Permite la comunicación privada entre VPCs.
  • Multirregional y multicuenta: Admite VPCs en diferentes regiones y cuentas.
  • CIDR no superpuestos: Las VPCs deben tener bloques CIDR no superpuestos.
  • Actualizaciones de la tabla de rutas: Requiere actualizar las tablas de rutas en las subredes de cada VPC para garantizar que las instancias puedan comunicarse.

VPC Peering

Limitaciones de VPC Peering

  • Superposición de CIDR: Las VPCs no deben tener bloques CIDR superpuestos.
  • No transitivo: Las conexiones VPC Peering no son transitivas; cada VPC que necesita comunicarse debe tener una conexión de emparejamiento directa.
  • Una sola conexión por par de VPC: Solo se puede establecer una conexión VPC peering entre dos VPCs.
  • Límite de conexión: Máximo de 125 conexiones VPC peering por VPC.

Escenarios no válidos para VPC Peering

  • Conexión VPN o Direct Connect a la red local.
  • Acceso a Internet a través de un Internet Gateway de una VPC emparejada.
  • Acceso a Internet a través del NAT Gateway de una VPC emparejada.
  • Acceso a S3/DynamoDB a través de un VPC Gateway endpoint.

Conexión VPC Peering con múltiples VPCs

Cuando múltiples VPCs necesitan comunicarse entre sí utilizando el emparejamiento, debe crear una full mesh de conexiones de emparejamiento. Esto se vuelve rápidamente complejo a medida que aumenta el número de VPCs.

VPC Peering con múltiples conexiones de emparejamiento

Esta arquitectura ya comienza a tener demasiadas conexiones de emparejamiento que gestionar, ¿cierto? Creo que ya empiezo a notar el Full Mess — perdón, Full Mesh — en la red. Será mejor pasar al siguiente servicio: AWS Transit Gateway. 😂


AWS Transit Gateway

Transit Gateway permite a los clientes interconectar miles de VPCs y redes locales en un modelo de hub-and-spoke. Simplifica la gestión de la red centralizando la conectividad.

Características clave de Transit Gateway

  • Attachments: Admite attachments para VPCs, conexiones de emparejamiento con otras Transit Gateways, VPNs, Direct Connect Gateways y dispositivos de red de terceros.
  • Características: Incluye soporte para multidifusión, MTU, modo de dispositivo, consideración de AZ y TGW Sharing.
  • Arquitecturas: Admite arquitecturas como inspección centralizada de tráfico, egreso centralizado y servicios compartidos.

Por qué usar Transit Gateway

  • Escalabilidad: Admite hasta 5000 attachments.
  • Conectividad híbrida: Permite la conectividad híbrida a través de VPN y Direct Connect.
  • Gestión simplificada: Reduce la complejidad en la gestión de múltiples conexiones VPC.

Transit Gateway con múltiples VPCs

Un Transit Gateway actúa como un enrutador central para todas las VPCs conectadas, simplificando drásticamente la gestión de la conectividad. Cada VPC solo necesita una sola conexión al TGW.

Transit Gateway

Transit Gateway con conexión local

Transit Gateway se integra con AWS Site-to-Site VPN y AWS Direct Connect para extender tu red privada a AWS de forma segura.

Transit Gateway con conexión local

Emparejamiento de Transit Gateway entre regiones de AWS

Transit Gateway admite emparejamiento entre regiones, lo que le permite construir una red privada global entre regiones de AWS sin exponer el tráfico a Internet.

Emparejamiento de Transit Gateway

Consideraciones importantes para Transit Gateway

  • Resolución de DNS: Admite la resolución de DNS para todas las VPCs conectadas al TGW.
  • Compartir con RAM: Se puede compartir utilizando Resource Access Manager (RAM) entre cuentas de AWS.
  • Facturación: Se factura por hora, por attachment, con cargos por procesamiento de datos.
  • Ancho de banda: Admite hasta 50 Gbps de ancho de banda total de VPN con ECMP.
  • MTU: Admite una MTU de 8500 bytes para el tráfico entre VPCs y 1500 bytes para las conexiones VPN.

VPC Peering vs Transit Gateway

Característica VPC Peering Transit Gateway
Arquitectura Conexión uno a uno – Full mesh Hub and Spoke con múltiples attachments
Conectividad híbrida No soportado Soportado a través de VPN y Direct Connect
Complejidad Simple para menos VPCs, Complejo a medida que aumenta el número Simple para cualquier número de VPCs y conectividad de red híbrida
Escalabilidad 125 conexiones de emparejamiento por VPC 5000 attachments por TGW
Latencia Más baja Salto adicional
Ancho de banda Sin límite 50 Gbps por attachment
Referencia de grupo de seguridad Soportado Soportado (solo reglas de entrada)
Conectividad de subred Para todas las subredes a través de AZs Solo subredes dentro de la misma AZ en la que se crea el attachment TGW
Enrutamiento transitivo No soportado Soportado
TCO Más bajo – Solo costo de transferencia de datos Costo por attachment + costo de transferencia de datos

Muy bonito todo, pero recuerda que ninguno de estos dos servicios soluciona el problema de las VPC con CIDRs superpuestos. Además, ambos establecen un túnel bidireccional muy amplio entre VPCs, y cuando conozcas el siguiente servicio, AWS PrivateLink, lo pensarás dos veces antes de elegir de inmediato uno de estos servicios para tu conectividad privada. 🧐


AWS PrivateLink

AWS PrivateLink, junto con los endpoints de VPC, permite conexiones seguras y privadas entre tu VPC y los servicios de AWS soportados, incluidos aquellos alojados por otros clientes o socios de AWS.

Por qué usar VPC Endpoints

  • Comunicación privada: Permite una comunicación segura entre tu VPC y los servicios de AWS sin usar Internet.
  • Superficie de ataque reducida: Elimina la necesidad de Internet Gateways, dispositivos NAT o VPN, minimizando la exposición.
  • Amplio soporte de servicios: Funciona con servicios nativos de AWS, servicios de socios y aquellos alojados por otros clientes de AWS.
  • Exposición controlada: Permite exponer únicamente aplicaciones o endpoints específicos, en lugar de toda la red.
  • Compatibilidad con CIDRs superpuestos: Soluciona el dilema de la conectividad privada entre VPCs que usan rangos de direcciones IP superpuestos.

Sin VPC Endpoints y PrivateLink

Sin PrivateLink, tu tráfico a los servicios de AWS viaja por Internet público, aunque ambos recursos residen en AWS. Esto introduce latencia adicional, exposición de seguridad y dependencia de la ruta de Internet.

Sin VPC endpoints y PrivateLink

Con VPC Endpoints y PrivateLink

Con PrivateLink, tu VPC (consumidora) se conecta de forma privada a servicios de AWS o de terceros (proveedores) a través de ENIs locales (Interfaces de Red Elásticas), asegurando que el tráfico permanezca dentro de la red troncal de AWS.

Con VPC endpoints y PrivateLink

Descripción general de VPC Endpoints y PrivateLink

  • Proporcionan conectividad de red privada entre VPCs y servicios de AWS.
  • Eliminan la necesidad de puertas Internet Gateways o NAT Gateways.
  • Los endpoints son redundantes, escalables horizontalmente y altamente disponibles.
  • Gateway endpoint: Acceso solo a Amazon S3 y DynamoDB.
  • Interface endpoint: Acceso a servicios entre cuentas u otras VPCs.
  • Otros tipos de endpoints: Gateway Load Balancer, Resource y Service-Network.

VPC Endpoints impulsados por PrivateLink

  • Interface endpoint: Para acceder a servicios implementados en otras VPCs y cuentas de AWS.
  • Resource endpoint: Para recursos específicos.
  • Service-Network endpoint: Para redes de servicios de VPC Lattice.
  • Soporte para IPv4 e IPv6: Soporte de NAT y tráfico UDP.

VPC PrivateLink

Consideraciones importantes para VPC PrivateLink

  • Direcciones IP locales: Los endpoints de VPC crean direcciones IP locales usando ENI.
  • Soporte de superposición de CIDR: Puede conectar servicios dentro de VPCs con bloques CIDR superpuestos.
  • Alta disponibilidad: Cree endpoints de VPC en múltiples Zonas de Disponibilidad.
  • Grupos de seguridad: Utiliza grupos de seguridad – reglas de entrada.
  • Soporte de tráfico: Admite tráfico IPv4 e IPv6 sobre TCP y UDP.
  • Acceso desde otras redes: Puede accederse desde otras redes como VPCs emparejadas, Transit Gateway, VPN o Direct Connect.

Comunicación entre VPCs con CIDRs superpuestos

PrivateLink permite la comunicación entre VPCs que usan bloques CIDR superpuestos sin requerir cambios de enrutamiento.

VPC PrivateLink con CIDRs superpuestos

Endpoint de VPC con grupo de seguridad

Los endpoints de PrivateLink están asociados con ENIs y protegidos por reglas de entrada de grupos de seguridad para un acceso controlado.

Endpoint de VPC con grupo de seguridad

Acceso desde otras redes

Los endpoints de PrivateLink se pueden acceder desde redes externas como VPCs emparejadas, Transit Gateway, VPN y Direct Connect.

Acceso desde otras redes a endpoint de VPC

AWS PrivateLink vs VPC Peering

  • VPC Peering: Útil para muchos recursos que se comunican entre VPCs emparejadas.
  • PrivateLink: Ideal para permitir el acceso a una sola aplicación alojada en tu VPC sin emparejar las VPCs.
  • Superposición de CIDR: No se puede crear un emparejamiento de VPC con CIDRs superpuestos, pero PrivateLink lo admite.
  • Límites de conexión: Máximo de 125 conexiones de emparejamiento; sin límite en las conexiones de PrivateLink.
  • Origen del tráfico: El emparejamiento de VPC permite el origen de tráfico bidireccional; PrivateLink permite solo que el consumidor origine el tráfico.

Lecciones Aprendidas

En este trabajo vivirás haciendo análisis de trade-offs de manera constante. A veces, un solo servicio no será la solución perfecta para tu problema; necesitarás combinarlos o incluso ponerte creativo. 🤔

Para mí, lo más importante que me gustaría que te lleves de estas lecciones aprendidas es la importancia del costo en el análisis de trade-offs, y que, para evitar sorpresas a final de mes, nunca te olvides de los precios de cada servicio.

Porque sí, Transit Gateway puede ser una excelente opción para gestionar múltiples conexiones a gran escala, pero también implica un costo considerable por cada attachment y por cada gigabyte de tráfico procesado, mientras que VPC Peering es prácticamente gratuito.

De igual forma, podrías inclinarte por usar PrivateLink para que tus instancias EC2 consuman todos los servicios de AWS mediante endpoints privados, pero recuerda que cada endpoint tiene un costo fijo, además del costo por procesamiento de datos. Quizá te convenga usarlo solo para servicios como AWS Secrets Manager o AWS KMS, pero no necesariamente para Amazon S3 o Amazon CloudWatch, especialmente si no manejas información sensible.

Un comentario adicional: Como se mencionó anteriormente, Transit Gateway resulta útil en múltiples patrones de arquitectura centralizados, entre los cuales se encuentra el patrón de servicios compartidos. Este patrón se refiere a que, si múltiples VPC necesitan un endpoint de PrivateLink, puede que no sea la mejor idea crearlo en cada VPC, sino implementarlo en una VPC de servicios compartidos, desde la cual los consumidores accedan al endpoint de forma centralizada.

Conclusión

Elegir la opción de conectividad privada adecuada en AWS depende de sus requisitos específicos, incluyendo el número de VPCs, la necesidad de conectividad híbrida y la complejidad de tu arquitectura de red. VPC Peering es ideal para conexiones simples y directas entre un número limitado de VPCs. Transit Gateway ofrece escalabilidad y gestión simplificada para redes más grandes y complejas. AWS PrivateLink proporciona conexiones seguras y privadas a los servicios de AWS y otras VPCs, especialmente útil para el acceso a aplicaciones específicas sin el emparejamiento completo de VPC. Comprender estas opciones te ayudará a diseñar una arquitectura de red robusta, segura y eficiente en AWS.

Qué sigue

En la siguiente sección dejaré los recursos y documentos oficiales de los servicios mencionados, junto con algunos puntos interesantes sobre los temas que he tratado, por si te interesa continuar aprendiendo sobre ellos o profundizar para determinar si realmente aplican a tu caso de uso.

También te invito a desplegar y probar estos tres servicios en tu cuenta de AWS y dejarme en los comentarios qué te parecieron. Y si ya los conoces, cuéntame en los comentarios qué trade-off particular te llevó a escoger entre un servicio y otro, o qué característica descubriste que cambió radicalmente tu percepción sobre alguno de ellos. ✍🏻

Quizá has oído hablar de Amazon VPC Lattice, un servicio relativamente nuevo en comparación con los otros mencionados en este artículo, pero que está ganando cada vez más adopción como una de las opciones más modernas para la conectividad privada en Amazon VPC. Te invito a echarle un vistazo; pronto estaré probándolo y escribiendo un artículo al respecto.

Recursos oficiales

Top comments (0)