Siga a Gente!

Fique por dentro!

Cadastre seu e-mail para receber as novidades da Code Sense direto na sua Caixa de Entrada.

Prometemos mandar só informação de qualidade!  ;)

Newsletter

[Videoaula] AWS Descomplicada para TODOS! pt.1

Tempo de Leitura: 13 minutos

Lá no início da pandemia, quando estávamos todos ainda pegando o jeito desse tal de trabalho remoto, o nosso grande Professor Gira- *ahem* digo, Daniel estava fazendo uma das coisas que ele faz de melhor: 👨‍🏫 ensinando! 

Assim, trazemos de volta a série de aulas “Amazon Web Services (AWS) Descomplicada” e deixando-a mais acessível para quem (ainda) não tem tanto know-how em programação.

Na aula original, transmitida ao vivo através do canal da Academia Dev, o nosso 🧙‍♂️ mestre dos magos ensina como criar seu primeiro servidor na AWS. E melhor: como fazer isso DE GRAÇA! 🤑

Aprenda conosco:

Descomplica aí!

Assista abaixo à aula com o Professor Daniel e aprofunde-se lendo o conteúdo complementar na sequência. É importante lembrar que a aula original é voltada para devs, então pode parecer complexa à primeira vista para quem tem pouca experiência na área.

Mas não se assuste! Buscamos deixar tudo acessível para todos os níveis de conhecimento. Tanto que este material foi escrito pela nossa super redação de marketing (Oi, tudo bem? 👋) que até pouco tempo atrás não sabia que Java e Javascript não são a mesma coisa… 🤷‍ Então pode confiar quando digo ser um conteúdo realmente descomplicado e, modéstia à parte, caprichado 👌.

Cobrimos bastante informação nesse material, então disponibilizamos um resuminho do conteúdo lá no final também! Fique à vontade para fazer perguntas nos comentários aqui, no YouTube ou nas nossas redes sociais. 😉

Computação na Nuvem é a onda do futuro presente ⛅

Sabe aquele estereótipo do “carinha da TI”? Esse mesmo que você pensou: um cara meio quietão, que fica lá na sala dele (🥶 gelada pra caramba, inclusive), na frente de vários monitores, “batucando” no teclado o dia todo. 

Esse é o SysAdmin: o System Administrator, ou Administrador de Sistemas no bom português. Além de geralmente ser um cara muito gente boa, ele é o responsável pela infraestrutura de TI dentro de uma empresa: configurar e manter sistemas e servidores, garantir segurança dos dados, adquirir e instalar componentes, prestar suporte… é o carinha da TI.

Mais recentemente, o papel de SysAdmin tem sido substituído, mas o carinha da TI é eterno!

Essa “extinção” pode ser parcialmente atribuída à mudança de infraestrutura em muitas empresas, que passaram a utilizar mais serviços de computação na nuvem. Isto é, ao invés de dedicarem espaço e recursos para ter um servidor físico nas dependências da empresa, estão optando por servidores virtuais.

Uma das minhas “piadas de nerd” favoritas é: não existe nuvem, é só outro computador. E é verdade! Os dados seguem guardados em algum local físico, só não um que você possa tocar. ☁ “Nuvem”, saca?

Amazon: ideias de A a Z

Tá, você conhece a Amazon: um dos maiores e-commerces existentes, presente em mais 100 países e regiões.

Para acompanhar esse crescimento, a empresa construiu uma estrutura enorme que aumentaria a sua capacidade de lidar com o tráfego recebido, especialmente nas épocas em que o pico de acessos é consideravelmente mais alto (como Natal e Dia das Mães). Contudo, fora dessas épocas a Amazon viu seu enorme poder de processamento sendo desperdiçado.

Para combater esse desperdício, a empresa do Jeff Bezos – que não se tornou um dos homens mais ricos do mundo dando bobeira – começou a alugar seus servidores. Inicialmente como soluções de storage (armazenamento) e evoluindo para aluguel de processamento, tudo através da nuvem. ☁

