| Se você utiliza o Adianti Framework e deseja escalar o seu sistema para suportar mais usuários ou melhorar o desempenho, uma excelente solução é configurar múltiplas instâncias (servidores) rodando na AWS, usando: |
| Se você utiliza o Adianti Framework e deseja escalar o seu sistema para suportar mais usuários ou melhorar o desempenho, uma excelente solução é configurar **múltiplas instâncias** (servidores) rodando na **AWS**, usando: |
| - Load Balancer (ALB da AWS) para distribuir os acessos |
| - Redis (ElastiCache AWS) para gerenciar as sessões de usuários de forma compartilhada |
| - S3 para armazenar arquivos temporários e documentos |
| - RDS Aurora MySQL para o banco de dados |
| - **Load Balancer (ALB da AWS)** para distribuir os acessos |
| - **Redis (ElastiCache AWS)** para gerenciar as sessões de usuários de forma compartilhada |
| - **S3** para armazenar arquivos temporários, documentos e imagens |
| - **RDS Aurora MySQL** para o banco de dados |
| Recentemente implementei essa arquitetura para meu sistema rodando na AWS, e notei uma melhora clara no desempenho. Principalmente no tempo de resposta e na estabilidade durante acessos simultâneos. |
| Aqui vou explicar como fizemos, por que isso melhora o desempenho, e como configurar de maneira prática na AWS. |
| Aqui vou explicar **como fizemos**, **por que isso melhora o desempenho**, e **como configurar** de maneira prática na AWS. |
| <h4>Por que usar Load Balancer + Redis na AWS</h4> |
- ** - - - |
| Além disso: |
| - Usamos |
| --- |
| - |
| - |
| - |
| - |
| - |
| - Sistema rodando o |
| Toda a infraestrutura foi provisionada e configurada dentro da |
| --- |
| - No console da AWS, vá em |
| - |
| - Configure o Security Group liberando a porta |
| Em cada instância EC2 (Ubuntu 22.04), instale o Redis PHP extension: |
| ```bash |
| sudo apt update |
| sudo apt install php-redis |
| sudo systemctl restart apache2 |
| ``` |
| Ajustar o PHP para usar o Redis |
| No php.ini da sua instância EC2: |
| No `php.ini` da sua instância EC2: |
| ```ini |
| session.save_handler = redis |
| session.save_path = "tcp://ENDPOINT_DO_REDIS:6379" |
| ``` |
| 4. Configurar o Load Balancer (ALB AWS) |
sudo systemctl restart apache2 ``` ### 4. Configurar o Load Balancer (ALB AWS) - Escolha o tipo |
| - Configure listeners para HTTP ou HTTPS. |
| - No Target Group, associe suas instâncias EC2. |
| 5. Configurar o Bucket S3 para arquivos temporários |
| - Garanta que as permissões estejam configuradas corretamente. |
| - Integre o sistema Adianti para salvar e ler diretamente do S3 ao invés de gravar em disco local. |
| - No console da AWS, vá em |
| - Configure instâncias com Multi-AZ para alta disponibilidade. |
| - Defina segurança de acesso permitindo apenas conexões internas (via VPC e VPN). |
| --- |
| No arquivo |
| ```ini |
| [general] |
| session_name = MSGESTOR |
| No caso de uso do S3, ajuste também o local de salvamento/armazenamento de arquivos no código PHP conforme necessidade ( |
| Nenhuma outra modificação grande é necessária no Adianti, pois ele já trabalha normalmente com sessões PHP e banco de dados MySQL compatível. |
|
|
| Além da alta disponibilidade, a segurança também foi uma prioridade nesta configuração na AWS: |
| - Apenas via |
| - A |
| - Nenhuma conexão direta exposta ao público. |
| - |
| - As instâncias EC2 |
| - O acesso externo é feito |
| - Com essa arquitetura, é possível |
| - Exemplo: duas instâncias durante o expediente e apenas uma no período da noite. |
| - Reduzindo custos conforme a demanda do sistema. |
| --- |
| Com a infraestrutura completa na AWS, obtivemos: |
| - Melhor |
| - Mais |
| - Capacidade para muito mais conexões simultâneas |
| - |
| - |
| - |
| - |
| - |
| --- |
| Se você deseja |
| Mesmo para sistemas de pequeno ou médio porte, essa arquitetura já se paga em segurança, velocidade e preparo para o crescimento. |
| --- |
| <h4>Implementação real no sistema MS Gestor, utilizando: </h4> |
| - Adianti Framework 7.5.1 |
| - PHP 8.2 |
| - Redis (ElastiCache AWS) |
| - Load Balancer (ALB AWS) |
| - RDS Aurora MySQL AWS |
| - Armazenamento de arquivos no S3 AWS |
| - Instâncias EC2 ARM (m7g.medium AWS) |
| Infraestrutura 100% em AWS, focada em alta disponibilidade, segurança, escalabilidade e performance. |
| > **Implementação real no sistema MS Gestor**, utilizando: |
| > • **Adianti Framework 7.5.1** |
| > • **PHP 8.2** |
| > • **Redis (ElastiCache AWS)** |
| > • **Load Balancer (ALB AWS)** |
| > • **RDS Aurora MySQL AWS** |
| > • **Armazenamento de arquivos no S3 AWS** |
| > • **Instâncias EC2 ARM (m7g.medium AWS)** |
| > |
| > 🚀 Infraestrutura 100% em **AWS**, focada em alta disponibilidade, segurança, escalabilidade e performance. |
| - ## Próximo Passo |