AWS para devs: EC2, S3 e RDS para seu primeiro deploy

Rocketseat

Rocketseat

4 min de leitura
cloud
Faaala, dev! Tudo na paz?
Você já ouviu falar que "tudo roda na AWS", mas quando abre o console, se depara com uma sopa de letrinhas e centenas de serviços? EC2, S3, RDS, Lambda, VPC... Calma! Respira fundo, porque hoje vamos aprender a base de tudo isso. Se você, assim como eu, já olhou para o console da AWS e se sentiu perdido, saiba que está no lugar certo.
📄
Se o próprio termo “AWS” ainda soa um pouco abstrato, recomendamos uma leitura rápida em nosso guia sobre o que é a AWS e por que você deveria se importar antes de continuar. Isso vai te dar uma base ainda mais sólida.
Gosto de pensar na AWS como um grande bufê de recursos, que você vai escolhendo o que precisa para montar seu projeto na nuvem. Existem muitos recursos, mas para construir qualquer coisa sólida, você precisa dominar três peças principais. Hoje, vamos focar nessa santíssima trindade: EC2, S3 e RDS.
Ao final desta leitura, você não só vai entender o que são essas siglas, mas também saberá exatamente quando e por que usar cada um deles, e como eles se conectam para dar vida ao seu próximo projeto. Bora aprender isso juntos?

Por que a AWS marca um ponto de inflexão para Devs?

Antes de entrarmos de cabeça nos detalhes, vamos entender por que dominar a nuvem, especialmente a AWS, pode impulsionar a carreira de desenvolvimento. O conhecimento em AWS para profissionais de tecnologia não é apenas um diferencial, é uma habilidade muito requisitada no mercado.
  • Escalabilidade: imagine seu projeto pessoal viralizando. Com a AWS, sua aplicação pode crescer de dez para dez milhões de usuários sem que você precise redesenhar toda a infraestrutura. É a capacidade de crescer sob demanda.
  • Modelo de pagamento: o conceito de pay-as-you-go (pague pelo que usar) facilita o acesso à tecnologia de ponta. Você pode experimentar, criar projetos pequenos e startups sem precisar de um grande investimento inicial em servidores físicos.
  • Foco no desenvolvimento: a nuvem cuida da infraestrutura para que você possa focar no que realmente importa: escrever código e criar soluções incríveis. Menos tempo gerenciando hardware, mais tempo inovando.
  • Relevância no mercado: profissionais que entendem de nuvem estão em alta. Dominar a AWS abre portas para as melhores oportunidades e desafios no mundo da tecnologia. Na era da inteligência artificial, essa habilidade se torna cada vez mais importante.

Amazon EC2

De forma simples e direta, EC2 (Elastic Compute Cloud), é um servidor virtual que você aluga na nuvem. É aqui que o código da sua aplicação, seja uma API em Node.js ou um serviço em Python, será executado para processar as requisições.

Para que serve?

Então, o que é Amazon EC2 na prática? Você pode usá-lo para:
  • Hospedar o back-end de aplicações (APIs construídas em Node.js, Python, Java, etc.).
  • Executar um servidor web tradicional como Nginx ou Apache.
  • Rodar processos de longa duração ou com uso intensivo de CPU, como processamento de imagens ou análise de dados.
  • Configurar ambientes de desenvolvimento e teste isolados e replicáveis para a equipe.

Principais benefícios:

  • Flexibilidade total: você tem o poder de escolher tudo: o sistema operacional (Linux, Windows), a quantidade de CPU, a memória RAM e o tipo de armazenamento. É como montar seu próprio PC na nuvem, mas em questão de minutos.
  • Escalabilidade elástica: sua aplicação bombou? Sem problemas. Você pode “aumentar a potência” do seu projeto (escalar verticalmente) ou adicionar mais recursos (escalar horizontalmente) com poucos cliques.
  • Controle absoluto: com acesso root (ou administrador), a máquina é sua. Você tem total liberdade para instalar softwares, configurar o ambiente e ajustar cada detalhe conforme a necessidade do seu projeto.

Amazon S3

Gosto de pensar no Amazon S3 (Simple Storage Service) como um HD externo infinito, super seguro e acessível de qualquer lugar do mundo. Nele, você organiza seus arquivos (chamados de objects) em contêineres (chamados de buckets).

Para que serve?

Mas para que serve Amazon S3 no dia a dia de quem programa?
  • Armazenar e servir arquivos de usuários: este é o uso mais comum. Sabe a foto de perfil que você sobe numa rede social? Ou aquele PDF que você anexa num sistema? É um caso perfeito para o S3.
  • Hospedagem de sites estáticos: uma solução de ótimo custo-benefício e alta performance para hospedar portfólios, landing pages ou documentações feitas com HTML, CSS e JavaScript.
  • Backup e arquivamento: um local seguro e de baixo custo para armazenar backups de bancos de dados, logs de aplicação ou qualquer dado que precise ser guardado a longo prazo.

Principais benefícios:

  • Durabilidade extrema: a AWS projeta o S3 para ter 99,999999999% (11 noves) de durabilidade. Na prática, isso significa que se você armazenar 10.000 arquivos, pode esperar perder um único arquivo a cada 10 milhões de anos. É mais fácil um meteoro atingir a terra do que você perder um arquivo!
  • Custo-benefício imbatível: armazenar dados no S3 é incrivelmente barato. O custo é medido em centavos por Gigabyte por mês, tornando-o viável para qualquer tipo de projeto.
  • Integração e versatilidade: se integra nativamente com praticamente todos os outros serviços, servindo como um hub central para os dados da sua aplicação.

Amazon RDS

