Pipeline de dados serverless construído na AWS utilizando Infraestrutura como Código (IaC) para detecção automatizada de fraudes em transações financeiras. O projeto implementa boas práticas de engenharia de dados com foco em segurança, escalabilidade e otimização de custos.
O pipeline segue uma abordagem ELT (Extract, Load, Transform) adaptada para processamento em lote:
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐ ┌──────────────┐
│ Producer │──────▶│ S3 Raw │──────▶│ ETL Process │──────▶│ S3 Processed │
│ (Faker + Boto3) │ │ (JSON) │ │ (Fraud Detector)│ │ (Parquet) │
└─────────────────┘ └──────────────┘ └─────────────────┘ └──────────────┘
│
▼
┌──────────────────┐
│ Glue Catalog │
│ + │
│ Amazon Athena │
└──────────────────┘
| Camada | Componente | Descrição |
|---|---|---|
| Ingestão | Producer Script | Gera transações sintéticas usando Python (Boto3 + Faker) e salva como JSON no S3 Raw |
| Armazenamento | Data Lake S3 | Buckets segregados (Raw e Processed) com Block Public Access e versionamento |
| Processamento | ETL Pipeline | Converte JSON → Parquet, aplica regras de fraude (valor > R$ 5k ou estados suspeitos) e particiona dados |
| Analytics | Glue + Athena | Catálogo de metadados e consultas SQL serverless diretamente no Data Lake |
💡 Nota Técnica: Originalmente projetado para Amazon Kinesis (streaming), o pipeline foi adaptado para processamento em lote via S3 devido a restrições de Account Vetting em contas AWS novas — uma prática comum de DevSecOps para contornar limitações de Service Quotas.
Antes de começar, certifique-se de ter instalado:
- AWS CLI configurado com credenciais válidas
- Terraform >= 1.0
- Python >= 3.8
- pip (gerenciador de pacotes Python)
cd terraform
terraform init
terraform apply -auto-approveO que será criado:
- 2 Buckets S3 (raw/processed)
- Glue Database e Crawler
- Políticas IAM necessárias
python src/producer/main.py
python src/processing/fraud_detector.pyProcesso executado:
- Leitura de JSONs do bucket raw
- Aplicação de regras de detecção de fraude
- Conversão para formato Parquet
- Particionamento por data
- Upload para bucket processed
Acesse o Amazon Athena no console da AWS e execute:
SELECT * FROM fraud_detection_db.fraudes_detectadas;
- Terraform - Infraestrutura como Código (IaC)
- AWS S3 - Data Lake (armazenamento Raw e Processed)
- AWS Glue - Data Catalog para gerenciamento de metadados
- Amazon Athena - Query engine SQL serverless
- Python 3.x - Linguagem principal
- Boto3 - SDK AWS para Python
- Pandas - Manipulação de dados
- PyArrow - Suporte a formato Parquet
- Faker - Geração de dados sintéticos
- JSON - Formato raw (ingestão)
- Parquet - Formato otimizado (processado)
Durante o desenvolvimento deste projeto, foram adquiridos conhecimentos sobre:
- Implementação de pipeline ELT end-to-end em arquitetura serverless
- Otimização de custos através de formatos colunares (Parquet vs JSON)
- Estratégias de particionamento de dados para performance em queries analíticas
- Contorno de limitações de Service Quotas em contas AWS novas
- Configuração de políticas de segurança seguindo o princípio de Least Privilege
- Automação de infraestrutura com Terraform (state management, módulos reutilizáveis)
- Segregação de ambientes (Raw/Processed/Analytics)
- Versionamento de dados e controle de acesso granular
- Documentação como código (README técnico estruturado)
Desenvolvido com foco em boas práticas de Engenharia de Dados e Cloud Architecture
⭐ Se este projeto foi útil, considere dar uma estrela!