Esse tipo de serviço de grid computing virtual é conhecido como IaaS: Infrastructure as a Service, ou Infraestrutura como Serviço. Isto é, uma “grade” (grid) de computadores conectados a servidores através de uma rede virtual (nuvem) onde compartilham recursos como processamento e armazenamento (infraestrutura).

Serviços de Rede Amazon

A Amazon não foi exatamente pioneira nesse ramo, mas ganhou tração ao oferecer IaaS de forma simplificada e com custo mais acessível. Ao viabilizar uma infraestrutura escalável, de fácil gerenciamento, e da qual negócios com baixa exigência de recursos possam usufruir por até um ano gratuitamente, a AWS se consolidou como líder absoluta nesse mercado.

Parece que daqui a pouco vai aparecer um anúncio da Amazon por aqui, né? Mas a verdade é que a AWS é tudo isso mesmo! Pergunte para a Adobe, a Netflix, o Spotify, a Samsung, o McDonald’s, a BMW, o Departamento de Estado dos EUA, ou qualquer um dos milhões de clientes da AWS.

Sim, milhões. (Volte ali no comentário sobre o Jeff Bezos)

Tá, mas o que eu faço com isso?

Muita coisa!! 🤯

Vamos recapitular: AWS é uma plataforma de IaaS, isto é, uma rede de servidores da qual podemos usufruir o poder de processamento e o espaço de armazenamento de forma virtual. Podemos contratar mais ou menos “poder de fogo” a qualquer momento, pagando somente por aquilo que utilizamos: arquivamento e backup de dados, hospedagem de sites e e-commerce, desenvolvimento de aplicativos, e inteligência artificial, para citar alguns.

Captura de tela das categorias de soluções oferecidas pela AWS, organizadas por tecnologia.
Captura de tela das categorias de soluções oferecidas pela AWS, organizadas por tecnologia. © Amazon Web Services, Inc.

Assim como explica o Professor Daniel, você ainda pode configurar serviços na AWS que dão outro nível para seu negócio como:

  • escalonamento automático (auto scaling): a própria plataforma otimiza a utilização dos servidores, desligando e redirecionando tráfego de servidores ociosos ou mal aproveitados, economizando uso de processamento (e o seu dinheiro 💰);
  • balanceamento de carga (load balancer): “porteiro” do auto scaling, redireciona automaticamente o tráfego entre as filas dos servidores, para evitar “engarrafamentos” e mantendo o fluxo de acesso;
  • notificações push: sabe aquelas notificações que você recebe dos seus aplicativos no celular? É isso aí mesmo. Não tem mistério;
  • e-mails e newsletters: envie publicidades por e-mail sem precisar de serviços de terceiros (Mailchimp, por exemplo);
  • micro serviços sem servidor (serverless): alguns serviços sequer precisam de servidor! Por exemplo, converter arquivos ou redimensionar imagens.
  •  

Cada um desses serviços merecia um material próprio (isso que nem citamos todos aqui), mas vamos manter o foco, shall we? 🧐

Bora montar um servidor?

Vamos usar o passo-a-passo da aula e ver o que é necessário saber para montar seu primeiro servidor.

Sabemos que a galera de tecnologia tem seus jargões e estão habituados a falar uma língua própria. Sendo assim, aproveitamos para explicar conceitos de forma sucinta e apresentar alguns dos recursos oferecidos pela AWS.

Veremos:

💸 AWS é mesmo grátis por 1 ano? Não é pegadinha?

Servidor x Instância: onde fica “a nuvem”?

👩‍💻 Configurando sua instância: sistema operacionalpotênciaarmazenamento

🔐 Segurança do servidor: recursos básicos para ter em mente!

🔗 O que é um IP Elástico?

Bora? Tenha em mãos seu cartão de crédito e vem comigo! 💳

Cadastro

