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.