Modernizar infraestrutura para escala de operações
A ideia do projeto baseou-se na migração gradual da infraestrutura on-premise existente juntamente com a modernização da arquitetura.
O primeiro serviço a ser utilizado na nova arquitetura foi o Amazon Aurora Serverless. Ele foi escolhido como forma de atender a necessidade de flexibilidade na escalabilidade do banco de dados em horários de pico e nos casos de processos computacionalmente intensos que podem ocorrer em horários variados.
Os serviços de aplicação da Videosoft compartilhavam a mesma instância na sua infraestrutura on-premise, o que tornava inviável a escala independente dos serviços. Como forma de permitir essa escala e de proporcionar às aplicações ambientes isolados, foi realizada a migração para o ECS Fargate.
As aplicações foram conteinerizadas e adicionadas como serviços diferentes dentro de um cluster ECS. Isso permitiu criar ambientes mínimos para cada aplicação e realizar a criação de políticas de Auto Scaling horizontais para cada serviço. Para distribuir o tráfego entre os diferentes containers dos serviços foi utilizado um Application Load Balancer.
Foi necessário introduzir um mecanismo de compartilhamento de sessão que pudesse ser acessado de forma externa pelos containers pertencentes aos mesmos serviços. Para isso, foi utilizado o Elasticache for Redis em modo cluster, um serviço gerenciado de banco de dados de memória principal que pode ser utilizado como um cache de sessão para os serviços presentes no ECS.
Para atender a necessidade de um sistema de arquivos compartilhado que pudesse ser acessado pelos serviços do ECS, foi utilizado o serviço Elastic File System, que fornece um sistema de arquivos de alta disponibilidade com throughput elástico.
Para garantir a segurança da solução e a fim de prevenir acessos não-legítimos às aplicações, foram criadas regras de rate-limit e de bloqueio de geolocalização utilizando o AWS WAF atrelado ao Application Load Balancer.