🛑 UEPA! 🛑 “Mas não era de graça por 1 ano?”

É possível ter um servidor bom de graça por até um ano. Alguns serviços são passíveis de uso gratuito por 12 meses; não pense que você vai sair com um servidor como os da Netflix de mão beijada. Os serviços free-tier são para o pequeno empresário, empreendimentos que não exigem uma infraestrutura grande e complexa, e que com certeza se beneficiam desse ano de graça.

Dito isso, é necessário um cartão de crédito para assinar o serviço. Não sou eu quem faz as regras 🤷‍. Isso porque, caso ultrapasse o limite de uso gratuito, o serviço será cobrado. Cada serviço possui sua definição de limite: quantidade de dados, número de operações, horas de uso, etc. Tudo isso é acordado previamente e nada é cobrado sem seu consentimento.

Montar um servidor tradicional (uma máquina física, no caso) é sempre uma possibilidade, mas os gastos iniciais costumam ser muito altos, especialmente para pequenos negócios. O hardware – os componentes físicos de um computador – estão entre os maiores “vilões” nesse sentido. Entretanto, com a AWS, você pode ter certeza que os seus servidores utilizarão hardware de ponta e podem ser expandidos facilmente, conforme seu negócio cresce.

Amazon EC2 e Instâncias de servidor

A Amazon Elastic Compute Cloud (“Nuvem de Computação Elástica”), ou EC2, é a ferramenta que facilita a criação de instâncias de servidores na AWS e o gerenciamento de todos os aspectos e serviços ligados a elas.

Lembra acima, quando disse “não existe nuvem, é só outro computador”? Ao contratar um servidor da AWS, não estamos reservando um servidor físico inteiro, mas sim contratando um “pedaço” dele, separando uma parte de seus recursos para nosso negócio. Então, quando falamos em montar um servidor, estamos, na verdade, falando em criar instâncias.

Os servidores da Amazon – os “de verdade”, físicos – estão espalhados por vários países, inclusive no Brasil, e você pode escolher em qual deles deseja hospedar suas instâncias. Contudo, tenha em mente dois aspectos: latência e custo. Os dois geralmente estão relacionados, uma vez que um servidor com baixa latência (tempo de reação do servidor) pode ter um custo mais elevado.

VPC: sua rede privada da AWS

A Virtual Private Cloud, ou Nuvem Privada Virtual, é uma espécie de rede local virtual que conecta as suas instâncias de servidor dentro da AWS. Nela, as suas instâncias têm livre comunicação entre si e você tem controle da segurança e acesso à sua rede. Essa VPC é criada automaticamente quando você realiza um cadastro na AWS (Fácil demais, né?).

Configuração de Instância: mão na massa!

Computadores são compostos por hardware – os componentes físicos: placa-mãe, memória, HD/SSD, processador, etc – e software – os programas: sistema operacional, navegador de internet, e qualquer outro que você possa instalar.

Instâncias de servidor são um computador virtual: a Amazon já se encarregou de escolher as melhores peças, resta definir o que seu negócio precisa.

Imagem 💿

Primeiramente, é preciso carregar uma imagem do sistema operacional a ser instalado ou escolher uma das opções oferecidas pela AWS.

Para quem nunca instalou um jogo pirata teve pouco ou nenhum contato com drivers virtuais, uma imagem é, como diz o ‘Fessor Daniel, “como se fosse aquele ISO que você queimava no CD lá em 1923” 😆. São arquivos para a instalação de programas ou, nesse caso, de um sistema operacional. 

Desenvolvedores são fãs de carteirinha do Linux, com exceções, mas a AWS permite a instalação do Windows, por exemplo. Exatamente: Windows. Tipo esse que você provavelmente usa ou já usou. Um sistema operacional é… bem, um sistema para realizar operações em uma máquina. Significa que ele interpreta seus comandos e repassa para o computador – ou o servidor, nesse caso – em um “idioma” que ele entenda.

