📡 Infraestructura base
| Componente | Especificación |
|---|---|
| Región | us-east-1 |
| VPC | 10.0.0.0/16 |
| Subnet Pública (AZ) | 10.0.0.0/24 (us-east-1a) |
| Internet Gateway | Adjuntado a la VPC → ruta 0.0.0.0/0 |
| Security Group | Inbound: HTTP (80) y SSH (22) desde 0.0.0.0/0 · Outbound: todo |
| Instancia EC2 | t2.micro · Amazon Linux 2023 · IP pública automática |
| IAM Role | Rol con política AmazonS3ReadOnlyAccess (o personalizada) |
| Bucket S3 | Privado, contiene todo el código estático (index.html, style.css, logo.png) |
us-east-1. Puedes cambiar tu región en la parte superior derecha en la consola.
Modelo de Responsabilidad Compartida
AWS protege la seguridad DE la nube (hardware). Tú eres responsable de la seguridad
EN la nube.
En este demo usamos un Rol IAM para que la EC2 acceda a S3 de forma segura,
sin credenciales fijas.
Descargar Repositorio
✔ Descarga este repositorio de GitHub
https://github.com/D43-Dalus/awscloudclub-demoprimerevento
✔ Haz click en Code → Download ZIP
Una vez descargado, descomprime el archivo. Tendrás una carpeta con 4 archivos:
index.html,
style.css, logo.png y script.js
Crear la VPC
Objetivo: Construir nuestra propia red virtual aislada.
Ve a VPC → Crear VPC y completa los siguientes campos:
| Campo | Valor |
|---|---|
| Recursos que se van a crear | Solo la VPC |
| Etiqueta de Nombre | TU_VPC |
| Bloque de CIDR IPv4 | Entrada manual de CIDR IPv4 |
| CIDR IPv4 | 10.0.0.0/16 |
| Bloque de CIDR IPv6 | Sin bloque de CIDR IPv6 |
| Tenencia | Default |
| Control de cifrado de VPC | Ninguno |
Se abrirá tu VPC. La puedes ubicar también por su etiqueta de nombre en "Sus VPC".
Crear subred pública
Volvemos al Panel de VPC → Subredes → Crear subred. Configura:
| Campo | Valor |
|---|---|
| ID de la VPC | El ID de la VPC que creamos (la con CIDR 10.0.0.0/16) |
| Nombre de la subred | TU_SUBNET_PUBLICA |
| Zona de disponibilidad | us-east-1a |
| Bloque de CIDR de la subred IPv4 | 10.0.0.0/24 |
Crea la subred.
Internet Gateway y tabla de rutas
✔ Crear Internet Gateway
| Campo | Valor |
|---|---|
| Etiqueta de nombre | igw-TU_IGW |
Una vez creada, en el detalle de la Internet Gateway, haz click en Acciones → Conectar a la VPC y selecciona tu VPC.
✔ Asociar a la tabla de enrutamiento
- Ve a "Sus VPC", haz click en tu VPC y en la parte inferior selecciona mapa de recursos. Pon el cursor sobre el nombre de tu tabla de enrutamiento y haz click en la flecha.
- O ve directamente a Tablas de Enrutamiento y busca la asociada a tu VPC.
- En la tabla, Acciones → Editar rutas.
Agrega una ruta:
| Campo | Valor |
|---|---|
| Destino (1) | 0.0.0.0/0 |
| Destino (2) | Puerta de Enlace de Internet |
| Justo debajo de Destino | Escoge tu Internet Gateway (igw-TU_IGW) |
Guarda los cambios. Ahora en el mapa de recursos verás todo conectado.
Lanzar instancia EC2
Ve a EC2 → Lanzar instancia y configura:
| Campo | Valor |
|---|---|
| Nombre | TU_EC2 |
| Imágenes de aplicaciones y sistemas operativos | Amazon Linux 2023 kernel-6.1 (64 bits x86) |
| Tipo de instancia | t2.micro (o t3.micro si está disponible) |
| Par de claves | Crear nuevo par de claves |
Al crear el par de claves, selecciona:
- Nombre:
TU_KEYPAIR - Tipo de par de clave: ED25519 (recomendado)
- Formato:
.pem(Linux/Mac) o.ppk(Windows con PuTTY)
✔ Configuraciones de red (haz click en "EDITAR"):
| Campo | Valor |
|---|---|
| VPC | TU_VPC |
| Subred | TU_SUBNET_PUBLICA |
| Asignar automáticamente la IP pública | Habilitar |
| Firewall (grupos de seguridad) | Crear grupo de seguridad |
| Nombre del grupo de seguridad | TU_SECURITYGROUP |
| Configuración de almacenamiento | Déjala por defecto (8 GiB gp3) |
Finalmente, haz click en "Lanzar instancia".
Configurar grupo de seguridad
Ve a EC2 → Security Groups, selecciona el grupo que creaste
junto a la instancia (TU_SECURITYGROUP) y haz click en Editar reglas de
entrada.
Agrega la siguiente regla:
| Campo | Valor |
|---|---|
| Tipo | HTTP |
| Protocolo | TCP |
| Intervalo de Puertos | 80 |
| Origen | Anywhere IPv4 (0.0.0.0/0) |
Asegúrate de que ya exista la regla SSH (puerto 22) con origen 0.0.0.0/0 (si no, agrégala también).
Guarda los cambios.
Crear bucket S3 y subir el sitio web
Ve a S3 → Crear bucket. Configura:
| Campo | Valor |
|---|---|
| Tipo de bucket | Uso general |
| Nombre del bucket | TU_BUCKET (único globalmente) |
| Propiedad del objeto | ACL deshabilitadas (recomendado) |
| Tipo de Cifrado | Cifrado del servidor con claves administradas de Amazon S3 (SSE-S3) |
Haz click en "Crear bucket".
Luego, dentro del bucket, sube los archivos de tu sitio web (index.html,
logo.png, style.css, etc.).
Crear rol IAM para EC2
Ve a IAM → Roles → Crear rol.
- Tipo de entidad de confianza: Servicio de AWS → EC2 → Siguiente
- En "Políticas de permisos", busca
AmazonS3ReadOnlyAccessy selecciónala. Siguiente. - Nombre del rol:
Rol-EC2-S3-Lectura. - Crear rol.
El rol creará automáticamente la siguiente política de confianza:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": "ec2.amazonaws.com" },
"Action": "sts:AssumeRole"
}]
}✔ Asignar rol a la instancia:
Ve a EC2 → Instancias y marca el cuadro de tu instancia.
Luego, haz click en Acciones → Seguridad → Modificar rol de IAM.
Selecciona Rol-EC2-S3-Lectura y guarda.
Conectarse por SSH y configurar Apache
Ahora conectémonos a la instancia. Usaremos AWS CloudShell (o tu terminal local).
- Abre CloudShell desde la barra inferior de la consola.
- Sube tu archivo de clave privada (
.pem): Acciones → Cargar archivo y selecciona el par de claves. - Cambia los permisos del archivo:
chmod 400 TU_KEYPAIR.pem - Conéctate usando la IP pública de tu instancia (la ves en los detalles de EC2):
ssh -i TU_KEYPAIR.pem ec2-user@IP_PUBLICAVerificamos que tenemos configurados nuestro rol de IAM correctamente:
aws sts get-caller-identity
Una vez dentro, ejecuta estos comandos para instalar Apache y descargar los archivos contenidos en S3:
sudo dnf update -y && sudo dnf install -y httpdActualizamos la instancia e instalamos el servicio para levantar el servidor web (Apache)
sudo systemctl start httpd && sudo systemctl enable httpd
Iniciamos el servidor web ahora (start) y lo
configuramos para que se inicie automáticamente en el arranque (enable)
sudo aws s3 sync s3://TU_BUCKET/ /var/www/html/Descargamos la última versión del contenido del bucket y lo hospedamos en el servidor web Apache
TU_BUCKET por el nombre real de tu
bucket.Una vez terminado, sal de la sesión SSH con exit.
¡Probar y compartir!
✔ Abre tu navegador y visita http://IP_PUBLICA. ¡Verás
tu página web servida desde
la EC2, con el contenido descargado desde S3!
✨ Este es el primer de muchos proyectos increíbles que haremos juntos en el AWS Cloud Club. ✨