Deploy AWS ECS + API Gateway — ecosif-moviments
Público-alvo: DevOps / SRE
Objetivo: Configurar o serviço ecosif-moviments na AWS com ECS e uma única API Gateway. URL final: https://app.ecosif.com.br/ecosif-moviments. Este documento não cobre criação de banco de dados.
1. Arquitetura e mapeamento na API Gateway
| Path (API Gateway) |
Target |
Descrição |
/ecosif-moviments / /ecosif-moviments/{proxy+} |
ECS ecosif-moviments (ALB) |
Lançamentos, lotes, consolidação, encerramento, importação |
2. Context path
Configurar context path /ecosif-moviments:
- No
application.yml: server.servlet.context-path: /ecosif-moviments
- Ou variável:
SERVER_SERVLET_CONTEXT_PATH=/ecosif-moviments
3. Variáveis de ambiente para ECS (ecosif-moviments)
3.1 Servidor
| Variável |
Obrigatória |
Descrição |
Valor em ECS |
ECOSIF_MOVIMENTS_PORT |
Sim* |
Porta HTTP do contentor |
8080 |
SERVER_SERVLET_CONTEXT_PATH |
Sim |
Prefixo da aplicação |
/ecosif-moviments |
3.2 Banco de Dados (PostgreSQL)
| Variável |
Obrigatória |
Descrição |
Exemplo |
POSTGRES_HOST |
Sim |
Host do PostgreSQL |
ecosif-db.xxxxx.us-east-1.rds.amazonaws.com |
POSTGRES_PORT |
Sim |
Porta |
5432 |
POSTGRES_DB |
Sim |
Nome do banco |
ecosif |
POSTGRES_USER |
Sim |
Usuário |
ecosif_moviments |
POSTGRES_PASSWORD |
Sim |
Senha |
(secret) |
3.3 JWT e CORS
| Variável |
Obrigatória |
Descrição |
Valor para app.ecosif.com.br |
AUTH_TOKEN_SECRET |
Sim |
Chave JWT (igual ao ecosif-auth) |
(secret) |
TOKEN_EXPIRATION |
Sim |
Vida do token (ms) |
86400000 |
ECOSIF_CORS |
Sim |
Origens CORS |
https://app.ecosif.com.br |
3.4 JPA / Flyway / AWS S3 / Logs
| Variável |
Obrigatória |
Descrição |
Valor típico |
HIBERNATE_DDL_AUTO |
Sim* |
DDL Hibernate |
validate |
ECOSIF_FLYWAY_ENABLED |
Não |
Migrações na subida |
true ou false |
ECOSIF_ENVIRONMENT |
Não |
Identificador de ambiente |
prod |
AWS_ACCESS_KEY_ID |
Conforme uso |
AWS S3 |
— |
AWS_SECRET_ACCESS_KEY |
Conforme uso |
AWS |
— |
AWS_DEFAULT_REGION |
Conforme uso |
Região |
us-east-1 |
AWS_S3_BUCKET |
Conforme uso |
Bucket (import, purge, etc.) |
— |
LOG_FORMAT |
Não |
Logback |
json |
4. ECS (task definition)
- Porta do contentor: 8080.
- Health check (ALB):
/ecosif-moviments/actuator/health.
- Secrets:
POSTGRES_PASSWORD, AUTH_TOKEN_SECRET (e AWS se necessário).
Para lista completa de variáveis e pastas S3, ver operational.md.