O RDS (Relational Database Service) não é o banco de dados em si, mas sim um serviço que gerencia o banco de dados para você. É como contratar um DBA (administrador de banco de dados) especialista que trabalha 24/7 cuidando de toda a parte operacional: instalação, aplicação de patches de segurança, backups e monitoramento.

Para que serve?

O banco de dados Amazon RDS é perfeito para:
  • Armazenar os dados estruturados e relacionais da aplicação: tabelas de usuários, produtos, pedidos, posts de um blog, etc.
  • Provisionar rapidamente um banco de dados relacional popular (como PostgreSQL e MySQL) sem a necessidade de instalação e configuração manual em um servidor.
  • Garantir a resiliência e a segurança dos dados críticos da aplicação através de backups automáticos e configurações de alta disponibilidade.

Principais benefícios:

  • Foco no que importa: usando o RDS, você para de se preocupar com tarefas de infraestrutura de banco de dados e pode dedicar 100% do seu tempo para construir as features que realmente importam para o seu usuário.
  • Segurança e confiabilidade: o serviço oferece backups automáticos, snapshots e a opção de implantação Multi-AZ, que cria uma cópia de segurança do seu banco em outra localidade física, assumindo automaticamente em caso de falha.
  • Escalabilidade simplificada: seu banco de dados está ficando lento com o aumento de usuários? Com o RDS, aumentar a capacidade de processamento, memória ou armazenamento é uma operação que pode ser feita com alguns cliques no painel, muitas vezes sem downtime.

Como EC2, S3 e RDS trabalham juntos?

Agora vem a mágica! Entender quando usá-los é perceber como eles se completam.
Imagine que estamos construindo uma API para uma rede social, como o Instagram:
  • O EC2 é onde a nossa API, construída em Node.js, vai rodar. Ele é o cérebro da operação: recebe as requisições (como um POST /posts para uma nova publicação), executa a lógica de negócio e se comunica com os outros serviços.
  • Quando um usuário faz o upload de uma foto, a API no EC2 não guarda o arquivo de imagem no seu próprio disco. Em vez disso, ela envia o arquivo diretamente para um bucket no S3. O S3 retorna uma URL única para essa imagem.
  • Finalmente, a API pega as informações do post (o texto da legenda, o ID do usuário e a URL da imagem que agora está no S3) e as salva como um novo registro em uma tabela posts no nosso banco de dados PostgreSQL, que é gerenciado pelo RDS.

Seu roteiro para o primeiro deploy na AWS

Sentiu a empolgação para começar? Aqui está um roteiro de sobre como fazer deploy na AWS, conectando as peças que aprendemos.
  • Configurando a infraestrutura: o primeiro passo é preparar o terreno. Você cria um bucket no S3 para os arquivos da aplicação, e depois provisiona seu "arquivo gerenciado" (uma instância de banco de dados no RDS), guardando as credenciais de acesso de forma segura.
  • Preparando o servidor: com a base pronta, sobe uma instância EC2 com uma imagem do Linux (como Ubuntu), acessa via SSH e instala as dependências do seu projeto, como Node.js, Git, etc.
  • Deploy do código: agora, você transfere o código da sua API para dentro do EC2 (geralmente via git clone), instala as dependências do projeto (com npm install, por exemplo) e configura as variáveis de ambiente para conectar a aplicação no RDS e no S3.
  • Rodando a aplicação: por fim, você inicia sua aplicação (idealmente usando um gerenciador de processos como o PM2 para mantê-la rodando) e configura o firewall da AWS (os Security Groups) para permitir que o tráfego da internet chegue até a sua API.
Dica estratégica: Parece um processo manual? Para projetos mais simples ou para quem quer automatizar, serviços como o AWS Elastic Beanstalk podem orquestrar muitos desses passos para você. Fica a dica para um próximo estudo!
Quer ver na prática como levar esse roteiro para um nível profissional? O roteiro acima é ótimo para entender o processo. Mas, quando o assunto é criar uma infraestrutura escalável e automatizada, usamos ferramentas de “infraestrutura como código”. Preparamos um vídeo completo mostrando como fazer o deploy de uma aplicação Node.js na AWS com escalonamento, usando ferramentas modernas que facilitam a vida de quem desenvolve. Confira:
Video preview

Você está pronto para construir na nuvem!

Compreender como essas três peças da AWS se encaixam é o primeiro e mais importante passo para construir aplicações escaláveis e robustas. Essa é a base usada por desde startups até gigantes como a Netflix. O poder de construir na nuvem está nas suas mãos.
E aí, sentiu a empolgação para colocar a mão na massa e fazer seu primeiro deploy?
Entender esses conceitos da AWS foi um divisor de águas na minha carreira. No começo, parecia um universo à parte, mas foi aplicando a base sólida que construí nas formações da Rocketseat que tudo começou a fazer sentido.
👉
A formação Full-Stack me deu a lógica para construir as APIs robustas que rodam no EC2. A formação em DevOps me ensinou os princípios para automatizar o deploy e gerenciar essa infraestrutura de forma profissional. Cada peça do quebra-cabeça se encaixou.
Se você curtiu essa introdução à AWS e quer construir a base de conhecimento para não só entender, mas dominar a criação e o deploy de aplicações de ponta, o caminho que eu trilhei pode ser o seu.
Bora decolar? Conheça a formação Full-Stack da Rocketseat e comece a construir os projetos que hoje você só imagina. O seu primeiro deploy na AWS está mais perto do que você pensa.
Ficou com alguma dúvida ou quer trocar uma ideia sobre seu primeiro projeto na nuvem? Junte-se à nossa comunidade no Discord! Lá, você encontra milhares de devs para te ajudar a dar os próximos passos e compartilhar conhecimento.
 
Artigos_

Explore conteúdos relacionados

Descubra mais artigos que complementam seu aprendizado e expandem seu conhecimento.