Potência ou Capacidade 💪

A AWS possui múltiplos tipos de instâncias das quais escolher, com diferentes capacidades de CPU e RAM, tipos de armazenamento, larguras de banda, e desempenho. Porém, não vamos nos estender nelas aqui, vamos focar em como escolher o tipo de instância que melhor atende nossas necessidades.

Sugerimos escolher inicialmente sua instância de acordo com a memória RAM, pois é um bom indicativo da potência dessa máquina. A maioria dos computadores de uso pessoal hoje possui por volta de 4 GB de memória RAM. No entanto, uma instância do tipo T2.micro (elegível para o nível gratuito), possui 1GB de RAM.

Foto de diversos processadores (CPU) e pentes de memória (RAM)  © Andrey Matveev via Unsplash
Foto de diversos processadores (CPU) e pentes de memória (RAM) © Andrey Matveev via Unsplash

“Então preciso pagar para ter um servidor mais potente!” 😩

Sim, mas não. Computadores pessoais têm requisitos diferentes de servidores. Como o ‘Fessor Daniel explica, a maioria desta memória está dedicada à interface gráfica, o que não é necessário em um servidor. Sendo assim, é preferível e até pode ser mais econômico ter múltiplas instâncias menores e recorrer ao auto scaling para gerenciar seu uso.

Ou seja, SIM ✅, há um custo maior para contratar instâncias mais potentes, mas você NÃO 🙅‍♂️ precisa contratá-los se não fizer sentido para o que você precisa.

Armazenamento 📦

Lembrando que a AWS não é um drive de armazenamento virtual, como Dropbox, Google Drive e iCloud. Ela é uma IaaS com serviços que incluem o armazenamento em nuvem. Também é importante ressaltar que existem tipos diferentes de armazenamento e formas de cobrança.

O ‘Fessor Daniel aponta que a AWS dá 100GB de armazenamento gratuito 😲. Mas precisamos esclarecer que esse armazenamento diz respeito ao AWS Storage Gateway, que não é um armazenamento como você deve estar imaginando.

Arriscando ser muito superficial, o Storage Gateway é uma espécie de cache (não confunda com “cachê”). Ou seja, ele guarda cópias temporárias de dados acessados recentemente a fim de acelerar e facilitar a troca de informações. Ele funciona como um “meio-de-campo” entre os servidores on-premises (fisicamente na empresa) e os dados em nuvem.

Para as instâncias EC2, como a montada na aula, a AWS disponibiliza até 30 GB gratuitos por 12 meses com o Amazon Elastic Block Storage (EBS). Pense no EBS como o HD ou SSD do seu computador, porque é exatamente isso que ele é! O ‘Sor Daniel sugere utilizar a partir de 30 GB para garantir que, após finalizada a configuração do seu servidor, ainda haja espaço para expansão.

E, se você precisar de mais espaço a qualquer momento, saiba que custa centavos por mês por GB adicional do EBS. Segundo o site da AWS até a publicação deste material, volumes SSD de uso geral (gp2) – como o demonstrado na aula – custam 0,10 USD por GB/mês.

Você não leu errado, são DEZ CENTAVOS. Contudo, reforçamos que valores mudam, cotações mudam, disponibilidades mudam. Busque estar bem informado e faça as contas antes de contratar!

Segurança do Servidor

Uma das maiores preocupações quando se fala de nuvem é a segurança. 🔐 Ainda há muito preconceito e desinformação que levam pessoas a crer que a nuvem não é tão segura quanto um servidor físico piscando e “bipando” ao seu lado. 

Sinto muito dizer, mas infelizmente 😢 não há 100% de segurança na internet. Cabe a todos (não só ao carinha da TI) usar de ferramentas e práticas para reforçar a segurança de dados. Na AWS não seria diferente: ela oferece formas de assegurar a integridade dos dados contra falhas de hardware, software ou humanas.

