Deploy AWS ECS + API Gateway — ecosif-querys
Público-alvo: DevOps / SRE
Objetivo: Configurar o serviço ecosif-querys na AWS com ECS e uma única API Gateway. URL final: https://app.ecosif.com.br/ecosif-querys. 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-querys / /ecosif-querys/{proxy+} |
ECS ecosif-querys (ALB) |
Consultas (saldos, razão, listagens) |
2. Context path
O default do serviço é / (raiz), via ECOSIF_CONTEXT no application.yml e ECOSIF_EP_CONTEXT_PATH_DEFAULT no entrypoint.
Para este deploy na API Gateway, definir explicitamente o prefixo /ecosif-querys:
ECOSIF_QUERYS_CONTEXT=/ecosif-querys (ou ECOSIF_CONTEXT, ecosif_context, ECOSIF_QUERYS_CONTEXT_PATH)
- O entrypoint exporta as canónicas e passa
-Dserver.servlet.context-path à JVM quando o path não é /
3. Variáveis de ambiente para ECS (ecosif-querys)
3.1 Servidor
| Variável |
Obrigatória |
Descrição |
Valor em ECS |
ECOSIF_QUERYS_PORT |
Sim* |
Porta HTTP do contentor |
8080 |
ECOSIF_QUERYS_CONTEXT (ou ECOSIF_CONTEXT) |
Sim |
Prefixo da aplicação no Gateway |
/ecosif-querys |
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_querys |
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 / 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 |
AWS_ACCESS_KEY_ID |
Conforme uso |
AWS S3 (se usar) |
— |
AWS_SECRET_ACCESS_KEY |
Conforme uso |
AWS |
— |
AWS_DEFAULT_REGION |
Conforme uso |
Região |
us-east-1 |
LOG_FORMAT |
Não |
Logback |
json |
4. ECS (task definition)
- Porta do contentor: 8080.
- Health check (ALB):
/ecosif-querys/actuator/health.
- Secrets:
POSTGRES_PASSWORD, AUTH_TOKEN_SECRET.
Para lista completa de variáveis, ver variaveis_operacionais.md.