Saltar al contenido principal

Módulo 6: Stack Completo

Tiempo estimado

20 minutos

En este módulo consolidamos toda la infraestructura en un solo template de CloudFormation.

6.1 Template consolidado

Archivo a crear

cloudformation/full-stack.yml

AWSTemplateFormatVersion: '2010-09-09'
Description: 'Stack completo de infraestructura Arka'

Parameters:
Environment:
Type: String
Default: dev

Resources:
# ==================
# S3 Buckets
# ==================
ProductosBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub "arka-productos-${Environment}"

ReportesBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub "arka-reportes-${Environment}"

# ==================
# SQS Queues
# ==================
OrdenesQueue:
Type: AWS::SQS::Queue
Properties:
QueueName: !Sub "arka-ordenes-${Environment}"

NotificacionesQueue:
Type: AWS::SQS::Queue
Properties:
QueueName: !Sub "arka-notificaciones-${Environment}"

# ==================
# Secrets Manager
# ==================
DatabaseSecret:
Type: AWS::SecretsManager::Secret
Properties:
Name: !Sub "arka/${Environment}/database"
SecretString: '{"username":"arka","password":"secret"}'

Outputs:
ProductosBucket:
Value: !Ref ProductosBucket
OrdenesQueueUrl:
Value: !Ref OrdenesQueue

6.2 Limpiar stacks anteriores

# Eliminar stacks individuales
awslocal cloudformation delete-stack --stack-name s3-stack
awslocal cloudformation delete-stack --stack-name sqs-stack
awslocal cloudformation delete-stack --stack-name secrets-stack

6.3 Desplegar stack completo

# Desplegar todo
awslocal cloudformation deploy \
--stack-name arka-infrastructure \
--template-file cloudformation/full-stack.yml \
--parameter-overrides Environment=dev

# Verificar outputs
awslocal cloudformation describe-stacks \
--stack-name arka-infrastructure \
--query 'Stacks[0].Outputs' | jq
Checkpoint

Todos los recursos deben estar creados - verifica con los comandos de cada servicio

Verificación Final

# S3
awslocal s3 ls

# SQS
awslocal sqs list-queues

# Secrets
awslocal secretsmanager list-secrets

Arquitectura Final


Siguiente: Limpieza