Al estar todas las aplicaciones y servicios desplegados en internet, el networking es uno de los puntos más importantes a la hora de optar por una solución cloud.

gcp network.PNG

VPC

Para el manejo de las redes en la nube se acostumbra establecer una VPC (Virtual Private Cloud), que no es más que una red virtual privada que provee funcionalidades de networking globales, escalables y flexibles.
Todos los recursos que se crean en la nube pertenecen a una VPC y para que se puedan comunicar con otros servicios en otra VPC es necesario configurar reglas de ruteo, firewall y redireccionamiento.
Para la comunicación entre un ambiente local y una VPC es necesario usar una VPN  y para la comunicación de mas de un ambiente local con una VPC se utiliza VPC compartidas.

Las VPC tiene las siguientes características:

  • Las máquinas virtuales que forman parte de una VPC pueden estar ubicadas en cualquier zona o región.
  • Escalable y multi-tenancy. Una VPC puede ser compartida por mas de un proyecto y la comunicación entre ellos se realiza mediante direcciones IP privadas.
  • Privadas y seguras. Se pueden agregar reglas de firewall para permitir o bloquear tráficos y datos.
  • Gran capacidad. Las VPC pueden contener hasta 7000 máquinas virtuales.
  • Se pueden crear hasta 5 VPC por proyecto, pero de requerirse más, se puede solicitar al equipo de Google Cloud. Se puede particionar en una cantidad de subredes ilimitadas mientras que cada subred solo puede tener recursos de una misma región. El rango de IP de la subred no tiene que heredar el mismo rango de IP de la VPC como en las redes tradicionales.

gcp vpc.png

Hay 3 tipos de VPC:

  • Default. Es la red por defecto que se crea automáticamente al crear un nuevo proyecto.
  • Auto Mode. Se crea una subred por cada región automáticamente.
  • Custom Mode. Se crean las subredes manualmente.

 

Direcciones IP, Alias, Ruteo y Firewall.

Si es necesario que una máquina virtual sea accesible desde afuera de la VPC, se le debe asignar una dirección IP externa. Cada dirección IP externa que se encuentre reservada y no asignada va a generar gastos extras.

Un servicio dentro de una máquina virtual solo necesita una dirección IP, pero puede darse el caso de que distintos servicios dentro de la misma máquina requieran direcciones IP distintas. Para ese escenario se pueden usar IP Alias, utilizando direcciones IP disponibles del rango primario o secundario de la subred. La VPC genera automáticamente todo el ruteo necesario para las nuevas IP asignadas.

Los alias son muy útiles si se desea separar la red de la máquina de la red de contenedores que puedan estar ejecutándose en la misma.

Las rutas se utilizan para indicar a la VPC a donde enviar los paquetes y pueden ser asignada a más de una máquina virtual. Al crear una red se crean automáticamente 2 rutas, una para dirigir el trafico desde dentro de la VPC al exterior, y otra para facilitar la comunicación dentro de la misma VPC.

gcp cloud router 1.png

Al crear una ruta se debe especificar a que VPC aplica, el rango de IP destino del paquete que debe interceptar, la prioridad y Next Hop (próximo destino del paquete). Opcionalmente se puede definir tags de las instancias a las que aplica la regla.

El crear rutas por si sólo no garantiza el tráfico de paquetes, también es necesario agregar reglas de firewall.

Las reglas de firewall se utilizar para permitir o denegar el tráfico tanto de conexiones entrantes como salientes. Cada regla se compone de una dirección IP, un puerto y el protocolo de comunicación.

gcp firewall 1.PNG

La asignación de reglas de firewall puede ser restringidas mediante el uso de service account o tags. Solo se permite el uso de IPv4 y pertenecen a una única red, o sea, no pueden ser compartidas como las rutas.

 

Conectividad con Google Cloud y Balanceo de carga.

Google Cloud ofrece 3 formas de establecer conexiones con sus servicios.

  • Mediante VPNs usando Cloud Router.

Las VPN permiten ruteo estático y dinámico entre la red local y la VPC, pero tiene alta latencia y velocidades moderadas en comparación a conexión directa o pareada.

cloud VPN.PNG

La mejor forma de establecer una conexión mediante una VPN es haciendo uso de Cloud Router, ya que permite intercambiar rutas dinámicamente entre la red local y la red de Google y descubre e incorpora cambios en la topología de forma automática. Es un servicio distribuido y manejado que utiliza BGP (Border Gateway Protocol).

  • Inter-connect

Es una conexión por física directa entre la red de Google y la red local. Permite gran ancho de banda, muy baja latencia y utiliza el estándar RFC 1918. Es mejor en términos de costo por velocidad, soporta un rango de velocidades entre 50mbs y 10gbs por conexión y permite tener hasta 8 conexiones simultáneas. El cliente debe cumplir determinados requerimientos para poder optar por esta opción. Está la posibilidad de inter-conexión a través de partners si no se cumplen todos los requerimientos técnicos de ubicación para una directa. Tiene costos de trafico de salida reducido, pero se cobra por cada enlace o VLAN y tiene un SLA de 99.99% de disponibilidad.

gcp interconnets.PNG

 

 

 

 

 

 

  • Peering directo o por Carrier.

