Crear una instancia EC2 con Ubuntu en AWS

Clase 8 de 22Curso de Despliegue de Aplicaciones Python en la Nube

Resumen

Poner en marcha un servidor en la nube es una habilidad fundamental para cualquier desarrollador que quiera desplegar aplicaciones Python en producción. A continuación se detalla el proceso completo para crear una instancia en Amazon EC2, configurar la red, asignar una IP fija y establecer la primera conexión SSH.

¿Cómo se crea una instancia EC2 desde el dashboard de AWS?

El dashboard de EC2 se divide en dos zonas principales. En el sidebar se listan todos los recursos disponibles: instancias, tipos de instancia, AMIs, volúmenes e IPs [0:08]. En el área de contenido se muestra un resumen de las instancias en ejecución y las IPs asignadas, junto con el botón Launch Instance que inicia el proceso de creación [0:22].

Al hacer clic se abre un formulario donde se configuran los aspectos esenciales:

  • Nombre: se asigna un identificador descriptivo, por ejemplo Python Server [0:35].
  • Sistema operativo: se selecciona Ubuntu 24, ya que los comandos del curso están orientados a esta distribución. Otras distribuciones de Linux comparten la mayoría de nombres de paquetes [0:40].
  • Username: Ubuntu genera por defecto el usuario ubuntu, dato imprescindible para la conexión remota [0:56].
  • Tipo de instancia: la elección depende de los requisitos de la aplicación. La opción t2.micro incluye un CPU y un giga de memoria, ideal para pruebas y proyectos pequeños [1:05].

¿Por qué es importante crear un key pair para acceder al servidor?

Para conectarse por SSH se necesita una llave criptográfica. Al pulsar Create new key pair se define un nombre como Python Server Key y se elige el formato: PEM es el recomendado para Linux y macOS, mientras que PPK se usa en Windows [1:22]. Al crearla, el archivo se descarga automáticamente al computador local [1:40].

¿Qué configuraciones de red se deben habilitar?

Las reglas de red determinan quién puede comunicarse con la instancia [1:45]:

  • Allow SSH (puerto 22): permite la conexión remota. Se puede restringir a una IP específica por seguridad, aunque hay que actualizar esa IP si cambia [1:52].
  • Allow HTTPS (puerto 443): habilita tráfico cifrado desde Internet hacia el servidor [2:12].
  • Allow HTTP (puerto 80): necesario para las primeras conexiones antes de configurar un certificado SSL [2:22].

Para el almacenamiento se selecciona un disco GP3 (SSD de última generación) con veinte gigas, ya que las ocho gigas predeterminadas resultan insuficientes para un proyecto real. AWS permite hasta treinta gigas dentro del Free Tier [2:35].

¿Cómo asignar una IP elástica para que no cambie al reiniciar?

Al lanzar la instancia con Launch Instance, Amazon muestra un resumen con la imagen, el tipo, el security group y el volumen configurados [2:55]. Una vez creada, la instancia recibe un identificador único y una IP pública que cambia cada vez que se apaga y se enciende [3:30].

Para obtener una IP fija se utiliza el servicio Elastic IPs [3:45]:

  1. Ir a la sección Elastic IPs en el sidebar.
  2. Pulsar Allocate para reservar una nueva dirección.
  3. Seleccionar Actions > Associate y vincularla a la instancia creada [3:55].
  4. Activar la opción que impide eliminar la IP mientras la instancia esté corriendo.

Tras la asociación, la IP pública de la instancia se reemplaza por la IP elástica, que permanece constante incluso después de reinicios [4:20].

¿Qué reglas de seguridad y monitoreo se deben revisar?

En la pestaña de seguridad se visualizan las reglas del security group creado automáticamente (Launch Wizard 1) [5:05]:

  • Inbound (entrada): puertos 22 (SSH), 443 (HTTPS) y 80 (HTTP) abiertos para todas las IPs.
  • Outbound (salida): todos los puertos y protocolos habilitados hacia cualquier destino, lo que garantiza acceso a Internet.

Esto es relevante porque al configurar una base de datos con Amazon RDS será necesario abrir puertos adicionales y permitir la comunicación bidireccional entre servidor y base de datos [5:35].

Desde la pestaña Status se verifican los checks que consultan un endpoint interno; si responde con un código 200, la instancia está operativa [4:50]. En Monitoring se pueden configurar alertas de uso de CPU y memoria para detectar sobrecargas en producción [5:00].

¿Cómo conectarse a la instancia por primera vez?

Al pulsar el botón Connect en la parte superior, AWS muestra las instrucciones de conexión. El usuario es ubuntu y se abre una terminal integrada en el navegador [5:50]. Para validar la conectividad basta con ejecutar ping google.com y confirmar que se reciben respuestas desde los servidores de Google [6:10].

Como reto práctico, crea una nueva instancia con el puerto 80 habilitado, accede a la terminal e instala NGINX mediante el manejador de paquetes APT. Una vez activo, ingresa la IP pública en tu navegador para ver la página de bienvenida de NGINX confirmando que todo funciona correctamente [6:25].