Deploy AWS ECS + API Gateway — ecosif-auth

Público-alvo: DevOps / SRE
Objetivo: Configurar o serviço ecosif-auth na AWS com ECS e uma única API Gateway. URL final: https://app.ecosif.com.br/ecosif-auth. 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-auth / /ecosif-auth/{proxy+} ECS ecosif-auth (ALB) Autenticação e emissão de JWT

Os demais paths (/, /ecosif-masterdata, etc.) são tratados noutros serviços (ver docs de cada módulo).


2. Context path e comportamento

No application.yml (ou via variável):

server:
  servlet:
    context-path: /ecosif-auth

Ou com variável de ambiente (se o projeto a suportar): SERVER_SERVLET_CONTEXT_PATH=/ecosif-auth.


3. Variáveis de ambiente para ECS (ecosif-auth)

Definir na task definition do ECS (ou em Secrets Manager/Parameter Store referenciados pela task).

3.1 Servidor

Variável Obrigatória Descrição Valor em ECS
ECOSIF_AUTH_PORT Sim* Porta HTTP do contentor 8080
SERVER_SERVLET_CONTEXT_PATH Sim Prefixo da aplicação /ecosif-auth

* Padrão Spring Boot 8080; o ALB faz health check nesta porta.

3.2 Banco de Dados (PostgreSQL)

Variável Obrigatória Descrição Exemplo
POSTGRES_HOST Sim Host do PostgreSQL (RDS/outro) 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_auth
POSTGRES_PASSWORD Sim Senha (secret)

3.3 JWT e segurança

Variável Obrigatória Descrição Exemplo
AUTH_TOKEN_SECRET Sim Chave secreta JWT (HMAC) String longa e aleatória (secret)
TOKEN_EXPIRATION Sim Vida do token (ms) 86400000 (24h)

3.4 CORS

Variável Obrigatória Descrição Valor para app.ecosif.com.br
ECOSIF_CORS Sim Origens permitidas https://app.ecosif.com.br

3.5 JPA / Flyway / OAuth2 / Logs

Variável Obrigatória Descrição Valor típico
HIBERNATE_DDL_AUTO Sim* DDL Hibernate validate
ECOSIF_FLYWAY_ENABLED Não Executar migrações na subida true ou false
AUTH2_CLIENT_ID Não OAuth2 Google (se usar)
AUTH2_SECRET Não OAuth2 Google (se usar)
LOG_FORMAT Não Logback json (recomendado para CloudWatch)

4. ECS (task definition)

Para lista completa de variáveis e logs, ver operational.md.