Como crear una VPC y una instancia EC2 en AWS

Hello World 🙂

Conversando con un amigo que recién comienza a dar sus primeros pasos en AWS, me di cuenta de que no tenía ninguna guía en mi blog que pudiera ayudarlo a crear una VPC e instancias EC2 desde cero. Los artículos anteriores que he publicado están orientados a personas con conocimientos previos en la plataforma, así que decidí hacer algo diferente. En esta entrada, voy a mostrar un paso a paso que será útil para cualquier persona que esté empezando en el mundo de AWS.

Hoy, utilizaremos la interfaz gráfica de la consola de AWS para crear una infraestructura simple pero efectiva. Configuraremos una VPC con 4 subredes en dos zonas de disponibilidad (AZs); 2 subredes públicas y 2 privadas. También configuraremos un Internet Gateway (IGW) para proporcionar acceso a internet a las subredes públicas y un NAT Gateway para que las subredes privadas puedan acceder a internet de forma segura. Además, crearemos dos tablas de enrutamiento, una para las subredes públicas y otra para las privadas, y actualizaremos las rutas de acuerdo con nuestro plan.

Después de configurar la VPC, lanzaremos instancias EC2 en las subredes públicas y privadas para asegurarnos de que todo funcione correctamente. Para acceder a las instancias en las subredes privadas, utilizaremos las instancias en las subredes públicas como servidores de salto (Jumpbox).

¡No perdamos más tiempo y pongámonos manos a la obra!

Vamos a construir una infraestructura sencilla, segura y robusta.

Primero, definiremos qué es una VPC;

Con Amazon Virtual Private Cloud (Amazon VPC), puede lanzar recursos de AWS en una red virtual aislada de manera lógica que haya definido. Esta red virtual es muy similar a la red tradicional que usaría en su propio centro de datos, pero con los beneficios que supone utilizar la infraestructura escalable de AWS.

Fuente: AWS 

y qué es una instancia EC2.

Amazon Elastic Compute Cloud (Amazon EC2) proporciona capacidad de computación escalable bajo demanda en la nube de Amazon Web Services (AWS). El uso de Amazon EC2 reduce los costos de hardware para que pueda desarrollar e implementar aplicaciones con mayor rapidez. Puede usar Amazon EC2 para lanzar tantos servidores virtuales como necesite, configurar la seguridad y las redes, y administrar el almacenamiento.

Fuente: AWS

Es importante saber que cada cuenta de AWS incluye una VPC predeterminada en cada región. Sin embargo, siguiendo las mejores prácticas recomendadas, crearemos nuestra propia VPC personalizada para garantizar un entorno más seguro y adaptado a nuestras necesidades.

Requisitos:

  • Tener una cuenta de AWS

1- Una vez logueado en la consola de AWS, iremos a la sección de VPC;

  • Vamos a definir los segmentos de IP o CIDR que van a usar nuestra VPC y sus respectivas subredes
    • VPC: 10.0.0.0/16
    • Subredes Privadas: 10.0.0.0/1910.0.32.0/19
    • Subredes Públicas: 10.0.64.0/19 y 10.0.96.0/19
  • Aquí tenemos que poner el nombre y el CIDR definido anteriormente
  • Ahora que ya tenemos la VPC, vamos a la sección de subredes que está situada en la parte izquierda para crear 4 según nuestro plan inicial.
    • Primero seleccionamos la VPC a la que van a pertenecer estas subredes.
    • Por cada subred pública o privada vamos a definir un nombre, seleccionar la AZ y poner su segmento de IP.
  • Ahora crearemos un Internet Gateway (IGW), vamos al panel izquierdo y hacemos clic sobre el nombre del recurso.
    • Una vez creado necesitamos adjuntarle al IGW nuestra VPC
  • Ahora crearemos el NAT Gateway, hacemos clic en el panel izquierdo sobre el nombre del recurso.
    • Nuestro NAT va a usar una de las subredes públicas para ser generado.
  • Ahora que ya tenemos el IGW  y el NAT listo, vamos a crear un par Route Tables y definir las rutas de salida hacia internet para las diferentes subredes, una vez más vamos al panel izquierdo y hacemos clic sobre el recurso que queremos crear.
    • Private route table.
    • Una vez creado necesitamos asociar las subredes con el RT, en este caso seleccionamos solo las subredes privadas.
    • Public route tables
    • Al igual que en las subredes privadas, ahora necesitamos asociar las subredes con el RT, en este caso solo las públicas.
  • Actualizar las Route Table, lo que vamos a hacer aquí es decirle a las subredes públicas y las privadas que recurso van a usar para salir a internet, este paso es indispensable para la salida a internet de las futuras instancias EC2 que vamos a crear.
    • Editar route table privada, estas van a salir a internet usando el NAT.
    • Editar route table pública, estas van a salir a internet usando el IGW.

