Saltar al contenido principal

Módulo 1: Configuración Inicial

Tiempo estimado

20 minutos

1.1 Crear estructura del proyecto

mkdir -p localstack-lab/cloudformation
cd localstack-lab

1.2 Crear docker-compose.yaml

Archivo a crear

docker-compose.yaml

services:
localstack:
image: localstack/localstack:latest
container_name: localstack
ports:
- "4566:4566" # Gateway unificado
- "4510-4559:4510-4559" # Rango de servicios externos
environment:
- DEBUG=1
- DOCKER_HOST=unix:///var/run/docker.sock
- SERVICES=s3,sqs,lambda,apigateway,secretsmanager,cloudformation,iam,logs
- DEFAULT_REGION=us-east-1
- CFN_IGNORE_UNSUPPORTED_RESOURCE_TYPES=1
volumes:
- "localstack-data:/var/lib/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
- "./cloudformation:/etc/localstack/init/ready.d/cloudformation"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4566/_localstack/health"]
interval: 10s
timeout: 5s
retries: 5
networks:
- lab-network

postgres:
image: postgres:16
container_name: lab-postgres
environment:
POSTGRES_USER: labuser
POSTGRES_PASSWORD: labpassword
POSTGRES_DB: labdb
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U labuser"]
interval: 10s
timeout: 5s
retries: 5
networks:
- lab-network

networks:
lab-network:
driver: bridge

volumes:
postgres-data:
localstack-data:

1.3 Instalar awslocal

Requisitos previos

Para utilizar awslocal, debes tener instalado en tu sistema:

awslocal es un wrapper del AWS CLI que automáticamente apunta a LocalStack, eliminando la necesidad de especificar el parámetro --endpoint-url en cada comando:

pip install awscli-local

1.4 Iniciar servicios

docker compose up -d

Verifica que los contenedores están corriendo:

docker compose ps
Checkpoint

Verificar que LocalStack está corriendo:

curl http://localhost:4566/_localstack/health

Deberías ver un JSON con el estado de los servicios.

¿Qué acabamos de hacer?


Siguiente: Módulo 2: S3 - Almacenamiento