Saltar al contenido
aprendeaws.dev

Módulo 5 · Cómputo: máquinas e instancias/Lección 32

EC2: tu servidor virtual

Una máquina virtual que enciendes en minutos: imagen (AMI), tipo, red, disco, llave y datos de arranque.

⏱ 14 min

Al terminar podrás

  • →Lanzar mentalmente una instancia EC2 con todas sus piezas
  • →Explicar qué es una AMI y qué son los datos de usuario (user data)
  • →Conectarse sin abrir el puerto 22 con Session Manager

Un servidor es un computador que atiende pedidos: sirve páginas, corre una API, procesa archivos. Comprar uno toma semanas y lo pagas aunque esté quieto. Con Amazon EC2 (Elastic Compute Cloud) pides uno en minutos, pagas mientras está encendido y lo apagas cuando ya no lo necesitas.

A cada servidor de EC2 se le llama instancia. No es un equipo físico para ti solo: es una máquina virtual que corre sobre hardware de AWS, dentro de tu VPC.

Qué es una máquina virtual

Un servidor físico tiene procesadores, memoria, discos y red. Un programa llamado hipervisor lo reparte en varias máquinas virtuales aisladas entre sí. Cada una cree que tiene su propio hardware y corre su propio sistema operativo.

En AWS, las instancias actuales corren sobre el AWS Nitro System: un hipervisor muy liviano y tarjetas de hardware dedicadas que se encargan de la red, el almacenamiento y la seguridad. Así casi todo el servidor queda para tus instancias. Si necesitas el servidor completo, sin hipervisor de por medio, existen los tamaños .metal.

EC2 es infraestructura como servicio (IaaS). AWS cuida el edificio, el hardware y la virtualización. Tú cuidas todo lo que va del sistema operativo hacia arriba: parches, software, configuración de red y datos. Es el reparto de la responsabilidad compartida.

Las piezas de un lanzamiento

Lanzar una instancia es llenar un formulario. Cada campo es una decisión:

EC2 › Instances › Launch an instance
Name and tagsweb-01Las etiquetas te ayudan a encontrar y cobrar por proyecto.
Application and OS Images (Amazon Machine Image)Amazon Linux 2023 AMI▾La AMI: sistema operativo y software de partida.
Instance typem7g.large▾Cuánta CPU y memoria. Se explica en la siguiente lección.
Key pair (login)Proceed without a key pair▾Si usarás Session Manager, no necesitas llave SSH.
Network settings
VPCSubnetAuto-assign public IPSecurity group
vpc-apppriv-aDisablesg-app
En qué conjunto, en qué torre y con qué portero.
Configure storage1x 8 GiB gp3 (root volume)El volumen EBS raíz: el disco donde vive el sistema operativo.
IAM instance profilerol-web-ssm▾El rol que le da permisos a la instancia sin guardar llaves.
User data#!/bin/bash dnf install -y nginx systemctl enable --now nginxScript que corre en el primer arranque.

Vista simplificada para estudiar. Los nombres de los campos están en inglés, como en la consola real; el diseño de la consola cambia con el tiempo.

PiezaQué decide
AMI (Amazon Machine Image)El plano y el amobladoSistema operativo y software. Es regional: para usarla en otra región, la copias
Tipo de instanciaTamaño y distribuciónvCPU, memoria, red y, a veces, disco local o GPU
Key pairLa llave de la puertaAWS guarda la parte pública; tú descargas la privada una sola vez
Red: VPC, subred, Security GroupDónde queda y quién entraLa subred fija la zona de disponibilidad
Volumen EBS raízEl clósetUn disco en red que sobrevive a apagar la instancia
Rol de IAM (instance profile)El carné del inquilinoCredenciales temporales que rotan solas
User dataLa lista de tareas del primer díaPor defecto corre solo en el primer arranque, como root

Las AMIs vienen de AWS (Amazon Linux, Windows, Ubuntu y otras), de AWS Marketplace (con software de terceros ya instalado) o las creas tú a partir de una instancia configurada. Una AMI propia con todo listo arranca más rápido que una genérica más un script largo de user data. EC2 Image Builder automatiza la creación y actualización de esas AMIs.

El rol de IAM es la forma correcta de que tu aplicación hable con S3, DynamoDB u otros servicios. La instancia recibe credenciales temporales que se renuevan solas. Más sobre roles en IAM; sobre discos, en discos y archivos.

El ciclo de vida y lo que se cobra

  1. 1

    pending

    La instancia se prepara para arrancar. No se cobra.
  2. 2

    running

    Está encendida y lista. Se cobra el uso de la instancia, la uses o no.
  3. 3

    stopping → stopped

    Apagada. No se cobra la instancia, pero sí sus volúmenes EBS y las IP públicas que tenga reservadas. Puedes volver a encenderla.
  4. 4

    shutting-down → terminated

    Eliminada para siempre. No se puede recuperar. El volumen raíz se borra por defecto.

Detener (stop) es apagar el computador: el disco EBS se conserva y la IP privada también, pero la IP pública cambia al volver a encender, y lo que había en discos locales (instance store) se pierde. Mientras está detenida puedes cambiarle el tipo. Terminar (terminate) es devolver el apartamento y demolerlo. Para evitar accidentes existe la protección contra terminación. Reiniciar (reboot) deja la instancia en el mismo servidor físico, con sus IPs.

Entrar sin abrir el puerto 22

La forma clásica de administrar un servidor Linux es SSH por el puerto 22 con una llave. Funciona, pero obliga a abrir un puerto, a guardar llaves y a darle IP pública a la instancia o montar un bastión. Session Manager, parte de AWS Systems Manager, te da una terminal en el navegador o en la CLI sin nada de eso.

  1. 1

    El agente

    La instancia necesita el SSM Agent. Viene instalado en Amazon Linux y en varias AMIs oficiales.
  2. 2

    El permiso

    El rol de la instancia incluye la política administrada AmazonSSMManagedInstanceCore.
  3. 3

    La salida

    La instancia necesita llegar a los endpoints de Systems Manager: por un NAT Gateway o por VPC endpoints, sin IP pública.
  4. 4

    El acceso

    Quién puede abrir sesiones se controla con IAM, y cada sesión queda registrada en CloudTrail. El contenido de la sesión puede guardarse en S3 o CloudWatch Logs.
# Abrir una terminal en la instancia, sin SSH ni puertos abiertos
aws ssm start-session --target i-0123456789abcdef0

Elastic IP, en breve

La IP pública normal de una instancia cambia cada vez que la detienes y la enciendes. Una Elastic IP es una dirección IPv4 pública fija que reservas en tu cuenta y asocias a una instancia; se queda contigo hasta que la liberes. AWS cobra por las direcciones IPv4 públicas, estén en uso o no, así que libera las que sobren. En la mayoría de diseños es mejor poner un balanceador de carga o un nombre en Route 53 delante, en vez de depender de la IP de una sola máquina.

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.Necesitas que cada instancia instale y arranque un servidor web la primera vez que enciende. ¿Qué usas?

  2. 2.Detienes (stop) una instancia con volumen EBS raíz. ¿Qué sigue generando cobro?

  3. 3.¿Qué contiene una AMI?

  4. 4.El equipo de seguridad prohíbe abrir el puerto 22 y repartir llaves SSH. ¿Cómo administran las instancias?

  5. 5.Según el modelo de responsabilidad compartida, ¿quién aplica los parches al sistema operativo de una instancia EC2?