5.1 KiB
5.1 KiB
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: 1–3 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 | 1–3 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, CloudWatchecs.py— Definição de task, service, target groups, listeners e auto-scalingecr.py— Referência ao repositório ECRkms.py— Chave KMS para criptografiaconf.py— Carregamento de configuração do Pulumiautotag/— 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.