Para não estender esse artigo ainda mais, trazemos abaixo os recursos apresentados na aula. Você pode conhecer todas as ferramentas de segurança da AWS no site.

Snapshots 📸

Snapshots são como Pontos de Recuperação: você “captura” um momento do servidor e todas as suas configurações para poder recuperar sua instância a partir daquele ponto, caso seja necessário. Tenha em mente que snapshots ocupam espaço de armazenamento. No nível gratuito, além dos 30 GB do EBS (como vimos acima), a AWS concede 1 GB de armazenamento de snapshots.

Stop x Terminate ⛔

A AWS permite duas ações diferentes ao desativar uma instância de servidor: Stop (Interromper) e Terminate (Encerrar):

Com o stop, você “congela” a instância e pode iniciá-la novamente quando precisar. Ela para de gerar cobrança de processamento, mas continua cobrando armazenamento (se houver). Ainda, vale apontar que o endereço IP público desta instância, atribuído ao criá-la, é desvinculado ao interrompê-la. Será necessário redirecionar o tráfego para o novo IP a fim de usar a instância novamente, ao menos que haja um IP Elástico para vincular (como veremos mais adiante).

Por outro lado, terminate, assim como o Exterminador do Futuro, faz o seu servidor virar pretérito. Essa é a função para exterminar o seu servidor e todos os dados contidos nele. Segundo ‘Sor Daniel, é comum a criação de uma instância temporária para executar um processo mais complexo e “matá-la” em seguida. (Nada de “I’ll be back” desse cara)

Agora, se você já passou pela dor de sair de um programa ou desligar o computador sem salvar o seu trabalho, saiba que a AWS se adiantou em criar a proteção contra a interrupção da instância! Ao habilitar esse recurso, você dificulta o encerramento (termination) daquela instância e diminui a possibilidade de acidentes.

Security Group 🔐

O Security Group (Grupo de Segurança) é essencialmente o firewall da sua instância. São regras que controlam o tráfego de entrada e saída do seu servidor. A AWS, para facilitar a vida, já propõe um grupo de segurança padrão. Como explicado na aula, esse default (padrão) permite acesso total desde que dentro da mesma VPC.

Existe a opção de configurar o seu grupo de segurança com as suas próprias regras, se assim quiser. Tenha em mente que isso exige mais conhecimento técnico. Para contextualizar: cada tipo de aplicação só pode acessar o servidor por sua própria porta (mais ou menos como eram os elevadores de serviço). Se quiser se aventurar, busque aprender sobre intervalos de portas e protocolos de comunicação. Ou chame o carinha da TI. 😉

Caso não tenha ficado claro no trecho da aula, o Daniel estabeleceu duas regras: uma das portas só é acessível através do IP dele (poderia ser a porta de um banco de dados, por exemplo) e outra porta de acesso público.

Par de Chaves 🔑

Assim como você usa chaves para acessar a sua residência, suas instâncias na AWS também. No momento em que finalizar a criação da sua instância e for lançá-la, a AWS apresenta a opção de criar seu Par de Chaves de acesso:

  • Uma chave pública, armazenada pela Amazon na sua instância, e
  • Uma chave privada, em arquivo de formato PEM (usado para dados criptografados), que você é responsável por guardar.

Para liberar o acesso ao servidor, a chave privada será comparada com a chave pública. Não esqueça sob hipótese alguma de baixar o arquivo PEM no momento em que gerar o par; você não poderá fazer isso em outro momento. Nem a Amazon tem acesso a esse arquivo e recuperar acesso após perder uma chave é uma dor de cabeça enorme e 100% evitável. 

Guarde suas chaves com cuidado! 🔐

Você pode criar quantos pares de chaves quiser e desabilitá-los quando precisar, o que permite gerenciar o acesso ao servidor. Existe a alternativa de permitir o acesso por senha (um login como vários outros). O Dani faz uma ótima analogia sobre isso na aula (se por mais nada, assista a aula por esse momento 🤣), mas aqui vale o reforço: sugerimos FORTEMENTE que não seja liberado o acesso por senha, por ser um potencial risco de segurança.

