O blog da AWS
Como a Embratel implementou uma estratégia de DR no Sistema Eletrônico de Informações(SEI) usando AWS
Por Marco Cordeiro, Cloud Solution Advisor e Tech Lead, Embratel;
Deiverson de Miranda Takano, Cloud Solution Architect, Embratel;
Adeilson Pereira de Araujo, Cloud Solution Architect, Embratel;
Edgar da Silva Pietrobom, Cloud Solution Architect, Embratel;
Vinicius Soares Batista, Senior Partner Solutions Architect, AWS.
Introdução
O Sistema Eletrônico de Informações (SEI) é um sistema de produção e gestão de documentos e processos eletrônicos desenvolvido pelo Tribunal Regional da 4a região (TRF4), e cedido gratuitamente à administração pública. O SEI é desenvolvido nas tecnologias Java e PHP, utilizando componentes de código aberto como o Apache Httpd, Apache Tomcat e LibreOffice. Para mais informações sobre o SEI na AWS, assim como uma arquitetura de referência, acesse esse link.
A parceira Embratel, ciente do desejo de cliente do Setor Público de utilizar o SEI na nuvem, trabalhou em uma solução que utiliza um conjunto de recursos e serviços para implementar o SEI com alta disponibilidade, utilizando uma única região da AWS. O objetivo desse blog é apresentar os desafios e soluções encontradas durante essa jornada.
Desafio
O SEI hospedado em infraestrutura on-premises exige manutenção complexa, de alto custo e está sujeito a apresentar indisponibilidade no serviço em momentos com alto volume de acessos. Adicionalmente, as informações armazenadas no portal (por exemplo: processos administrativos, contratos e licitações) são de extrema relevância para garantir a transparência das ações do governo para a sociedade. Apenas para fins elucidativos, o ambiente SEI no cliente possui aproximadamente 15 TB de dados, entre sistemas de arquivos e bases de dados do Microsoft SQL Server.
Solução
- A parceira Embratel, os times de tecnologia do cliente e arquitetura de soluções da AWS trabalharam em conjunto no desenvolvimento de uma estratégia de migração do SEI para a nuvem, com o objetivo de garantir os seguintes pontos:
- Segurança por meio de controles a nível de aplicação e infraestrutura;
- Alta disponibilidade: a aplicação deve ser capaz de suportar picos de acesso intermitentes, sem apresentar erros ou perda de dados;
- Resiliência: a solução deve ser resiliente, mantendo-se operacional mesmo com indisponibilidade de um ou mais serviços. Para esse ponto foi definido um RPO (espaço de tempo entre a perda de dados e o backup anterior) de até 01 (uma) hora e um RTO (tempo de recuperação total do ambiente) de 30 minutos;
- Economia, mantendo somente os recursos necessários para execução e;
- Facilidade de gestão da infraestrutura, por meio do uso de serviços gerenciados.
Um ponto de destaque – e foco desse blogpost – é a utilização de serviços localizados somente em território nacional, para garantir compliance com a legislação e normas vigentes.
Para o ambiente em questão, foi utilizada uma arquitetura totalmente baseada na região de São Paulo(sa-east-1), fazendo o uso dos seguintes serviços:
Serviços de Compute com Amazon EC2
Nessa solução foi utilizado o Amazon Elastic Cloud Compute (Amazon EC2) para hospedar os componentes do SEI. O recurso Auto-Scale Group (ASG) monitora os aplicativos e ajusta automaticamente a capacidade para manter um desempenho constante e previsível pelo menor custo possível, gerando economia significativa ao evitar o provisionamento de recursos não utilizados (overprovisioning) no ambiente.
Amazon EFS no armazenamento de dados
Para o armazenamento dos documentos e outros dados gerados pelo SEI, foi utilizado o Amazon Elastic File System (Amazon EFS), que permite criar e configurar sistemas de arquivos compartilhados de maneira simples e rápida para os serviços de computação da AWS, sem necessidade de provisionamento, implantação, aplicação de patches ou manutenção.
Amazon RDS Custom para Banco de Dados
Um item de grande importância na arquitetura do SEI é a base de dados, que além de armazenar registros não-binários, também possui uma grande quantidade de campos binários (Binary Large Objects, ou BLOBs). Para o caso do cliente, foi decidido manter o banco de dados no Microsoft SQL Server rodando no serviço Amazon Relational Database Service (Amazon RDS), que facilita a configuração, operação e escalabilidade de bancos de dados na nuvem. Para atender as necessidades de Disaster Recovery (DR) do cliente, foi utilizado o Amazon RDS Custom, que permite customizações de baixo nível no ambiente do banco de dados e do sistema operacional, sem abrir mão de um serviço gerenciado. Tais características foram essenciais para implementar o ponto abaixo.
Ambiente de Disaster Recovery (DR)
Como apresentado anteriormente, um dos objetivos do cliente na migração para a AWS era garantir alta disponibilidade e um ambiente de recuperação de desastres, independentemente do cenário. Por meio dos serviços já descritos e suas características de alta disponibilidade e resiliência, o time da Embratel propôs a implantação de uma segunda conta (SEI-DR no diagrama), completamente apartada da conta de produção. Para a replicação em tempo real, foram utilizados os seguintes serviços e características:
Zonas de Disponibilidade (Availability Zones – AZ): Uma zona de disponibilidade (AZ) é um ou mais datacenters distintos com energia, rede e conectividade redundantes em uma região da AWS. As AZs proporcionam aos clientes a capacidade de operar aplicativos e bancos de dados de produção com alta disponibilidade, tolerância a falhas e escalabilidade em níveis superiores aos que um único datacenter pode oferecer. Todas as AZs em uma região da AWS estão interconectadas por redes de alta largura de banda e baixa latência, usando fibra metropolitana dedicada e totalmente redundante para proporcionar redes de alto throughput e baixa latência entre AZs. Todo o tráfego entre as AZs é criptografado. O desempenho da rede é suficiente para realizar a replicação síncrona entre as AZs.
AWS DataSync: Utilizando o AWS DataSync é possível replicar com segurança os dados em serviços de armazenamento AWS, incluindo qualquer classe de armazenamento do Amazon S3. Para esse caso, o AWS DataSync foi configurado para replicar os volumes EFS entre contas a cada 1 hora, tempo esse que pode ser customizado de acordo com a necessidade.
Amazon RDS Custom, por meio do Microsoft SQL Server Always On: Uma das vantagens do Amazon RDS Custom é a possibilidade de customizarmos o banco de dados ou sistema operacional sem abrir mão de características como escalabilidade e aplicação de patches gerenciadas pela própria AWS. Com isso, foi possível utilizar uma configuração baseada no modelo Always-On, que permite um ambiente replicado para um conjunto de bancos de dados do usuário. Tal modelo, em conjunto com a baixa latência e alto throughput disponível entre diferentes AZs da AWS, permite que a replicação do Microsoft SQL Server ocorra próxima ao tempo real (Near Real-Time).
AWS Backup: Todo o processo de backup e restore de dados é realizado por meio do AWS Backup, um serviço totalmente gerenciado e baseado em políticas que simplifica a proteção de dados em escala. O AWS Backup permite também a criação de backups imutáveis para manter a proteção contra ocorrências acidentais ou criminosos, além de prover relatórios prontos para auditorias de conformidade e proteção de dados.
Serviços de Rede Privada Virtual e Conectividade: os serviços utilizam o Amazon Virtual Private Cloud (Amazon VPC), que oferece controle total sobre seu ambiente de redes virtual, incluindo posicionamento de recursos, conectividade e segurança. Recursos aprimorados como o Network Access Analyzer, Grupos de Segurança e Lista de Controles de acesso a rede (ACLs) permitem a redução da superfície de ataque, assim como o rastreamento de conexões e identificação de acessos suspeitos.
Para a conectividade entre o ambiente on-premises do cliente e a nuvem AWS foi utilizado o AWS Direct Connect, que mantém todo o tráfego dentro da rede global da AWS, reduzindo a possibilidade de gargalos ou aumentos inesperados de latência. Para uma postura elevada de segurança, foi criada uma conexão VPN site-to-site, provendo uma camada adicional de criptografia para os dados em trânsito.
Para a detecção de falhas e failover entre Zonas de Disponibilidade/contas, foi utilizado o recurso de health-check do Amazon Route 53, que permite definir políticas de roteamento para predeterminar e automatizar as respostas para recuperação de aplicações ao redirecionar o tráfego para regiões ou zonas de disponibilidade alternativas.
Resultados alcançados
Após a implementação finalizada, os times da Embratel e do cliente executaram testes (Disaster Recovery Tests – DRT) com o objetivo de mensurar e refinar a resposta a incidentes, e os resultados são muito satisfatórios. Graças às características da solução, mesmo em um cenário de uma Zona de Disponibilidade totalmente indisponível, o processo de failover foi executado de forma automatizada. A flexibilidade da arquitetura proposta permitiu ao cliente alcançar um RTO de 0 (zero) minutos, e RPO inferior a 1 hora para o Amazon EFS. Para o banco de dados, foi alcançado um RTO e RPO 0 (zero), sem perdas de dados ou indisponibilidade para os usuários.
Com os recursos de rede privada e VPN site-to-site, os acessos ocorrem apenas em ambiente corporativo (ou dentro da infraestrutura AWS), sem dados trafegando via internet, reduzindo consideravelmente a superfície de ataque e o risco de gargalos e indisponibilidade no SEI.
Conclusão
Utilizando os serviços gerenciados AWS, a Embratel pôde desenvolver e implementar uma arquitetura altamente segura, resiliente e altamente disponível, possibilitando o cliente focar em valor de negócios. De Acordo com Marco Cordeiro, Cloud Solution Advisor da Embratel, “o projeto foi desafiador, em virtude da aplicação nativamente monolítica não proporcionar alta disponibilidade, escalabilidade ou contingência. Com a nova arquitetura conseguimos atingir estes objetivos, e ainda propriciar o re-plataform de alguns serviços, tais como Banco de Dados e sistema de arquivos NFS utilizando soluções PaaS.” Segundo Deiverson Takano, Cloud Solution Architect, “todo o projeto foi muito enriquecedor, pois foram utilizados diversos recursos da AWS para entregar um ambiente resiliente, seguro e escalável. Contudo o maior desafio foi no âmbito do banco de dados, onde implemetamos um Microsoft SQL Server em Always On utilizando AWS RDS Custom com nodes Cross Account.”
Em breve publicaremos um blog técnico, com uma arquitetura reutilizável, abordando detalhes técnicos da configuração do AWS RDS Custom para Microsoft SQL Server em modo Always On. Fiquem ligados!
Sobre os autores
Marco Cordeiro é Cloud Solution Advisor e Tech Lead da Embratel, atuando com foco na entrega de projetos em Cloud. Tem especial interesse em arquitetura de software, segurança, networking e migrações.
Deiverson de Miranda Takano é Arquiteto de Soluções Cloud da Embratel, atuando com foco na aceleração de adoção de soluções Cloud. Entusiasta de Cloud computing e Cultura Devops.
Adeilson Pereira de Araujo é Cloud Architect da Embratel. Com mais de 15 anos de experiência em infraestrutura de ambientes de setor publico e privado, é graduado e certificado AWS e possui foco na especialização de Segurança e Redes.
Edgar Pietrobom é Arquiteto de Soluções Cloud da Embratel e atua com foco no desenvolvimento de soluções que auxiliam empresas em sua jornada de migração para nuvem pública. Tem especial interesse em redes e segurança da informação.
Vinicius Soares Batista é Arquiteto de Soluções Sênior da AWS, com foco no desenvolvimento de parceiros do setor público. Tem especial interesse por desenvolvimento de software, resiliência e migrações