2- Una vez terminada todas las configuraciones necesarias en la VPC, iremos a lanzar las instancias EC2.

  • Primero vamos a lanzar nuestra instancia en la subred privada.
    • Aquí definimos el nombre y seleccionamos el tipo de SO que queremos, en este caso voy a usar Amazon Linux para estos ejemplos
    • Ahora seleccionamos la subred que vamos a utilizar y crearemos también un Security Group que va a permitir conexiones SSH a la instancia desde mi IP.
    • Seleccionamos el tipo de instancia y creamos una Key Pair para este ejemplo,
    • Este key pair es una llave SSH que vamos a descargar para nuestra máquina local y usaremos posteriormente para conectarnos a la instancia.
    • La parte de almacenamiento dejamos los valores por defecto, para este ejemplo con  8 GB es suficiente.
    • Después de hacer todas las configuraciones necesarias ya podemos ejecutar el botón "Launch instance"
  • Ahora vamos a lanzar otra instancia, pero en la subred pública, es el mismo procedimiento, aquí utilizaremos el mismo Security Group y la misma Key Pair creada anteriormente.
    • Después de hacer todas las configuraciones necesarias ya podemos ejecutar el botón "Launch instance"

3- Ahora que ya tenemos creadas las instancias EC2 tenemos que conectarnos a ellas usando la llave SSH(key pair) generada anteriormente y que tenemos en nuestra máquina.

  • A esa llave SSH tenemos que asignarle los siguientes permisos:
    • chmod 400 "poc-vpc-ec2.pem"
  • Vamos a conectarnos a la instancia en la subred pública desde nuestra máquina usando SSH y vamos a ejecutar ping al 8.8.8.8 que es una IP de Google para comprobar que tenemos salida a internet:
    • ssh -i "poc-vpc-ec2.pem" ec2-user@18.212.186.178
    • Ahora que pudimos acceder, vamos a copiar la llave SSH hacia esa instancia para acceder a la instancia en la red privada usando el comando SCP;
    • y vamos también a editar el Security Group para permitir conexiones SSH desde la VPC.
    • Después de hacer estos 2 pasos vamos a conectarnos a la instancia en la subred pública para de ahí conectarnos a la instancia en la subred privada y comprobar también que tiene salida a internet usando el mismo procedimiento.
  • Logramos conectarnos a ambas instancias en las diferentes subredes y verificar que ambas tienen salida a internet. En un entorno empresarial, es muy común utilizar un servidor de salto (Jumpbox) para acceder a instancias ubicadas en subredes privadas. Esta práctica es una medida de seguridad esencial que ayuda a proteger las instancias que alojan aplicaciones críticas, evitando posibles ataques maliciosos. Aunque usar una llave SSH para que los usuarios finales se conecten no sea la opción más recomendable desde el punto de vista de la seguridad, es un buen punto de partida para aquellos que están comenzando. Más adelante, podemos explorar otras opciones para mejorar la seguridad en estos accesos. Por ahora, creo que este paso a paso ofrece una base sólida sin abrumar a los que están dando sus primeros pasos en AWS.

Nota:

El secreto para evitar sorpresas desagradables en tu tarjeta de crédito al usar AWS es muy sencillo: una vez que hayas terminado tu laboratorio o práctica, asegúrate de eliminar todos los recursos que has creado. Esta precaución te ahorrará cualquier sobresalto cuando llegue la factura a fin de mes. 🙂

Conclusiones;

La combinación de estos dos servicios VPC y EC2, es realmente poderosa. Por un lado, VPC nos proporciona una infraestructura de red altamente configurable con una amplia gama de características, y por otro, podemos desplegar diferentes tipos de instancias EC2 sobre esa red, adaptándolas a las necesidades específicas de nuestras aplicaciones.

Una de las ventajas de usar VPC es que, una vez creada con el tamaño adecuado para garantizar suficientes direcciones IP disponibles, no tenemos que preocuparnos por escalar algunos de sus componentes clave, como el NAT Gateway o el Internet Gateway (IGW). Estos son servicios administrados por AWS, lo que significa que AWS se encargará de su escalado de manera automática, liberándonos de esa carga operativa.

En cuanto a las instancias EC2, podemos gestionar su escalado de forma eficiente utilizando Auto Scaling Groups (ASG) en combinación con las métricas de CloudWatch. Esto nos permite ajustar automáticamente la capacidad según la demanda, garantizando que nuestras aplicaciones se mantengan disponibles y con el rendimiento óptimo en todo momento.

Aunque el uso de VPC y EC2 puede considerarse básico, dominar estos conceptos es esencial para diseñar y operar infraestructuras sólidas y escalables en AWS.

¡Nos vemos en la próxima entrada!

Un comentario sobre “Como crear una VPC y una instancia EC2 en AWS

  1. Lic. Yainiel Clavijo Iglesias dice:

    ¡Tu trabajo en redes es impresionante! Has logrado crear una infraestructura sólida y eficiente que no solo garantiza la conectividad, sino que también optimiza el rendimiento y la seguridad. Cada detalle ha sido cuidadosamente considerado, y se nota el nivel de experiencia y dedicación que has puesto. ¡Es un logro digno de admiración! Continue con sus tutoriales que son increiblemente Buenos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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

AWS

Artículo anterior

AWS Learning Path