Skip to content

End-to-End Fraud Detection Pipeline on AWS. Ingestão de dados, ETL com Python e Analytics Serverless (S3, Glue, Athena) provisionados via Terraform.

Notifications You must be signed in to change notification settings

Thiago-code-lab/aws-streaming-fraud-detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AWS Fraud Detection Pipeline

AWS Terraform Python

Image

Pipeline de Engenharia de Dados End-to-End para Detecção de Fraudes em Transações Financeiras

ArquiteturaComeçarTecnologiasAprendizados


📋 Sobre o Projeto

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.

🏗️ Arquitetura

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   │
                                                                         └──────────────────┘

Componentes

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.


🚀 Como Executar

Pré-requisitos

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)

Passo 1: Provisionar Infraestrutura

cd terraform
terraform init
terraform apply -auto-approve

O que será criado:

  • 2 Buckets S3 (raw/processed)
  • Glue Database e Crawler
  • Políticas IAM necessárias

Passo 2: Gerar Dados (Ingestão)

python src/producer/main.py
Image

Digite Ctrl + C para pausar o gerador

Image

Bucket gerado no S3

Image

Deixe o script executar por alguns segundos para gerar massa de dados suficiente para análise.

Passo 3: Processar Fraudes (ETL)

python src/processing/fraud_detector.py

Processo 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
Image

Passo 4: Analisar Resultados

Acesse o Amazon Athena no console da AWS e execute:

SELECT * FROM fraud_detection_db.fraudes_detectadas;
Image

🛠️ Tecnologias

Infraestrutura e Cloud

  • 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

Desenvolvimento

  • 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

Formatos de Dados

  • JSON - Formato raw (ingestão)
  • Parquet - Formato otimizado (processado)

📌 Aprendizados

Durante o desenvolvimento deste projeto, foram adquiridos conhecimentos sobre:

Engenharia de Dados

  • 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

AWS & DevOps

  • 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)

Boas Práticas

  • 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!

About

End-to-End Fraud Detection Pipeline on AWS. Ingestão de dados, ETL com Python e Analytics Serverless (S3, Glue, Athena) provisionados via Terraform.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published