Endereços de IP: Privado, Público e Elástico

Na AWS, contamos com 3 tipos de IPs: privado, público e elástico. Parece muito, mas se entendemos que o IP é o seu endereço na internet – as “coordenadas” de qualquer dispositivo conectado a uma rede – podemos fazer uma analogia simples:

Você possui um número de identificação (CPF ou RG); ele é só seu, intransferível e permanente. Você vive numa residência situada em um endereço fixo (por isso se chama “imóvel”), mas decide mudar-se para outro local, com outro endereço. Você não pode carregar o endereço antigo junto, então precisa transferir suas correspondências e alterar cadastros para seu novo endereço. 

E se houvesse uma “portabilidade” de endereço?

Representação da hipotética portabilidade de endereço versus o funcionamento do IP elástico.
Representação da hipotética portabilidade de endereço versus o funcionamento do IP elástico.
© Code Sense (reprodução permitida com devidos créditos)

Sua instância possui, por padrão, um IP privado que a acompanha até ser encerrada (“exterminada”, lembra?). Enquanto a instância estiver em execução, a AWS atribui um IP público que direciona o tráfego de fora da rede privada para o “pedaço” de servidor em que se encontra a sua instância, permitindo a comunicação com o resto da internet.

Se por qualquer motivo o IP público não estiver mais vinculado à instância, é necessário redirecionar o tráfego para o novo endereço. Aqui usamos o chamado IP elástico. O EIP (Elastic IP) toma o lugar do IP público, porém com a vantagem de ser vinculado à sua conta, podendo ser trocado de instância para redirecionar tráfego (dentro de algumas condições).

“Mas por que tudo isso?” 🤔

Para que serve um endereço? Ou um número de telefone? Por que você passa seu contato para terceiros? Para ser encontrado. Para ser comunicável.

IPs privados permitem a comunicação livre dentro da sua VPC, você não paga pelo tráfego interno entre suas instâncias através deles.

Um IP público, por sua vez, é efêmero e distribuído sob demanda. Por haver um número limitado, os IPs inutilizados são devolvidos ao “estoque” da AWS e distribuídos de forma aleatória conforme a demanda.

Já o IP elástico permanece mesmo quando uma instância é encerrada, e pertence à sua conta até você devolvê-lo. Também por conta da disponibilidade de IPs, a AWS limita o número de EIPs a 5 por região de servidor e a um por instância. Cada EIP adicional e/ou que não esteja associado a uma instância em execução é cobrado por hora

Busque gerenciar bem seus IPs e redirecionamentos para evitar que seu sistema/site/aplicação fiquem “sem-teto”. Links quebrados são, no mínimo, embaraçosos. Mas um servidor fora do ar ou incomunicável pode ser sinônimo de prejuízos.

Resumindo...

UFA! Esse deu pano pra manga, hein! Para encerrar, vamos revisar alguns pontos que aprendemos aqui:

Espero que tenha sido proveitoso, mesmo que um tanto extenso. 🤗 Deixo aqui um convite para você conhecer o canal da Academia Dev no YouTube e nos seguir nas redes sociais. Tem mais conteúdo no forno, fique ligado! 😉

Curtiu esse conteúdo?

Compartilhe

Code Sense

Code Sense

Coding is our Superpower 🦸‍♀️🦸‍♂️

Mais desse Autor

Deixe seu comentário! (perguntas e sugestões também são bem-vindas e encorajadas!)

Subscribe
Notify of
0 Comentários
Inline Feedbacks
View all comments

Siga a gente!

Fique por dentro!

Cadastre seu e-mail para receber as novidades da Code Sense direto na sua Caixa de Entrada.

Prometemos mandar só informação de qualidade!  ;)

Newsletter

Categorias

Quem escreve

Níveis