Files
AI-inovyo-assistende-db/docs/infrastructure.md
2026-05-14 15:29:03 -03:00

5.1 KiB
Raw Blame History

Infraestrutura

A infraestrutura é gerenciada via Pulumi (IaC em Python) e provisionada na AWS.

Visão Geral dos Recursos

┌─────────────────────────────────────────────────┐
│          AWS Account 305427701314               │
│               (us-east-1)                       │
│                                                 │
│  ┌──────────────────────────────────────────┐   │
│  │         Application Load Balancer        │   │
│  │  Portas: 8501 (Streamlit), 8000 (API)    │   │
│  │  Subnets: públicas (2)                   │   │
│  └─────────────────┬────────────────────────┘   │
│                    │                            │
│  ┌─────────────────▼────────────────────────┐   │
│  │          ECS Fargate Cluster             │   │
│  │  Task: assistente-analitico-db-dev       │   │
│  │  CPU: 256 | Memória: 512 MB             │   │
│  │  Auto-scaling: 13 instâncias (60% CPU)  │   │
│  │  Subnets: privadas (2)                   │   │
│  └──────────────────────────────────────────┘   │
│                                                 │
│  ┌──────────┐ ┌──────────┐ ┌──────────────┐    │
│  │   ECR    │ │   KMS    │ │   Secrets    │    │
│  │  Repo    │ │  Key     │ │   Manager    │    │
│  └──────────┘ └──────────┘ └──────────────┘    │
│                                                 │
│  ┌──────────────────────────────────────────┐   │
│  │          CloudWatch Logs                 │   │
│  │  Log Group: assistente-analitico-db-dev  │   │
│  │  Retenção: 7 dias                        │   │
│  └──────────────────────────────────────────┘   │
└─────────────────────────────────────────────────┘

Stacks Pulumi

O diretório infra/ contém três stacks independentes:

1. infra/ecr/ — Elastic Container Registry

Cria o repositório ECR para armazenar as imagens Docker.

Configuração Valor
Stack inovyo
Repositório assistente-analitico-db-dev

2. infra/ecs_alb/ — ECS + Application Load Balancer

Stack principal que provisiona o cluster ECS Fargate com ALB.

Configurações principais:

Configuração Valor
Stack Inovyo
Projeto assistente-analitico
Ambiente dev
Conta AWS 305427701314
Região us-east-1

Rede:

Recurso Valor
VPC vpc-17ceb96c
Subnets ALB 2 subnets públicas
Subnets ECS 2 subnets privadas
Ingress CIDR 3.14.44.224/32 (IP restrito)
ALB interno Não (externamente acessível)

ECS Task:

Configuração Valor
Task Name assisnte-analitico-db-dev
CPU 256
Memória 512 MB
Desired Count 1
Auto-scaling 13 instâncias, target 60% CPU
Portas 8000 (API), 8501 (Streamlit)

Variáveis de ambiente do container:

Variável Descrição
LANGFUSE_HOST Endpoint do Langfuse

Módulos inclusos:

  • iam.py — Roles de execução e task com políticas para Bedrock, DynamoDB, Secrets Manager, CloudWatch
  • ecs.py — Definição de task, service, target groups, listeners e auto-scaling
  • ecr.py — Referência ao repositório ECR
  • kms.py — Chave KMS para criptografia
  • conf.py — Carregamento de configuração do Pulumi
  • autotag/ — Auto-tagging de recursos AWS

3. infra/langfuse/ — Langfuse

Provisionamento da infraestrutura para o serviço de observabilidade Langfuse.

Configuração Valor
Stack inovyo
Host http://172.31.252.176:3000

Serviços AWS Utilizados

Serviço Uso
ECS Fargate Orquestração de containers
ALB Balanceamento de carga
ECR Registry de imagens Docker
Bedrock Inferência de modelos LLM
DynamoDB Contexto e dados pré-processados do agente
Secrets Manager Credenciais do Langfuse
KMS Criptografia
CloudWatch Logs
IAM Controle de acesso

Como Deployar Infraestrutura

Consulte o Guia de Deploy para instruções detalhadas.