1. 2. AWS Amplify
1.1. Desenvolvimento: Configure outro projeto no Amplify para o ambiente de desenvolvimento. Utilize as mesmas funções, mas com configurações mais relaxadas para facilitar os testes.
1.2. Produção: Utilize o Amplify para gerenciar as funções de autenticação (cadastro, reset de senha, login, logout) no ambiente de produção. Certifique-se de que as configurações de segurança estejam adequadas para um ambiente de produção.
2. 3. AWS EC2
2.1. Desenvolvimento: Crie outra instância EC2 para o ambiente de desenvolvimento. Você pode configurar o Nginx e o PM2 da mesma forma, mas com um domínio diferente. Considere usar um certificado autoassinado ou um certificado Let's Encrypt para o ambiente de desenvolvimento.
2.2. Produção: Crie uma nova instância EC2 para o ambiente de produção. Configure o PM2 para gerenciar o processo do servidor e o Nginx como proxy reverso. Utilize um certificado SSL válido para o domínio de produção.
3. 4. AWS Systems Manager
3.1. Desenvolvimento: Para o ambiente de desenvolvimento, configure regras de desligamento automático fora do horário comercial e durante os finais de semana, como foi feito no ambiente non-prod. Isso ajudará a reduzir custos.
3.2. Produção: Configure o Systems Manager para gerenciar a instância EC2 de produção. Não é necessário configurar regras de desligamento automático, pois o ambiente de produção deve estar sempre disponível.
4. 5. AWS RDS
4.1. Desenvolvimento: Crie outro banco de dados RDS para o ambiente de desenvolvimento. Você pode optar por uma instância menor e menos custosa, já que o ambiente de desenvolvimento não precisa da mesma capacidade que o de produção.
4.2. Produção: Crie um novo banco de dados RDS para o ambiente de produção. Certifique-se de que o banco de dados esteja configurado com backups automáticos e alta disponibilidade.
5. 9. Isolamento de Ambientes
5.1. IAM Roles e Policies: Configure IAM roles e policies específicas para cada ambiente, garantindo que as permissões sejam adequadas e seguras para cada contexto.
5.1.1. Produção: Utilize o Amplify para gerenciar as funções de autenticação (cadastro, reset de senha, login, logout) no ambiente de produção. Certifique-se de que as configurações de segurança estejam adequadas para um ambiente de produção.
5.1.2. Desenvolvimento: Configure outro projeto no Amplify para o ambiente de desenvolvimento. Utilize as mesmas funções, mas com configurações mais relaxadas para facilitar os testes.
5.2. VPCs Separadas: Considere criar VPCs (Virtual Private Cloud) separadas para os ambientes de produção e desenvolvimento. Isso garantirá que os ambientes estejam completamente isolados.
5.2.1. Produção: Crie um novo User Pool no AWS Cognito para o ambiente de produção. Configure MFA (Multi-Factor Authentication) para aumentar a segurança. Certifique-se de que o atributo personalizado custom:infoIsComplete esteja presente.
5.2.2. Desenvolvimento: Crie outro User Pool para o ambiente de desenvolvimento. Você pode optar por não habilitar MFA para facilitar os testes. O User Pool pode ser semelhante ao centralizedev-sta23ging, mas com um nome diferente, como centralizedev-dev. 2. AWS Amplify