Es una conexión pareada entre Google o el Carrier y la red local de la organización mediante puntos de acceso Edge. Utiliza ruteo dinámico para compartir rutas BGP mediante la ubicación del router del cliente en uno de los puntos de presencia de Google (más de 100 a nivel global) y de esta forma obtener tráfico directo. Para este servicio no se ofrece SLA y tiene un costo especial (menor) para tráfico de salida. El acceso a la red ocurre mediante direcciones IP públicas. Cuando el cliente no puede conectarse directamente con un punto de Google puede hacerlo a través de un Carrier asociado.

direct peering.PNG

Balanceo de carga.

Se utiliza para redireccionar el tráfico al nodo con más disponibilidad dentro del grupo de instancia que tiene asignado. Puede hacer tareas de auto-escalamiento hacia arriba si hay mucha demanda, e incluso parar instancias si hay poco tráfico.

load balancer.PNG

Para lograr un balanceo de carga adecuado es recomendado tener grupos de instancias, los cuales permiten administrar las instancias de máquinas virtuales similares de forma masiva y permite escalamiento horizontal cuando sea necesario, incluso de forma automática usando plantillas de instancias.

Existen dos grupos de instancias:

  • Manejados. Son grupos de instancias idénticas, para crearlas se usa un template con propiedades predefinidas para el tipo de máquina, la imagen, zona, etc. Son usadas por balanceadores, los que se encargan de distribuir el tráfico entre los nodos que tienen a su disposición, en dependencia de la carga que tenga cada uno u otros parámetros de balanceo.
  • No manejados. Las instancias no tienen porque ser iguales, ni creadas por la misma imagen. Se usan generalmente cuando es necesario aplicar balanceo de carga a una configuración ya existente.

Los grupos manejados pueden identificar si una de sus instancias es eliminada, detenida o presenta errores y procede a recrearla automáticamente. Este proceso se llama auto-healing y para ello se deben configurar chequeos de vitalidad (health-checks) tanto para el grupo manejado como para el balanceador.

Los chequeos de vitalidad se programan para ser ejecutados cada un intervalo determinado y generalmente se verifica por:

  • Tiempos de respuestas de las instancias.
  • Chequeos de sanidad.
  • Cantidad de respuestas exitosas o con errores consecutivas.

El balanceo puede ser:

  • Interno: Recibe el tráfico desde otras instancias de la nube. Solo admite tráfico de tipo regional.
  • Externo: Cuando recibe tráfico directamente del usuario. El externo puede clasificarse a su vez en:
    • Regional: Sólo tipo red de Capa Red.
    • Gobal: Hay 3 tipos: HTTP/HTTPS (Capa aplicación), Proxy SSL (Capa sesión) y Proxy TCP (Capa transporte).

El tipo de balanceador mas eficiente y mas usado es el HTTP/HTTPS y este puede distribuir el tráfico teniendo en cuenta varios factores:

  • En dependencia de la proximidad del usuario.
  • Basado en la URL
  • Afinidad de sesión.
  • Carga de CPU.
  • Cantidad de request por segundo que maneja.
  • Sanidad de la instancia.

 

Conexiones entre VPC, Cloud DNS y Cloud CDN.

Es muy posible que en una misma organización se requiera tener una red compartida entre distintos proyectos en la nube.

Existen dos formas lograr esto:

  • VPC compartidas (XPN). Consiste en crear un proyecto y designarlo como host, y luego se pueden adjuntar otros proyectos a la misma VPC del proyecto principal. Estos proyectos adjuntados se llaman service. De esta forma se logra mantener un control centralizado sobre todos los recursos de la red, como: subred, rutas, reglas de firewall, etc. Un proyecto de tipo host no puede ser service a la vez y un proyecto service solo puede ser asociado a uno host. Cada red VPC que exista en un proyecto host se considera de tipo compartida.

share vpc

  • VPC peering. Esta opción permite conectar proyectos incluso sin que pertenezcan a la misma organización. Permite conexiones privadas de tipo RFC 1918. Se usa frecuentemente para construir ecosistemas de software as a service, ya que permite que los servicios estén comunicados de forma privada a través de diferentes VPC. Las redes pareadas se administran de forma independiente. Se pueden parear entre si hasta un máximo de 25 redes, pero solo son accesibles entre ellas las redes adyacentes.

gcp vpc peering

Este tipo de conexión ofrece mejores velocidades y menos latencia con respecto a comunicación por direcciones IP públicas. Al no tener direcciones IP externas ofrece mejor seguridad y menos costos de operación ya que todo el tráfico se considera interno.

Cloud DNS.

Es el gestor de DNS de Google. Es un servicio de resolución de nombre de dominio de gran rendimiento y resiliencia. Se encarga de publicar los nombres de dominio de los clientes en los servidores de dominio global a un costo mínimo, mientras garantiza bajas latencias.

gcp dns.PNG

Los registros de DNS de google comparten las mismas características de otros servicios de DNS comunes, pertenecen a un proyecto y se agrupan por Zonas.

 

Cloud CDN.

Plataforma de contenido de Google Cloud. Utiliza amplia red de Google con alcance global para acelerar la entrega de contenido a bajos costos y latencia mediante el uso de Edge Cache. No requiere DNS regionales y habilitar SSL no implica costos extras. Es un servicio manejado por Google que solo requiere configurar un balanceador de carga y marcar un checkBox para su funcionamiento. Tiene como ventaja que los costos asociados al trafico son 50% menores, por ejemplo Google cobra 9 centavos por giga de trafico saliente, pero si es a través de CDN, solo cobra 4.5 centavos.

gcp cdn.jpg

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Descubre más desde ICPINFO

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo