Não sou tão velho, mas sou vivido, haha. Sou da época em que tinha de esperar o servidor novo chegar de frete para poder subir uma aplicação nova. O backup era local, tinha de identificar cabos, comprar hardware e softwares para cada aplicação que quisesse lançar.
Quando acontecia alguma falha, tinha de sair de casa de madrugada, correndo, porque a produção da indústria não podia parar. Ah, e quando queimava alguma coisa, tinha de torcer para ter peça no estoque para trocar, tirar o servidor do Rack que ficava no DataCenter local, identificar o erro e fazer o reparo.
E quando precisava aumentar a capacidade? Vamos comprar mais HDs.
Eu sou mineiro, sou desconfiado. Sempre me senti confortável em ter minha aplicação à mão, para quando eu precisasse dar manutenção, pudesse pegar o mouse, o teclado e ir até o CPD para dar manutenção "na unha", como chamávamos.
A gente precisava se preocupar muito mais com aspectos técnicos e de infraestrutura do que com o crescimento e a escalabilidade da aplicação. Aí veio a nuvem acessível! Ah, aí eu pensava, vou pegar tudo isso, que custei fazer, e migrar para a nuvem?
Quem me garante que o técnico da AWS, da GCP ou da Azure não vai acessá-lo? Como garantir a segurança da aplicação?
Sou fã de carteirinha da #aws, acho que eles possuem ferramentas e produtos que são personalizados de acordo com a necessidade. Abrange muita coisa e é fácil de criar, dar manutenção e tem bom custo. (Depois vou falar sobre isso).
Agora que podemos colocar o paninho que limpávamos a poeira dos servidores de lado e podemos dormir sem o zumbido dos coolers dos servidores, podemos entender melhor sobre a infraestrutura e as responsabilidades de aplicar na nuvem o que nós quisermos.
Seja uma aplicação sem servidor, ou um bucket de objetos, ou um serviço de e-mail ou SMS, tudo pode estar na nuvem. Muita coisa grátis de acordo com a necessidade e o tamanho da sua aplicação. Estar na nuvem é necessário e é universal.
Vamos falar primeiro do aspecto local. Você possuía um servidor local, no seu prédio, que esquentava muito e precisava ter um ar-condicionado geladinho para deixá-lo funcionando 100%? E se desse um terremoto, alagasse, raios e trovões e queimasse o servidor? Qual o custo disso para você e para sua empresa? E o backup e para voltar tudo?
Por isso que na AWS existem as Zonas de disponibilidade. É simples, uma zona de disponibilidade é uma instalação da AWS (super secreta afinal), com seguranças treinados, câmeras, ferros, alvenaria pesada, projetada para aguentar o tranco e são separadas uma das outras para garantir que se, caso em uma Zona de Disponibilidade acontecesse algo, a outra estaria tranquila. Seu cliente/usuário nem notaria. Imagina se fosse no seu servidor local?
Mas Marcos, o que isso tem a ver com segurança? Tudo! Segurança e privacidade first! Caso alguma falha ocorra, seus dados e suas aplicações são automaticamente redirecionados para outra Zona de Disponibilidade. A AWS leva segurança a sério!
Quais outras ferramentas e serviços de segurança a AWS possui para garantir que tudo é seguro?
Primeiro ponto:
Identidade e Acesso aos sistemas da prestadora de serviços.
Imagine o seguinte cenário, o seu colaborador está mal intencionado, ele dá manutenção no seu banco de dados e você descobre uma irregularidade. Ao dispensá-lo, você fica com medo de que ele acesse o banco de dados e apague alguma informação ou algo assim. A AWS possui ferramentas que, com um clique, você inativa o acesso desse colaborador, por exemplo.
A famosa IAM (Identity and Access Management) é um serviço que gerencia com segurança as identidades e os acessos aos produtos e serviços. Na AWS, por exemplo, você consegue criar barreiras de proteção para que seu colaborador só consiga visualizar determinada parte da aplicação, por exemplo. Consegue criar grupos e times e dimensionar para o privilégio mínimo quando necessário. Ah, vai uma dica, jamais utilize o usuário root nas suas aplicações, deixe ele para gerenciar os usuários do IAM, crie um usuário IAM para você para executar suas tarefas diárias.
Segundo ponto:
Segurança de rede. Com o VPC, você consegue criar uma rede virtual privada dentro da AWS. Você consegue controlar a rede de forma mais segmentada, criando sub-redes e definindo regras de segurança. Isso é bom para que diminua ameaças e tentativas de invasão à sua rede e ao seu projeto.
Terceiro ponto:
A AWS possui diversos serviços automáticos ou com poucas configurações para detectar ameaças com busca de atividades maliciosas. Amazon GuardDuty, por exemplo, utiliza inteligência artificial para detectar ameaças e detecta anomalias e alerta sobre possíveis ameaças. O Amazon Inspector avalia a segurança e conformidade das aplicações em nuvem. O Amazon Artifact gera relatórios de conformidade de acordo com diversos modelos de inspeção. O Firewall Manager centraliza as regras de segurança em diversas contas e aplicações. Tem proteção contra DDoS no AWS Shield (esse, por sua vez, muito usado). Tem o Macie, que identifica dados confidenciais e classifica automaticamente por inteligência artificial falhas de segurança (eu, como especialista em LGPD, sou fã).
Marcos, então posso confiar 100% na nuvem? Aí te respondo com outra pergunta: O seu parque de servidores era 100% confiável e blindado contra erros? Com certeza não, pois os aspectos humanos e naturais podem ser incontroláveis. O que posso garantir é que, na AWS ou em outros provedores de nuvem, se bem configurados e com manutenção em dia, a chance de dar algum problema é quase zero, além disso, é infinitamente mais seguro que a aplicação local.
Quem avisa amigo é! Vai na fé que é sucesso. Aplicação na nuvem, com boas perspectivas e estratégias, a chance de sucesso é bem alta!