docs(infra): descoberta + IaC do RDS Proxy compartilhado, aguardando aprovação (M2-03)#149
Open
cstipkovic wants to merge 2 commits into
Open
docs(infra): descoberta + IaC do RDS Proxy compartilhado, aguardando aprovação (M2-03)#149cstipkovic wants to merge 2 commits into
cstipkovic wants to merge 2 commits into
Conversation
…aprovação (M2-03)
Fase 0 (somente leitura) executada contra a conta AWS real: descobre que o
identificador de dev mudou de dev-mysql para mysql-dev-instance, que ambas
as VPCs (dev/prod) são VPCs default com subnets públicas e uma ÚNICA route
table por VPC (sem NAT existente), e que os Security Groups do RDS
('mysql-anywahre'/'mysql-anywhere') liberam 3306 para 0.0.0.0/0 — exposição
pré-existente, fora do escopo desta issue.
Isso muda o plano original: criar um NAT Gateway exigiria alterar a rota de
uma tabela compartilhada por toda a VPC (que também hospeda o
influentia-prod-mysql em prod), afetando outros projetos. Documentado como
decisão de arquitetura pendente de aprovação do engenheiro-chefe.
Adiciona infra/rds-proxy.yml (CloudFormation parametrizado e validado via
aws cloudformation validate-template: role, security groups com regras
cruzadas quebrando dependência circular, RDS Proxy com MaxConnectionsPercent
25, regra de ingress aditiva no SG do RDS) e docs/runbooks/rds-proxy.md com
toda a descoberta, SQL da Fase 1 e checklist de validação.
NÃO EXECUTADO: criação de usuário MySQL (tarefa manual do engenheiro-chefe),
Secrets Manager, deploy do CloudFormation, alteração de Security Group real,
vpc: nas Lambdas (deixado comentado no serverless.yml, bloqueado pela
decisão de NAT/subnets).
Refs #77
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…roxy (M2-03) Aprovado: subnets novas dedicadas (Opção 1 do runbook) em vez de alterar a route table compartilhada por toda a VPC. Adiciona infra/vpc-lambda-network.yml (stack separada e aditiva: 2 subnets por stage em CIDR livre 172.31.48.0/24 e 172.31.49.0/24, route table própria, NAT Gateway próprio na subnet pública existente reaproveitada) — nenhum recurso pré-existente da VPC é modificado. Atualiza o bloco custom.vpc (ainda comentado) no serverless.yml com os Fn::ImportValue reais dos exports das duas stacks, corrigindo um bug: o export original de subnetIds era uma string única separada por vírgula (Fn::ImportValue não faz split em lista), agora exportadas individualmente (LambdaSubnet1Id/LambdaSubnet2Id). Ambos os templates validados via aws cloudformation validate-template. Ainda NÃO deployado — aguarda Fases 1 (usuário MySQL) e 2 (Secrets Manager). Refs #77 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumo
Fase 0 (descoberta, somente leitura) do RDS Proxy executada contra a conta AWS real, mais o CloudFormation (
infra/rds-proxy.yml) e o runbook (docs/runbooks/rds-proxy.md) prontos. Esta PR não deploya nada — é IaC + documentação aguardando aprovação humana em pontos específicos.Achados da descoberta (Fase 0)
dev-mysql(citado na doc legado) paramysql-dev-instance— mesmo cluster (ckkqlpl6ei1d), aparentemente renomeado.vpc-f6d5a291, prodvpc-1cb84078) são VPCs default, com subnets públicas e uma única route table por VPC — não há NAT Gateway existente.mysql-anywahredev /mysql-anywhereprod) liberam 3306 para 0.0.0.0/0 — achado de segurança pré-existente, fora do escopo desta issue (não alterado).prod-mysqlcompartilha VPC cominfluentia-prod-mysql— confirma o banco compartilhado com outro projeto citado na doc.Decisão de arquitetura pendente
Criar o NAT Gateway necessário exigiria alterar a rota de uma tabela compartilhada por toda a VPC (afetando outros recursos, inclusive o banco do InfluentIA em prod). Duas opções levantadas no runbook, sem decisão tomada — pendente de aprovação do engenheiro-chefe.
O que foi escrito (código apenas, não executado)
infra/rds-proxy.yml— stack CloudFormation separada (role, security groups com regras cruzadas via recursos standalone para evitar dependência circular, RDS Proxy comMaxConnectionsPercent: 25, regra de ingress aditiva no SG do RDS). Validado comaws cloudformation validate-template.docs/runbooks/rds-proxy.md— descoberta completa, SQL da Fase 1 (usuárioadserverless_app), comandos de deploy documentados, checklist de validação, rollback.serverless.yml— blococustom.vpccomentado, documentando o bloqueio.docs/MATRIZ-PARIDADE.md— linha D01 atualizada.O que NÃO foi feito (intencional)
adserverless_app(tarefa manual do engenheiro-chefe)vpc:ativo nas Lambdas (bloqueado pela decisão de NAT/subnets)Como testar
Refs #77
🤖 Gerado com Claude Code