Lab: Configuración del Entorno
Objetivos del Lab
Al final de este lab, usted tendrá:
- ✅ Un entorno de trabajo completo y funcional
- ✅ Docker Desktop instalado y operativo
- ✅ AWS CLI v2 configurado con un perfil LocalStack
- ✅ LocalStack iniciado y probado
- ✅ Un mini-informe con pruebas de configuración
Duración Estimada
1 a 2 horas (según su sistema y conexión a Internet)
Requisitos Previos
- Computadora con Windows 10/11, macOS o Linux
- Derechos de administrador
- Conexión a Internet estable
- Al menos 10 GB de espacio libre en disco
Parte 1: Instalación de Docker Desktop
Pasos
1.1 Descargar Docker Desktop
Vaya a: https://www.docker.com/products/docker-desktop/
Descargue la versión correspondiente a su sistema.
1.2 Instalar Docker Desktop
- Windows: Haga doble clic en el instalador, siga el asistente
- macOS: Arrastre Docker a Aplicaciones
- Linux: Siga las instrucciones de su distribución
1.3 Iniciar Docker Desktop
Inicie Docker Desktop desde el menú Inicio (Windows) o Aplicaciones (macOS).
Espere hasta que el ícono de Docker indique "Docker is running".
1.4 Verificar la instalación
Abra una terminal y ejecute:
docker --version
docker run hello-world
Validación Parte 1
Tome una captura de pantalla mostrando:
- La salida de
docker --version - El mensaje "Hello from Docker!" de
docker run hello-world
Nombre este archivo: 01-docker-version.png
Parte 2: Instalación de AWS CLI v2
Pasos
2.1 Descargar AWS CLI v2
- Windows: https://awscli.amazonaws.com/AWSCLIV2.msi
- macOS: https://awscli.amazonaws.com/AWSCLIV2.pkg
- Linux: Ver comandos abajo
2.2 Instalar
Windows:
# Haga doble clic en AWSCLIV2.msi y siga el asistente
# O
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
macOS:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
Linux:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
2.3 Verificar la instalación
Cierre y vuelva a abrir su terminal, luego:
aws --version
2.4 Configurar el perfil LocalStack
aws configure --profile localstack
Ingrese los siguientes valores:
AWS Access Key ID [None]: test
AWS Secret Access Key [None]: test
Default region name [None]: us-east-1
Default output format [None]: json
2.5 Verificar la configuración
aws configure list --profile localstack
Validación Parte 2
Tome una captura de pantalla mostrando:
- La salida de
aws --version - La salida de
aws configure list --profile localstack
Nombre este archivo: 02-aws-cli-config.png
Parte 3: Inicio de LocalStack
Pasos
3.1 Crear una carpeta de trabajo
# Cree una carpeta para este curso
mkdir aws-course
cd aws-course
3.2 Crear el archivo docker-compose.yml
Cree un archivo docker-compose.yml con el siguiente contenido:
version: '3.8'
services:
localstack:
container_name: localstack
image: localstack/localstack:latest
ports:
- "4566:4566"
- "4510-4559:4510-4559"
environment:
- SERVICES=s3,lambda,sqs,sns,dynamodb,cloudwatch,cloudformation,iam
- DEBUG=1
- DATA_DIR=/tmp/localstack/data
volumes:
- "./localstack-data:/var/lib/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
3.3 Iniciar LocalStack
docker-compose up -d
O sin docker-compose:
docker run -d \
--name localstack \
-p 4566:4566 \
-e SERVICES=s3,lambda,sqs,dynamodb,cloudwatch,cloudformation \
localstack/localstack
3.4 Espere a que inicie (30-60 segundos)
# Verifique que el contenedor esté en ejecución
docker ps
# Ver los logs (opcional)
docker logs localstack
3.5 Verificar el estado de salud
# Linux/macOS
curl http://localhost:4566/_localstack/health
# Windows PowerShell
Invoke-RestMethod http://localhost:4566/_localstack/health
Validación Parte 3
Tome una captura de pantalla mostrando:
- La salida de
docker pscon el contenedor localstack - La salida del health check
Nombre este archivo: 03-localstack-running.png
Parte 4: Prueba de Comandos AWS
Pasos
4.1 Configurar el alias (opcional pero recomendado)
Windows PowerShell:
# Probar primero sin alias
aws --endpoint-url=http://localhost:4566 s3 ls --profile localstack
macOS/Linux:
alias awslocal='aws --endpoint-url=http://localhost:4566 --profile localstack'
4.2 Crear un bucket S3
# Con alias
awslocal s3 mb s3://mon-premier-bucket-test
# Sin alias (Windows)
aws --endpoint-url=http://localhost:4566 s3 mb s3://mon-premier-bucket-test --profile localstack
4.3 Listar los buckets
awslocal s3 ls
Resultado esperado:
2024-12-18 10:30:00 mon-premier-bucket-test
4.4 Crear un archivo de prueba
# Crear un archivo local
echo "Hello AWS LocalStack!" > test.txt
# Subir a S3
awslocal s3 cp test.txt s3://mon-premier-bucket-test/
# Verificar
awslocal s3 ls s3://mon-premier-bucket-test/
4.5 Descargar el archivo
awslocal s3 cp s3://mon-premier-bucket-test/test.txt downloaded.txt
cat downloaded.txt
4.6 Limpiar
# Eliminar el archivo del bucket
awslocal s3 rm s3://mon-premier-bucket-test/test.txt
# Eliminar el bucket
awslocal s3 rb s3://mon-premier-bucket-test
Validación Parte 4
Tome una captura de pantalla mostrando:
- La creación del bucket (
s3 mb) - El listado del bucket con el archivo (
s3 ls) - El contenido del archivo descargado
Nombre este archivo: 04-aws-s3-test.png
Parte 5: Prueba Lambda (Bonus)
Pasos
5.1 Crear una función Lambda simple
Cree un archivo lambda_function.py:
def handler(event, context):
return {
'statusCode': 200,
'body': 'Hello from LocalStack Lambda!'
}
5.2 Comprimir la función
# Linux/macOS
zip function.zip lambda_function.py
# Windows PowerShell
Compress-Archive -Path lambda_function.py -DestinationPath function.zip
5.3 Crear la función Lambda
awslocal lambda create-function \
--function-name ma-premiere-fonction \
--runtime python3.9 \
--handler lambda_function.handler \
--zip-file fileb://function.zip \
--role arn:aws:iam::000000000000:role/lambda-role
5.4 Invocar la función
awslocal lambda invoke \
--function-name ma-premiere-fonction \
--payload '{}' \
output.txt
cat output.txt
5.5 Listar las funciones
awslocal lambda list-functions
Validación Parte 5
Tome una captura de pantalla mostrando:
- La creación de la función Lambda
- La invocación exitosa con el resultado
Nombre este archivo: 05-lambda-test.png
Entregables del Lab
Mini-Informe "Entorno Listo"
Cree un documento (Word, PDF o Markdown) que contenga:
1. Portada
- Nombre del estudiante
- Fecha
- Título: "Lab 1 - Configuración del Entorno AWS"
2. Capturas de pantalla Incluya las 4 capturas obligatorias (5 con el bonus Lambda):
01-docker-version.png02-aws-cli-config.png03-localstack-running.png04-aws-s3-test.png05-lambda-test.png(bonus)
3. Tabla resumen
| Componente | Versión | Estado |
|---|---|---|
| Docker | X.X.X | ✅ Instalado |
| AWS CLI | X.X.X | ✅ Configurado |
| LocalStack | latest | ✅ Funcional |
4. Problemas encontrados (si aplica) Describa brevemente cualquier problema encontrado y cómo lo resolvió.
5. Checklist final
- Docker Desktop instalado y funcional
- AWS CLI v2 instalado
- Perfil LocalStack configurado
- LocalStack iniciado
- Prueba S3 exitosa (creación de bucket, subida de archivo)
- Prueba Lambda exitosa (bonus)
Tabla de Evaluación
| Criterio | Puntos |
|---|---|
| Docker instalado y funcional | 2 |
| AWS CLI instalado y configurado | 2 |
| LocalStack iniciado | 2 |
| Prueba S3 exitosa | 2 |
| Capturas de pantalla completas | 1 |
| Informe bien estructurado | 1 |
| Total | 10 |
Bonus: Prueba Lambda exitosa (+2 puntos)
Solución de Problemas Comunes
Docker no inicia
Windows:
- Active la virtualización en el BIOS
- Active WSL2:
wsl --install - Reinicie su computadora
AWS CLI no reconocido
- Cierre y vuelva a abrir la terminal
- Verifique el PATH
- Reinstale AWS CLI
LocalStack no responde
- Espere 60 segundos después de iniciar
- Verifique los logs:
docker logs localstack - Reinicie:
docker restart localstack
Error "No credentials"
# Reconfigurar
aws configure --profile localstack
# Verificar
aws configure list --profile localstack
Resumen de Comandos
# Docker
docker --version
docker run hello-world
docker ps
docker logs localstack
# AWS CLI
aws --version
aws configure --profile localstack
aws configure list --profile localstack
# LocalStack
docker-compose up -d
curl http://localhost:4566/_localstack/health
# Pruebas S3
awslocal s3 mb s3://bucket-name
awslocal s3 ls
awslocal s3 cp file.txt s3://bucket/
awslocal s3 rm s3://bucket/file.txt
awslocal s3 rb s3://bucket-name
# Pruebas Lambda
awslocal lambda create-function ...
awslocal lambda invoke ...
awslocal lambda list-functions
Quiz de Fin de Lab
- ¿Cuál es el puerto por defecto de LocalStack?
- ¿Qué opción de AWS CLI permite apuntar a LocalStack?
- ¿Qué comando crea un bucket S3?
- ¿Cómo verificar que LocalStack está funcionando?
- ¿Por qué se usan credenciales "test" con LocalStack?
¡Felicidades! Ha configurado su entorno AWS. ¡Está listo para el MÓDULO 2!