Un laboratorio personal para aprender cloud engineering, arquitectura distribuida y servicios AWS en un entorno local controlado usando Floci.
Este repositorio documenta mi proceso de aprendizaje de:
- AWS
- Cloud Engineering
- Arquitectura distribuida
- Event-driven systems
- Containers
- Infrastructure as Code
- DevOps
- Observabilidad
- Networking
- Serverless
Todo ejecutándose localmente usando:
- Docker
- AWS CLI
- Floci
La idea es aprender cómo funcionan realmente los servicios cloud sin depender inicialmente de una cuenta AWS real.
La nube no es magia.
La mayoría de servicios cloud modernos son:
APIs + Networking + Containers + Storage + Orchestration
Este laboratorio busca entender:
- qué ocurre detrás del dashboard AWS,
- cómo se comunican los servicios,
- cómo funcionan los SDKs,
- y cómo construir arquitecturas modernas.
┌─────────────────┐
│ Mi App │
└────────┬────────┘
│
▼
┌─────────────────┐
│ AWS SDK │
└────────┬────────┘
│ HTTP API
▼
http://localhost:4566
│
▼
┌─────────────────┐
│ Floci │
└────────┬────────┘
│
┌────────────────┼────────────────┐
▼ ▼ ▼
S3 DynamoDB SQS
| Tecnología | Propósito |
|---|---|
| AWS CLI | Interactuar con APIs AWS |
| Floci | Emulación local de AWS |
| Docker | Containers y servicios |
| Terraform | Infrastructure as Code |
| Node.js / Python | SDKs AWS |
| GitHub Actions | Automatización CI/CD |
| Linux | Entorno principal |
- S3
- EC2
- IAM
- VPC
- Route53
- Lambda
- API Gateway
- EventBridge
- DynamoDB
- RDS
- ElastiCache
- SQS
- SNS
- Kinesis
- Terraform
- Docker
- Kubernetes
- ECS
- EKS
- CloudWatch
- Logging
- Metrics
- Tracing
sudo apt update
sudo apt install docker.io -yIniciar Docker:
sudo systemctl start docker
sudo systemctl enable dockerAgregar usuario al grupo docker:
sudo usermod -aG docker $USER
newgrp dockerVerificar:
docker pscurl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/installVerificar:
aws --versionaws configureUsar:
AWS Access Key ID: test
AWS Secret Access Key: test
Default region name: us-east-1
Default output format: json
Agregar al ~/.bashrc:
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_DEFAULT_REGION=us-east-1
export AWS_DEFAULT_OUTPUT=json
alias awslocal='aws --endpoint-url=http://localhost:4566'Aplicar cambios:
source ~/.bashrcdocker run --rm -p 4566:4566 floci/floci:latestawslocal s3 mb s3://mi-bucketawslocal s3 lsawslocal dynamodb list-tablesawslocal sqs list-queuesAWS SDK → HTTP Requests → AWS APIs
AWS real:
https://s3.us-east-1.amazonaws.com
Floci:
http://localhost:4566
El SDK:
- firma requests,
- maneja autenticación,
- retries,
- serialización,
- paginación,
- errores.
Floci:
- escucha requests HTTP,
- interpreta protocolos AWS,
- responde como AWS,
- y ejecuta servicios localmente.
.
├── docs/
│ ├── notes/
│ ├── diagrams/
│ └── architecture/
│
├── projects/
│ ├── s3-lab/
│ ├── lambda-lab/
│ ├── dynamodb-lab/
│ ├── sqs-lab/
│ └── event-driven-lab/
│
├── terraform/
│ ├── networking/
│ ├── serverless/
│ └── storage/
│
├── scripts/
│ ├── bootstrap/
│ └── automation/
│
└── README.md
- Linux
- Networking
- HTTP
- Docker
- AWS CLI
- S3
- IAM
- EC2
- VPC
- Lambda
- Event-driven architecture
- SQS
- SNS
- API Gateway
- Terraform
- Kubernetes
- CI/CD
- Observabilidad
Este laboratorio busca entender:
- Cómo funcionan las APIs cloud
- Cómo se comunican los microservicios
- Cómo funcionan los sistemas distribuidos
- Cómo funcionan los event brokers
- Cómo funciona el storage distribuido
- Cómo se automatiza infraestructura
- Cómo funcionan los containers
- Cómo se orquestan workloads
Ser capaz de:
- diseñar infraestructura cloud,
- construir sistemas distribuidos,
- automatizar despliegues,
- entender networking cloud,
- trabajar con arquitecturas serverless,
- y construir aplicaciones cloud-native modernas.
Este repositorio es principalmente:
- experimental,
- educativo,
- iterativo,
- y orientado a aprendizaje práctico.