|
||
---|---|---|
docs | ||
terraform | ||
.gitignore | ||
.pre-commit-config.yaml | ||
LICENSE.md | ||
README.md | ||
run.sh |
README.md
BSMSapp
Best Stock Management System application.
Descripción de los módulos
ACM
API Gateway
Construye una API REST que puede recibir requests POST, GET, PUT, DELETE y OPTIONS. En el caso de GET, va directo a la lambda de lectura de la tabla (lambdaDB
). Por otro lado, en el caso de un POST, se encola en el SQS para luego ir a otra lambda (lambdaSQSDB
). Finalmente, el OPTIONS se utiliza para poder soportar y habilitar CORS
y que, por ende, funcionen correctamente los llamados a la API desde el sitio estático.
Ver apigw/README.md
CloudFront
Funciona como CDN y realiza caché de la API y del S3 (que hostea el sitio estático).
Cognito
Dynamo DB
Guarda el stock de los productos de los usuarios. Tiene una tabla compuesta por user
(partition key), id
del producto (sort key) y stock
.
Lambda
Definimos 9 lambdas.
Route53
S3
Definimos 3 buckets. Uno para logs y dos para el frontend (el sitio estático en sí y uno www
que se redirecciona al primero).
SNS
SQS
Se encarga de encolar POSTs recibidos por la API. Luego, dispara la lambda correspondiente (en este caso lambdaSQSDB
).
Step Functions
VPC
Este módulo es externo. Se define en este toda la parte de networking que se detalla en el diagrama de la arquitectura (el cual se encuentra al final de este documento).
WAF
Protege la aplicación mediante 3 rules. Esto lo hace mediante la creación de un web ACL asociado a la distribución de CloudFront.
Diagrama de arquitectura deployada

Demo
