Blog de Felipe Jaramillo Fonnegra

300 Baudios

OpenVPN con Amazon Virtual Private Cloud

Este es un breve post haciendo una introducción a las VPC y apuntando a las instrucciones para crear una VPN (Virtual Private Network) privada usando una conexión vía software con el servicio de nube virtual Amazon Virtual Private Cloud.

El servicio de Virtual Private Cloud es uno de los menos usados y que muchas veces generan confusiones. Las cuentas AWS más recientes usan un VPC por defecto.

¿Cuál es el problema con las instancias normales sin una VPC? Simplemente son accesibles desde cualquier parte. Si tenemos 5 instancias en EC2, todas ellas son accesibles con una DNS privada de Amazon. Si solo una instancia debe servir tráfico, ¿para qué dejar las demás abiertas?

El servicio de VPC útil en muchos más casos de los que parece a simple vista. La definición formal:

Amazon Virtual Private Cloud (Amazon VPC) permite disfrutar de una sección privada y aislada de la nube de Amazon Web Services (AWS) donde podrá lanzar recursos de AWS en una red virtual que defina.

Algunos puntos que me parece importante tener en cuenta y que ilustran cosas que en un principio no entendía claramente:

  • Una VPC puede contener varias subredes públicas y privadas. Se pueden tener instancias de EC2 en la red pública (ej. un servidor web) así como instancias con acceso restringido (ej. un servidor de base de datos al que solo se tiene acceso desde dentro de la VPC).
  • En el caso de las subredes privadas, el acceso a internet, (por ejemplo para descargar actualizaciones de software) se hace desde una NAT (Network Address Translation), que es una instancia de EC2 (y se cobra como tal).
  • Las reglas de enrutamiento (ej. tráfico entre subredes o entre subredes y el internet) pueden ser bastante sofisticadas y son fáciles de administrar.
  • El acceso de una instancia en una subred pública se hace a través de un Internet Gateway, un servicio sin costo.
  • Las reglas o políticas de seguridad son más sofisticadas que en el EC2 normal. Permiten reglas de entrada y de salida a diferencia de EC2 normal que solo tiene reglas de entrada, permitiendo salida en todos los puertos por defecto.
  • Dentro de una VPC se pueden correr instancias de diferentes tamaños
  • En 2013 empezaron a permitir instancias tipo t1.micro. Excelente para probar gratis dentro del Free Tier.
  • Una VPC puede correr instnacias en hardware dedicado para nosotros. Esto se conoce como dedicated instances. Por un nada despreciable USD$7.000 por mes se obtiene ese derecho y aplica para un número indefinido de instancias dedicadas. El costo de la instancia es un poco mayor, pero el impacto pricipal es cubrir el valor del derecho. Permiten mejor rendimiento, más control y el cumplimiento de posibles regulaciones que lo obliguen.

El servicio de VPC no tiene un costo adicional. Solamente se incurre en un costo si se conecta una VPN de hardware desde nuestras instalaciones a la VPC.

Una vez tenemos una VPC propia, ¿cómo nos conectamos a ella desde nuestras oficinas?. Tenemos dos opciones:

Hardware o Software

La manera soportada por defecto por Amazon usa una conexión que requiere hardware con soporte para BGP (Border Gateway Protocol), esto incluye routers de Cisco, Vyatta y Yamaha entre otros.

Muchas personas o empresas no tienen routers de VPN con soporte BGP y buscan conectarse a través de una VPN por software.

Usando herramientas como OpenVPN corriendo en una instancia dentro de la red es posible establecer una conexión de VPN segura.

Puede resultar intimidante, pero para eso encontré el siguiente post del blog Architected Availability de Matthew Barlocker:

Tutorial para integrar OpenVPN con Amazon Virtual Private Cloud

Espero que este repaso sea útil y que puedan aprovechar una VPC mucho mejor.